Files
stream-applications/scripts/wait-deployment.sh
2022-11-02 11:09:47 +02:00

38 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set +e
if [ "$1" == "" ]; then
echo "Deployment name required"
exit 2
fi
DEPLOYMENT=$1
if [ "$2" != "" ]; then
NAMESPACE="--namespace $2"
else
NAMESPACE=
fi
echo "Checking deployment $DEPLOYMENT"
kubectl rollout status deployment "$DEPLOYMENT" $NAMESPACE
REPLICAS=$(kubectl get deployment "$DEPLOYMENT" $NAMESPACE --output json | jq '.status.readyReplicas')
echo "Deployment $DEPLOYMENT: Replicas: $REPLICAS"
RETRIES=40
while [[ "$REPLICAS" == "" ]] || [[ $REPLICAS -eq 0 ]]; do
STATUS=$(kubectl get deployment "$DEPLOYMENT" $NAMESPACE --output json | jq '.status')
echo "Waiting for $DEPLOYMENT Status: $STATUS"
sleep 15
REPLICAS=$(kubectl get deployment "$DEPLOYMENT" $NAMESPACE --output json | jq '.status.readyReplicas')
RC=$?
echo "Deployment $DEPLOYMENT: Replicas: $REPLICAS"
if [ "$RC" != "0" ]; then
STATUS=$(kubectl get deployment "$DEPLOYMENT" $NAMESPACE --output json | jq '.status')
echo "Error checking deployment $DEPLOYMENT $RC: $STATUS"
exit $RC
fi
if (( RETRIES <= 0 )); then
STATUS=$(kubectl get deployment "$DEPLOYMENT" $NAMESPACE --output json)
echo "Timeout checking deployment $DEPLOYMENT in $NAMESPACE: $STATUS"
exit 1
fi
RETRIES=$(( RETRIES - 1 ))
done
echo "Deployment $DEPLOYMENT done"