diff --git a/.drone.yml b/.drone.yml index 97b07c6..c8ead17 100644 --- a/.drone.yml +++ b/.drone.yml @@ -116,8 +116,24 @@ steps: depends_on: - publish-frontend-image commands: - - apk add curl - - 'curl -s -X PATCH "https://kubernetes:6443/apis/apps/v1/namespaces/realestate-crawler/deployments/realestate-crawler-ui" -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" -H "Content-Type: application/json-patch+json" -k -d ''[{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"viktorbarzin/immoweb:''"$DRONE_BUILD_NUMBER"''"}]'' | head' + - apk add --no-cache curl jq + - | + TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) + IMAGE="viktorbarzin/immoweb:${DRONE_BUILD_NUMBER}" + RESTART_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ) + API="https://kubernetes:6443/apis/apps/v1/namespaces/realestate-crawler/deployments" + DEPLOY="realestate-crawler-ui" + + CONTAINER=$(curl -sfk "$API/$DEPLOY" \ + -H "Authorization: Bearer $TOKEN" \ + -H "Accept: application/json" | jq -r '.spec.template.spec.containers[0].name') + echo "Patching $DEPLOY (container=$CONTAINER) to image $IMAGE with restartedAt=$RESTART_AT..." + + curl -sf -X PATCH "$API/$DEPLOY" \ + -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type: application/strategic-merge-patch+json" \ + -k -d "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"kubectl.kubernetes.io/restartedAt\":\"$RESTART_AT\"}},\"spec\":{\"containers\":[{\"name\":\"$CONTAINER\",\"image\":\"$IMAGE\"}]}}}}" \ + | jq '{name: .metadata.name, generation: .metadata.generation, image: .spec.template.spec.containers[0].image}' - name: verify-deploy image: alpine @@ -269,10 +285,25 @@ steps: depends_on: - publish-api-image commands: - - apk add curl - - 'curl -s -X PATCH "https://kubernetes:6443/apis/apps/v1/namespaces/realestate-crawler/deployments/realestate-crawler-api" -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" -H "Content-Type: application/json-patch+json" -k -d ''[{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"viktorbarzin/realestatecrawler:''"$DRONE_BUILD_NUMBER"''"}]'' | head' - - 'curl -s -X PATCH "https://kubernetes:6443/apis/apps/v1/namespaces/realestate-crawler/deployments/realestate-crawler-celery" -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" -H "Content-Type: application/json-patch+json" -k -d ''[{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"viktorbarzin/realestatecrawler:''"$DRONE_BUILD_NUMBER"''"}]'' | head' - - 'curl -s -X PATCH "https://kubernetes:6443/apis/apps/v1/namespaces/realestate-crawler/deployments/realestate-crawler-celery-beat" -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" -H "Content-Type: application/json-patch+json" -k -d ''[{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"viktorbarzin/realestatecrawler:''"$DRONE_BUILD_NUMBER"''"}]'' | head' + - apk add --no-cache curl jq + - | + TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) + IMAGE="viktorbarzin/realestatecrawler:${DRONE_BUILD_NUMBER}" + RESTART_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ) + API="https://kubernetes:6443/apis/apps/v1/namespaces/realestate-crawler/deployments" + + for DEPLOY in realestate-crawler-api realestate-crawler-celery realestate-crawler-celery-beat; do + CONTAINER=$(curl -sfk "$API/$DEPLOY" \ + -H "Authorization: Bearer $TOKEN" \ + -H "Accept: application/json" | jq -r '.spec.template.spec.containers[0].name') + echo "Patching $DEPLOY (container=$CONTAINER) to image $IMAGE with restartedAt=$RESTART_AT..." + + curl -sf -X PATCH "$API/$DEPLOY" \ + -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type: application/strategic-merge-patch+json" \ + -k -d "{\"spec\":{\"template\":{\"metadata\":{\"annotations\":{\"kubectl.kubernetes.io/restartedAt\":\"$RESTART_AT\"}},\"spec\":{\"containers\":[{\"name\":\"$CONTAINER\",\"image\":\"$IMAGE\"}]}}}}" \ + | jq '{name: .metadata.name, generation: .metadata.generation, image: .spec.template.spec.containers[0].image}' + done - name: verify-deploy image: alpine