<p>I am trying to create a shell script that will validate that certain pods are ready by checking the READY heading showing 1/1. I have tried two ways.</p>

<p>1.</p>

<pre><code>ready=$(oc get pods | awk '{print $2}' | tail -n +2) # prints 1/1 or 0/1 for each pod
until [[ ${ready} == "1/1" ]]
do
  echo "Waiting for pods to be ready."
  sleep 3
done
</code></pre>

<p>Above script just keeps saying "Waiting for pods to be ready" even when the pods are ready and displaying 1/1 in the READY column. </p>

<p>2.</p>

<pre><code>while true ; do
  for i in 1 2 3; do
  ready=`oc get pods | awk '{print $2}' | tail -n +2 | head -n $i` 

  if [[ "${ready}" == "1/1" ]]; then
    echo "pods are up and running"
  else
    echo "waiting for pods to be ready"
  sleep 10
  break
  fi
  done
done
</code></pre>

<p>Above script just continually prints waiting for pods to be ready and pods are up and running.</p>

<p>Any help would be appreciated, I am starting with Bash and not quite sure what to do.</p>

<p>I'm surprised no one so far has mentioned the experimental, yet official <a href="https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#wait" rel="noreferrer">kubectl wait</a>:<br />
<code>$ kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available]</code></p>
