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