mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Make kube-up wait for the libvirt-coreos cluster to be ready
so that validate-cluster passes.
This commit is contained in:
		@@ -156,6 +156,25 @@ function render-template {
 | 
			
		||||
  eval "echo \"$(cat $1)\""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function wait-cluster-readiness {
 | 
			
		||||
  echo "Wait for cluster readiness"
 | 
			
		||||
  local kubectl="${KUBE_ROOT}/cluster/kubectl.sh"
 | 
			
		||||
 | 
			
		||||
  local timeout=50
 | 
			
		||||
  while [[ $timeout -ne 0 ]]; do
 | 
			
		||||
    nb_ready_minions=$("${kubectl}" get minions -o template -t "{{range.items}}{{range.status.conditions}}{{.kind}}{{end}}:{{end}}" 2>/dev/null | tr ':' '\n' | grep -c Ready || true)
 | 
			
		||||
    echo "Nb ready minions: $nb_ready_minions / $NUM_MINIONS"
 | 
			
		||||
    if [[ "$nb_ready_minions" -eq "$NUM_MINIONS" ]]; then
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    timeout=$(($timeout-1))
 | 
			
		||||
    sleep .5
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  return 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Instantiate a kubernetes cluster
 | 
			
		||||
function kube-up {
 | 
			
		||||
  detect-master
 | 
			
		||||
@@ -194,6 +213,15 @@ function kube-up {
 | 
			
		||||
    virsh create $domain_xml
 | 
			
		||||
    rm $domain_xml
 | 
			
		||||
  done
 | 
			
		||||
 | 
			
		||||
  wait-cluster-readiness
 | 
			
		||||
 | 
			
		||||
  echo "Kubernetes cluster is running. The master is running at:"
 | 
			
		||||
  echo
 | 
			
		||||
  echo "  http://${KUBE_MASTER_IP}:8080"
 | 
			
		||||
  echo
 | 
			
		||||
  echo "You can control the Kubernetes cluster with: 'cluster/kubectl.sh'"
 | 
			
		||||
  echo "You can connect on the master with: 'ssh core@${KUBE_MASTER_IP}'"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# Delete a kubernetes cluster
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,7 @@ for (( i=0; i<${#MINION_NAMES[@]}; i++)); do
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    name="${MINION_NAMES[$i]}"
 | 
			
		||||
    if [ "$KUBERNETES_PROVIDER" != "vsphere" ] && [ "$KUBERNETES_PROVIDER" != "vagrant" ]; then
 | 
			
		||||
    if [ "$KUBERNETES_PROVIDER" != "vsphere" ] && [ "$KUBERNETES_PROVIDER" != "vagrant" ] && [ "$KUBERNETES_PROVIDER" != "libvirt-coreos" ]; then
 | 
			
		||||
      # Grab fully qualified name
 | 
			
		||||
      name=$(grep "${MINION_NAMES[$i]}\." "${MINIONS_FILE}")
 | 
			
		||||
    fi
 | 
			
		||||
@@ -79,8 +79,13 @@ for (( i=0; i<${#MINION_NAMES[@]}; i++)); do
 | 
			
		||||
    attempt=0
 | 
			
		||||
    while true; do
 | 
			
		||||
      echo -n "Attempt $((attempt+1)) at checking Kubelet installation on node ${MINION_NAMES[$i]} ..."
 | 
			
		||||
      if [ "$KUBERNETES_PROVIDER" != "libvirt-coreos" ]; then
 | 
			
		||||
        curl_output=$(curl -s --insecure --user "${KUBE_USER}:${KUBE_PASSWORD}" \
 | 
			
		||||
          "https://${KUBE_MASTER_IP}/api/v1beta1/proxy/minions/${name}/healthz")
 | 
			
		||||
      else
 | 
			
		||||
        curl_output=$(curl -s \
 | 
			
		||||
          "http://${KUBE_MASTER_IP}:8080/api/v1beta1/proxy/minions/${name}/healthz")
 | 
			
		||||
      fi
 | 
			
		||||
      if [[ "${curl_output}" != "ok" ]]; then
 | 
			
		||||
          if (( attempt > 5 )); then
 | 
			
		||||
            echo
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user