Use Hostname instead of IP to install k8s
[iec.git] / src / foundation / scripts / k8s_common.sh
index d9c536f..2aae30f 100755 (executable)
@@ -9,14 +9,14 @@ fi
 case ${OS_ID_LIKE:-} in
 debian)
   DOCKER_VERSION=18.06.1~ce~3-0~ubuntu
-  KUBE_VERSION=1.13.0-00
-  K8S_CNI_VERSION=0.6.0-00
+  KUBE_VERSION=${1:-1.19.0}-00
+  K8S_CNI_VERSION=${2:-0.8.6}-00
   KUBELET_CFG=/etc/default/kubelet
   ;;
 rhel)
   DOCKER_VERSION=18.06.1.ce-3.el7
-  KUBE_VERSION=1.13.0-0
-  K8S_CNI_VERSION=0.6.0-0
+  KUBE_VERSION=${1:-1.19.0}-0
+  K8S_CNI_VERSION=${2:-0.8.6}-0
   KUBELET_CFG=/etc/sysconfig/kubelet
   ;;
 *)
@@ -25,12 +25,13 @@ rhel)
   ;;
 esac
 
+
 case ${OS_ID_LIKE:-} in
 debian)
   # Install basic software
   echo "Acquire::ForceIPv4 \"true\";" | sudo tee -a /etc/apt/apt.conf.d/99force-ipv4 > /dev/null
   sudo apt update
-  sudo apt install -y software-properties-common apt-transport-https curl
+  sudo apt install -y software-properties-common apt-transport-https curl python-pip
 
   # Install Docker as Prerequisite
   curl -4fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
@@ -40,7 +41,8 @@ debian)
     $(lsb_release -cs) \
     stable"
   sudo apt update
-  sudo apt install -y docker-ce=${DOCKER_VERSION}
+  #sudo apt install -y docker-ce=${DOCKER_VERSION}
+  sudo apt install -y docker-ce
   ;;
 rhel)
   sudo yum install -y yum-utils device-mapper-persistent-data lvm2
@@ -88,8 +90,10 @@ EOF
 esac
 
 # Add extra flags to Kubelet
-if ! grep -q -e 'fail-swap-on' $KUBELET_CFG; then
-  sudo sed 's/KUBELET_EXTRA_ARGS=/KUBELET_EXTRA_ARGS=--fail-swap-on=false --feature-gates HugePages=false/' -i $KUBELET_CFG
+if [ ! -f "$KUBELET_CFG" ]; then
+  echo 'KUBELET_EXTRA_ARGS=--fail-swap-on=false' | sudo tee $KUBELET_CFG > /dev/null
+elif ! grep -q -e 'fail-swap-on' $KUBELET_CFG; then
+  sudo sed 's/KUBELET_EXTRA_ARGS=/KUBELET_EXTRA_ARGS=--fail-swap-on=false/' -i $KUBELET_CFG
 fi
 
 sudo systemctl enable docker kubelet
@@ -98,4 +102,6 @@ sudo systemctl restart docker kubelet
 sudo modprobe br_netfilter
 _conf='/etc/sysctl.d/99-akraino-iec.conf'
 echo 'net.bridge.bridge-nf-call-iptables = 1' |& sudo tee "${_conf}"
+# Set memory overcommit to 0 for extra checks during memory allocation
+echo 'vm.overcommit_memory = 0' |& sudo tee -a "${_conf}"
 sudo sysctl -q -p "${_conf}"