diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 2c5ddde..d51bd52 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -195,16 +195,30 @@ jobs: export DEPLOYMENT="${REPO_NAME}-deploy" echo "Deploying ${IMAGE_REF} to ${NAMESPACE}/${DEPLOYMENT}" - kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type='json' -p='[ - {"op":"replace","path":"/spec/strategy/rollingUpdate/maxSurge","value":"100%"}, - {"op":"replace","path":"/spec/strategy/rollingUpdate/maxUnavailable","value":0}, - {"op":"replace","path":"/spec/template/spec/containers/0/image","value":"'"${IMAGE_REF}"'"}, - {"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"IfNotPresent"}, - {"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/httpGet/path","value":"/api/health"}, - {"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/timeoutSeconds","value":5}, - {"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/httpGet/path","value":"/api/health"}, - {"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/timeoutSeconds","value":5} - ]' + CONTAINER="$(kubectl get "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" -o jsonpath='{.spec.template.spec.containers[0].name}')" + echo "Container: ${CONTAINER}" + kubectl set image "deployment/${DEPLOYMENT}" "${CONTAINER}=${IMAGE_REF}" -n "${NAMESPACE}" + kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type strategic -p " +spec: + template: + spec: + containers: + - name: ${CONTAINER} + imagePullPolicy: IfNotPresent + env: + - name: A_UPSTREAM + value: http://project57-deploy.ns-project57.svc.cluster.local:3000 + readinessProbe: + httpGet: + path: /api/health + port: 3000 + timeoutSeconds: 5 + livenessProbe: + httpGet: + path: /api/health + port: 3000 + timeoutSeconds: 5 +" kubectl rollout status "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --timeout=180s echo "✅ Deployment completed successfully" @@ -234,15 +248,17 @@ jobs: export DEPLOYMENT="${REPO_NAME}-deploy" echo "Deploying existing image ${IMAGE_LATEST} to ${NAMESPACE}/${DEPLOYMENT}" - kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type='json' -p='[ - {"op":"replace","path":"/spec/strategy/rollingUpdate/maxSurge","value":"100%"}, - {"op":"replace","path":"/spec/strategy/rollingUpdate/maxUnavailable","value":0}, - {"op":"replace","path":"/spec/template/spec/containers/0/image","value":"'"${IMAGE_LATEST}"'"}, - {"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"Always"}, - {"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/httpGet/path","value":"/api/health"}, - {"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/timeoutSeconds","value":5}, - {"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/httpGet/path","value":"/api/health"}, - {"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/timeoutSeconds","value":5} - ]' + CONTAINER="$(kubectl get "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" -o jsonpath='{.spec.template.spec.containers[0].name}')" + echo "Container: ${CONTAINER}" + kubectl set image "deployment/${DEPLOYMENT}" "${CONTAINER}=${IMAGE_LATEST}" -n "${NAMESPACE}" + kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type strategic -p " +spec: + template: + spec: + containers: + - name: ${CONTAINER} + imagePullPolicy: Always +" + kubectl rollout restart "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" kubectl rollout status "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --timeout=180s echo "✅ Deployment completed (using existing image)"