Ensure node is ready before trying to label it.

Related-Prod: PRODX-2894
Change-Id: I26610b6dba586b0b4b9d8d36403739718a09d6b8
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index 54e2d61..8f0e9c6 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -177,7 +177,7 @@
 
 function wait_for_node {
     function retry_wait {
-        kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes |awk '{print $1}' |grep -q $(hostname)
+        kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes |grep -w Ready |awk '{print $1}' |grep -q $(hostname)
     }
     retry $NODE_DEPLOYMENT_RETRIES "The node didn't come up." retry_wait
 }
@@ -272,8 +272,10 @@
 $functions_override
 
 function set_node_labels {
-
-    kubectl patch node $(hostname) -p "{\"metadata\": ${NODE_METADATA}}"
+    function set_node_labels_retry {
+        kubectl patch node $(hostname) -p "{\"metadata\": ${NODE_METADATA}}"
+    }
+    retry 10 "Labeling node failed." set_node_labels
 }
 
 case "$NODE_TYPE" in