Poll Kubernetes rollout status in CI
This commit is contained in:
@@ -88,6 +88,24 @@ jobs:
|
||||
"${RUNNER_TEMP}/kubectl" --namespace default set image \
|
||||
deployment/immich-sync \
|
||||
"immich-sync=${IMAGE}:${COMMIT_SHA}"
|
||||
"${RUNNER_TEMP}/kubectl" --namespace default rollout status \
|
||||
deployment/immich-sync \
|
||||
--timeout=5m
|
||||
|
||||
for attempt in {1..60}; do
|
||||
IFS='|' read -r generation observed desired updated available unavailable <<< "$(
|
||||
"${RUNNER_TEMP}/kubectl" --namespace default get deployment/immich-sync \
|
||||
--output=jsonpath='{.metadata.generation}|{.status.observedGeneration}|{.spec.replicas}|{.status.updatedReplicas}|{.status.availableReplicas}|{.status.unavailableReplicas}'
|
||||
)"
|
||||
|
||||
echo "Rollout ${attempt}/60: generation ${observed}/${generation}, replicas ${updated}/${desired} updated, ${available}/${desired} available"
|
||||
if [[ "${observed}" == "${generation}" \
|
||||
&& "${updated}" == "${desired}" \
|
||||
&& "${available}" == "${desired}" \
|
||||
&& ( -z "${unavailable}" || "${unavailable}" == "0" ) ]]; then
|
||||
echo "Deployment successfully rolled out"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sleep 5
|
||||
done
|
||||
|
||||
"${RUNNER_TEMP}/kubectl" --namespace default describe deployment/immich-sync
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user