Preparing host for local FS PV
[it/dep.git] / ric-infra / 00-Kubernetes / heat / scripts / k8s_vm_install.sh
index e1e9615..4bb91fe 100644 (file)
@@ -125,9 +125,23 @@ DOCKERVERSION="${DOCKERV}"
 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
 echo 'deb http://apt.kubernetes.io/ kubernetes-xenial main' > /etc/apt/sources.list.d/kubernetes.list
 
+# tell apt to retry 3 times if failed
+mkdir -p /etc/apt/apt.conf.d
+echo "APT::Acquire::Retries \"3\";" > /etc/apt/apt.conf.d/80-retries
+
 # install low latency kernel, docker.io, and kubernetes
 apt-get update
-apt-get install -y linux-image-4.15.0-45-lowlatency curl jq netcat docker.io=${DOCKERVERSION}
+apt-get install -y virt-what
+if ! echo $(virt-what) | grep "virtualbox"; then
+  # this version of low latency kernel causes virtualbox VM to hand.  
+  # install if identifying the VM not being a virtualbox VM.
+  apt-get install -y linux-image-4.15.0-45-lowlatency
+fi
+if [ -z ${DOCKERVERSION} ]; then
+  apt-get install -y curl jq netcat docker.io
+else
+  apt-get install -y curl jq netcat docker.io=${DOCKERVERSION}
+fi
 apt-get install -y kubernetes-cni=${CNIVERSION}
 apt-get install -y --allow-unauthenticated kubeadm=${KUBEVERSION} kubelet=${KUBEVERSION} kubectl=${KUBEVERSION}
 apt-mark hold docker.io kubernetes-cni kubelet kubeadm kubectl
@@ -264,6 +278,12 @@ EOF
     sleep 15
   done
 
+  echo "Preparing a master node (lowser ID) for using local FS for PV"
+  PV_NODE_NAME=$(kubectl get nodes |grep master | cut -f1 -d' ' | sort | head -1)
+  kubectl label --overwrite nodes $PV_NODE_NAME local-storage=enable
+  if [ "$PV_NODE_NAME" == "$(hostname)" ]; then
+    mkdir -p /opt/data/dashboard-data
+  fi
 
   echo "Starting an NC TCP server on port 29999 to indicate we are ready"
   nc -l -p 29999 &