Wait for CR tigerastatus to be available

* Wait for CRD's Established state.
* Wait for CR tigerastatus to show up in api to query
* Once CR is created, wait for its condition to be available.

Change-Id: Ibb83e16a15a7e0e351b6ae030e3e82ce22d41c70
Closes: #442
This commit is contained in:
Sirajudeen 2021-01-06 20:46:41 +00:00 committed by siraj.yasin
parent 4c1d1f87c0
commit 25ae719d12
2 changed files with 34 additions and 6 deletions

View File

@ -26,9 +26,23 @@ if [ "$PROVIDER" = "metal3" ]; then
echo "Wait for Calico to be deployed using tigera"
kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_EPHEMERAL_CONTEXT wait --all-namespaces --for=condition=Ready pods --all --timeout=1000s
# Skipping this check due a race condition till a work-around is identified.
#echo "Wait for Tigerastatus to be Available"
#kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_EPHEMERAL_CONTEXT wait --for=condition=Available tigerastatus --all --timeout=1000s -A
echo "Wait for Established condition of tigerastatus(CRD) to be true for tigerastatus(CR) to show up"
kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_EPHEMERAL_CONTEXT wait --for=condition=Established crd/tigerastatuses.operator.tigera.io --timeout=300s
# Wait till CR(tigerastatus) shows up to query
count=0
max_retry_attempts=150
until [[ $(kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_EPHEMERAL_CONTEXT get tigerastatus 2>/dev/null) ]]; do
count=$((count + 1))
if [[ ${count} -eq "${max_retry_attempts}" ]]; then
echo ' Timed out waiting for tigerastatus'
exit 1
fi
sleep 2
done
# Wait till condition is available for tigerastatus
kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_EPHEMERAL_CONTEXT wait --for=condition=Available tigerastatus --all --timeout=1000s
echo "Deploy metal3.io components to ephemeral node"
airshipctl phase run initinfra-ephemeral --debug

View File

@ -23,9 +23,23 @@ airshipctl phase run initinfra-networking-target --debug
echo "Wait for Calico to be deployed using tigera"
kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_TARGET_CONTEXT wait --all-namespaces --for=condition=Ready pods --all --timeout=600s
# Skipping this check due a race condition till a work-around is identified.
#echo "Wait for Tigerastatus to be available"
#kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_TARGET_CONTEXT wait --for=condition=Available tigerastatus --all --timeout=600s -A
echo "Wait for Established condition of tigerastatus(CRD) to be true for tigerastatus(CR) to show up"
kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_TARGET_CONTEXT wait --for=condition=Established crd/tigerastatuses.operator.tigera.io --timeout=300s
# Wait till CR(tigerastatus) is available
count=0
max_retry_attempts=150
until [[ $(kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_TARGET_CONTEXT get tigerastatus 2>/dev/null) ]]; do
count=$((count + 1))
if [[ ${count} -eq "${max_retry_attempts}" ]]; then
echo ' Timed out waiting for tigerastatus'
exit 1
fi
sleep 2
done
# Wait till condition is available for tigerastatus
kubectl --kubeconfig $KUBECONFIG --context $KUBECONFIG_TARGET_CONTEXT wait --for=condition=Available tigerastatus --all --timeout=1000s
echo "Deploy infra to cluster"
airshipctl phase run initinfra-target --debug