Actualize k0s deployment

* Setup bind mount for /var/lib/kubelet and /var/lib/k0s/kubelet as
  some applications like Kubevirt has hardcoded kubelet base path
* Update k0s installation procedure according to latest changes
* Exclude some kubernetes node tasks for master node

Related-Prod: PRODX-32906
Change-Id: I3acf54c97e0a97373585ba621be14f75c968deba
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index 37c90c0..95a3ca4 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -178,10 +178,17 @@
 
 function setup_bind_mounts {
     mkdir -p /var/lib/persistant-data
-    for component in nova glance cinder docker kubelet; do
+    for component in nova glance cinder docker; do
         mkdir -p /var/lib/data/${component} /var/lib/${component}
     echo "/var/lib/data/${component} /var/lib/${component} none bind 0 0" >> /etc/fstab
     done
+
+    if [[ "${KUBERNETES_INSTALLER}" == "k0s" ]]; then
+        mkdir -p /var/lib/k0s/kubelet
+        mkdir -p /var/lib/kubelet
+        echo "/var/lib/k0s/kubelet /var/lib/kubelet none bind 0 0" >> /etc/fstab
+    fi
+
     mount -a
 }
 
@@ -357,15 +364,12 @@
 }
 
 function install_k0s {
-    k0s install controller --single
+    mkdir -p /etc/k0s
+    k0s config create > /etc/k0s/k0s.yaml
+    k0s install controller -c /etc/k0s/k0s.yaml
     k0s start
 
-    sleep 10
-
-    function _retry_wait_k0s {
-        k0s kubectl get nodes |grep -w Ready |awk '{print $1}' |grep -q $(hostname)
-    }
-    retry $NODE_DEPLOYMENT_RETRIES "The node didn't come up." _retry_wait_k0s
+    sleep 60
 
     mkdir -p /etc/kubernetes /root/.kube/
     k0s kubeconfig admin > /etc/kubernetes/admin.conf
@@ -1069,11 +1073,11 @@
                 download_k0s
                 install_k0s
             fi
-            wait_for_node
-            set_node_labels
-            collect_ceph_metadata
-            configure_contrack
             if [[ "${KUBERNETES_INSTALLER}" == "ucp" ]]; then
+                wait_for_node
+                set_node_labels
+                collect_ceph_metadata
+                configure_contrack
                 disable_iptables_for_bridges
             fi
             if [[ "${SINGLE_NODE}" == true ]]; then