Install an essential software & Fix some bugs 76/776/5
authorJingzhao.Ni <Jingzhao.Ni@arm.com>
Wed, 22 May 2019 08:45:14 +0000 (16:45 +0800)
committerJingzhao.Ni <Jingzhao.Ni@arm.com>
Wed, 22 May 2019 10:14:05 +0000 (18:14 +0800)
The software-properties-common software is essential
for add-apt-repository. Add it into k8s_common.sh file.
Fix bugs when running sshpass

Signed-off-by: Jingzhao.Ni <Jingzhao.Ni@arm.com>
Change-Id: I651dbee12177db72bd69708355250c0b005d347d

src/foundation/scripts/k8s_common.sh
src/foundation/scripts/k8s_master.sh
src/foundation/scripts/startup.sh

index 0e9de86..06d2d0d 100755 (executable)
@@ -4,6 +4,10 @@ DOCKER_VERSION=18.06.1~ce~3-0~ubuntu
 KUBE_VERSION=1.13.0-00
 K8S_CNI_VERSION=0.6.0-00
 
+# Install basic software
+sudo apt update
+sudo apt install -y software-properties-common apt-transport-https curl
+
 # Install Docker as Prerequisite
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 sudo apt-key fingerprint 0EBFCD88
@@ -18,8 +22,6 @@ sudo apt install -y docker-ce=${DOCKER_VERSION}
 sudo swapoff -a
 
 # Install Kubernetes with Kubeadm
-sudo apt update
-sudo apt install -y apt-transport-https curl
 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
 
 cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
@@ -36,6 +38,7 @@ if ! grep -q -e 'fail-swap-on' /etc/default/kubelet; then
    sudo sed 's/KUBELET_EXTRA_ARGS=/KUBELET_EXTRA_ARGS=--fail-swap-on=false --feature-gates HugePages=false/' -i /etc/default/kubelet
 fi
 
+sudo modprobe br_netfilter
 _conf='/etc/sysctl.d/99-akraino-iec.conf'
 echo 'net.bridge.bridge-nf-call-iptables = 1' |& sudo tee "${_conf}"
 sudo sysctl -q -p "${_conf}"
index 82fc79b..cc6a0c2 100755 (executable)
@@ -27,4 +27,6 @@ if ! kubectl get nodes; then
     sudo cp -i /etc/kubernetes/admin.conf "${HOME}/.kube/config"
     sudo chown "$(id -u)":"$(id -g)" "${HOME}/.kube/config"
   fi
+  sleep 5
+  sudo swapon -a
 fi
index f68c2fb..dad6728 100755 (executable)
@@ -38,8 +38,8 @@ deploy_k8s () {
 
   #Automatic deploy the K8s environments on Master node
   SETUP_MASTER="cd iec/src/foundation/scripts/ && source k8s_master.sh ${K8S_MASTER_IP}"
-  sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${INSTALL_SOFTWARE}
-  sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_MASTER} | tee ${LOG_FILE}
+  sshpass -p ${K8S_MASTERPW} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${K8S_MASTER_IP} ${INSTALL_SOFTWARE}
+  sshpass -p ${K8S_MASTERPW} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_MASTER} | tee ${LOG_FILE}
 
   KUBEADM_JOIN_CMD=$(grep "kubeadm join " ./${LOG_FILE})
 
@@ -53,17 +53,22 @@ deploy_k8s () {
     passwd="$(cut -d',' -f2 <<<${worker})"
     echo "Install & Deploy on ${ip_addr}. password:${passwd}"
 
-    sshpass -p ${passwd} ssh ${HOST_USER}@${ip_addr} ${INSTALL_SOFTWARE}
-    sshpass -p ${passwd} ssh ${HOST_USER}@${ip_addr} "echo \"sudo ${KUBEADM_JOIN_CMD}\" >> ./iec/src/foundation/scripts/k8s_worker.sh"
-    sshpass -p ${passwd} ssh ${HOST_USER}@${ip_addr} ${SETUP_WORKER}
+    sshpass -p ${passwd} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${ip_addr} ${INSTALL_SOFTWARE}
+    sshpass -p ${passwd} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${ip_addr} "echo \"sudo ${KUBEADM_JOIN_CMD}\" >> ./iec/src/foundation/scripts/k8s_worker.sh"
+    sleep 2
+    sshpass -p ${passwd} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${ip_addr} "swapon -a"
+    sshpass -p ${passwd} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${ip_addr} ${SETUP_WORKER}
 
   done
 
 
   #Deploy etcd & CNI from master node
   #There may be more options in future. e.g: Calico, Contiv-vpp, Ovn-k8s ...
-  SETUP_CNI="cd iec/src/foundation/scripts && source setup-cni.sh"
-  sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_CNI}
+  SETUP_CNI="KUBECONFIG=/etc/kubernetes/admin.conf && cd iec/src/foundation/scripts && source setup-cni.sh"
+  sshpass -p ${K8S_MASTERPW} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_CNI}
+  SETUP_HELM="KUBECONFIG=/etc/kubernetes/admin.conf && cd iec/src/foundation/scripts && source helm.sh"
+  sshpass -p ${K8S_MASTERPW} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${K8S_MASTER_IP} ${SETUP_HELM}
+
 }
 
 #
@@ -73,22 +78,22 @@ check_k8s_status(){
   set -o xtrace
 
   VERIFY_K8S="cd iec/src/foundation/scripts/ && source nginx.sh"
-  sshpass -p ${K8S_MASTERPW} ssh ${HOST_USER}@${K8S_MASTER_IP} ${VERIFY_K8S}
-
-  sleep 30
+  sshpass -p ${K8S_MASTERPW} ssh -o StrictHostKeyChecking=no ${HOST_USER}@${K8S_MASTER_IP} ${VERIFY_K8S}
 }
 
 
 #
 # Init
 #
-if [ $1 == "--help" ] || [ $1 == "-h" ];
+if [ -n "$1" ];
 then
-  display_help
-  exit 0
+  if [ $1 == "--help" ] || [ $1 == "-h" ];
+  then
+    display_help
+    exit 0
+  fi
 fi
 
-
 # Read the configuration file
 source config
 
@@ -98,4 +103,6 @@ rm -f "${LOG_FILE}"
 
 deploy_k8s
 
+sleep 20
+
 check_k8s_status