CIですべてのPodの準備ができたことを確認してからテストを実行したかった時に使いました。
kubectlでnamespace内のすべてのPodに対し、READYがn/nになってRunningになるまで待ちます。
$ kubectl -n dev-test get pod
NAME READY STATUS RESTARTS AGE
aaaaaaaaaaaaaaaa 1/1 Running 0 16m
bbbbbbbbbbbbbbbb 1/3 Running 0 16m #これが3/3になるまで待つ
cccccccccccccccc 0/1 Pending 0 16m #PendingがRunningになって1/1になるまで待つ
dddddddddddddddd 1/1 Running 0 16m
以下のようにして準備ができるまでsleepを続けます。
k8s_namespace=<your namespace>
while :; do
[ "$(kubectl -n ${k8s_namespace} get pod --no-headers | awk -F' *|/' '$2 != $3 || $4 != "Running"')" == "" ] && break
sleep 3 && echo "wait all pod status to be READY and Running"
done
以上。