fix: use strategic merge for K8s deploy instead of json patch [deploy]
This commit is contained in:
1 parent
fe18e608dc
commit
54d37eff03
1 file changed
+36
-20
+36
-20
@@ -195,16 +195,30 @@ jobs:
|
|||||||
export DEPLOYMENT="${REPO_NAME}-deploy"
|
export DEPLOYMENT="${REPO_NAME}-deploy"
|
||||||
|
|
||||||
echo "Deploying ${IMAGE_REF} to ${NAMESPACE}/${DEPLOYMENT}"
|
echo "Deploying ${IMAGE_REF} to ${NAMESPACE}/${DEPLOYMENT}"
|
||||||
kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type='json' -p='[
|
CONTAINER="$(kubectl get "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" -o jsonpath='{.spec.template.spec.containers[0].name}')"
|
||||||
{"op":"replace","path":"/spec/strategy/rollingUpdate/maxSurge","value":"100%"},
|
echo "Container: ${CONTAINER}"
|
||||||
{"op":"replace","path":"/spec/strategy/rollingUpdate/maxUnavailable","value":0},
|
kubectl set image "deployment/${DEPLOYMENT}" "${CONTAINER}=${IMAGE_REF}" -n "${NAMESPACE}"
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"'"${IMAGE_REF}"'"},
|
kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type strategic -p "
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"IfNotPresent"},
|
spec:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/httpGet/path","value":"/api/health"},
|
template:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/timeoutSeconds","value":5},
|
spec:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/httpGet/path","value":"/api/health"},
|
containers:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/timeoutSeconds","value":5}
|
- 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
|
kubectl rollout status "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --timeout=180s
|
||||||
echo "✅ Deployment completed successfully"
|
echo "✅ Deployment completed successfully"
|
||||||
|
|
||||||
@@ -234,15 +248,17 @@ jobs:
|
|||||||
export DEPLOYMENT="${REPO_NAME}-deploy"
|
export DEPLOYMENT="${REPO_NAME}-deploy"
|
||||||
|
|
||||||
echo "Deploying existing image ${IMAGE_LATEST} to ${NAMESPACE}/${DEPLOYMENT}"
|
echo "Deploying existing image ${IMAGE_LATEST} to ${NAMESPACE}/${DEPLOYMENT}"
|
||||||
kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type='json' -p='[
|
CONTAINER="$(kubectl get "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" -o jsonpath='{.spec.template.spec.containers[0].name}')"
|
||||||
{"op":"replace","path":"/spec/strategy/rollingUpdate/maxSurge","value":"100%"},
|
echo "Container: ${CONTAINER}"
|
||||||
{"op":"replace","path":"/spec/strategy/rollingUpdate/maxUnavailable","value":0},
|
kubectl set image "deployment/${DEPLOYMENT}" "${CONTAINER}=${IMAGE_LATEST}" -n "${NAMESPACE}"
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/image","value":"'"${IMAGE_LATEST}"'"},
|
kubectl patch "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --type strategic -p "
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/imagePullPolicy","value":"Always"},
|
spec:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/httpGet/path","value":"/api/health"},
|
template:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/readinessProbe/timeoutSeconds","value":5},
|
spec:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/httpGet/path","value":"/api/health"},
|
containers:
|
||||||
{"op":"replace","path":"/spec/template/spec/containers/0/livenessProbe/timeoutSeconds","value":5}
|
- name: ${CONTAINER}
|
||||||
]'
|
imagePullPolicy: Always
|
||||||
|
"
|
||||||
|
kubectl rollout restart "deployment/${DEPLOYMENT}" -n "${NAMESPACE}"
|
||||||
kubectl rollout status "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --timeout=180s
|
kubectl rollout status "deployment/${DEPLOYMENT}" -n "${NAMESPACE}" --timeout=180s
|
||||||
echo "✅ Deployment completed (using existing image)"
|
echo "✅ Deployment completed (using existing image)"
|
||||||
Reference in new issue
Block a user