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.
1.
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
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.
2.
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
Above script just continually prints waiting for pods to be ready and pods are up and running.
Any help would be appreciated, I am starting with Bash and not quite sure what to do.
oc rollout status
? – Ode1/1
, there are more and better ways to determine exactly what pods are ready. – Horrifystatus=$(oc get pods -o jsonpath='{.items[*].status.containerStatuses[?(@.ready)].ready}') for stat in $(oc get pods -o jsonpath='{.items[*].status.containerStatuses[?(@.ready)].ready}'); do until [[ "${stat}" == "true" ]]; do echo "waiting for pods to be ready" sleep 10 done done echo "pods are ready"
– Faradic