Merge "Increase robustness of control plane wait"
authorKuralamudhan Ramakrishnan <kuralamudhan.ramakrishnan@intel.com>
Tue, 7 Dec 2021 19:18:11 +0000 (19:18 +0000)
committerGerrit Code Review <gerrit@akraino.org>
Tue, 7 Dec 2021 19:18:11 +0000 (19:18 +0000)
1  2 
deploy/site/vm/vm.sh

diff --combined deploy/site/vm/vm.sh
@@@ -23,7 -23,7 +23,7 @@@ function release_name 
  }
  
  function deploy {
 -    for values in build/site/vm/machine-*-values.yaml; do
 +    for values in ${BUILDDIR}/machine-*-values.yaml; do
        helm -n metal3 install $(release_name ${values}) ${SCRIPTDIR}/../../machine --create-namespace -f ${values}
      done
      helm -n metal3 install cluster-e2etest ${SCRIPTDIR}/../../cluster --create-namespace -f ${BUILDDIR}/cluster-e2etest-values.yaml
@@@ -31,7 -31,7 +31,7 @@@
  
  function clean {
      helm -n metal3 uninstall cluster-e2etest
 -    for values in build/site/vm/machine-*-values.yaml; do
 +    for values in ${BUILDDIR}/machine-*-values.yaml; do
        helm -n metal3 uninstall $(release_name ${values})
      done
  }
@@@ -41,12 -41,15 +41,16 @@@ function is_cluster_ready 
  }
  
  function is_control_plane_ready {
-     [[ $(kubectl --kubeconfig=${BUILDDIR}/e2etest-admin.conf get nodes -l node-role.kubernetes.io/control-plane -o jsonpath='{range .items[*]}{.status.conditions[?(@.type=="Ready")].status}{"\n"}{end}' | grep -c -v True) == 0 ]]
+     # Checking the Cluster resource status is not sufficient, it
+     # reports the control plane as ready before the nodes forming the
+     # control plane are ready
+     local -r replicas=$(kubectl -n metal3 get kubeadmcontrolplane e2etest -o jsonpath='{.spec.replicas}')
+     [[ $(kubectl --kubeconfig=${BUILDDIR}/e2etest-admin.conf get nodes -l node-role.kubernetes.io/control-plane -o jsonpath='{range .items[*]}{.status.conditions[?(@.type=="Ready")].status}{"\n"}{end}' | grep -c True) == ${replicas} ]]
  }
  
  function wait_for_all_ready {
      WAIT_FOR_INTERVAL=60s
 +    WAIT_FOR_TRIES=30
      wait_for is_cluster_ready
      clusterctl -n metal3 get kubeconfig e2etest >${BUILDDIR}/e2etest-admin.conf
      chmod 600 ${BUILDDIR}/e2etest-admin.conf