diff --git a/deploy/operator/utils.sh b/deploy/operator/utils.sh index 2a783525d5..8560e03ce3 100644 --- a/deploy/operator/utils.sh +++ b/deploy/operator/utils.sh @@ -50,11 +50,14 @@ function wait_for_pod() { pod="$1" namespace="${2:-}" selector="${3:-}" - +{ wait_for_condition "pod" "Ready" "30m" "${namespace}" "${selector}" } function wait_for_pods(){ + NAMESPACE=${$1:-} + SELECTOR=${$2:-} + while [[ $(oc get pods -n $1 -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}'| tr ' ' '\n' | sort -u) != "True" ]]; do echo "Waiting for pods in namespace $1 to be ready" oc get pods -n $1 -o 'jsonpath={..status.containerStatuses}' | jq "." @@ -72,9 +75,15 @@ function wait_for_deployment() { for i in {1..40}; do oc get deployment "${deployment}" --namespace="${namespace}" |& grep -ivE "(no resources found|not found)" && break || sleep 10 done + if [ $i -eq 40 ]; then + echo "ERROR: failed Waiting for (deployment) on namespace (${namespace}) with name (${deployment}) to be created..." + exit 1 + fi echo "Waiting for (deployment) on namespace (${namespace}) with name (${deployment}) to rollout..." - oc rollout status "deploy/${deployment}" -n "${namespace}" --timeout="${timeout}" + REPLICAS=$(oc get deployments.apps -n assisted-installer assisted-service -o json | jq .status.replicas) + oc --namespace "${namespace}" wait --for=jsonpath='{.status.availableReplicas}'=$REPLICAS \ + --timeout=5m "deployment.apps/${deployment}" } function hash() {