Fix Copy Artifacts stage in stage3 in case that tree fails
[osm/devops.git] / installers / install_kubeadm_cluster.sh
index 1672854..babf17c 100755 (executable)
 
 set +eux
 
-#installs kubernetes packages
+K8S_VERSION=1.24
+K8S_PACKAGE_VERSION="$K8S_VERSION".17-1.1
+HELM_VERSION="v3.10.3"
+
+# installs kubernetes packages
 function install_kube() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    K8S_VERSION=1.20.14-00
     # Kubernetes releases can be found here: https://kubernetes.io/releases/
     # To check other available versions, run the following command
     # curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'
-    sudo apt-get update && sudo apt-get install -y apt-transport-https
-    sudo apt-get update && sudo apt-get install -y apt-transport-https
-    curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
-    sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"
-    sudo apt-get update
+    sudo mkdir /etc/apt/keyrings
+    sudo apt-get -y update && sudo apt-get install -y apt-transport-https ca-certificates curl
+    curl -fsSL https://pkgs.k8s.io/core:/stable:/v"$K8S_VERSION"/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
+    echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v'$K8S_VERSION'/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
+    sudo apt-get -y update
     echo "Installing Kubernetes Packages ..."
-    sudo apt-get install -y kubelet=${K8S_VERSION} kubeadm=${K8S_VERSION} kubectl=${K8S_VERSION}
+    sudo apt-get install -y kubelet=${K8S_PACKAGE_VERSION} kubeadm=${K8S_PACKAGE_VERSION} kubectl=${K8S_PACKAGE_VERSION}
     sudo apt-mark hold kubelet kubeadm kubectl
+
+    sudo rm /etc/containerd/config.toml
+    sudo systemctl restart containerd
+
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
@@ -58,7 +65,8 @@ function deploy_cni_provider() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")"
     trap 'rm -rf "${CNI_DIR}"' EXIT
-    wget -q https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR
+    wget --retry-on-host-error --retry-on-http-error 404,429,503 --tries=5 https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -P $CNI_DIR
+    [ ! -f $CNI_DIR/kube-flannel.yml ] && FATAL "Cannot Install Flannel because $CNI_DIR/kube-flannel.yml was not found. Maybe the file https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml is temporarily not accessible"
     kubectl apply -f $CNI_DIR
     [ $? -ne 0 ] && FATAL "Cannot Install Flannel"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
@@ -67,8 +75,9 @@ function deploy_cni_provider() {
 #taints K8s master node
 function taint_master_node() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    K8S_MASTER=$(kubectl get nodes | awk '$3~/master/'| awk '{print $1}')
+    K8S_MASTER=$(kubectl get nodes | awk '$3~/control-plane/'| awk '{print $1}')
     kubectl taint node $K8S_MASTER node-role.kubernetes.io/master:NoSchedule-
+    kubectl taint node $K8S_MASTER node-role.kubernetes.io/control-plane:NoSchedule-
     sleep 5
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
@@ -77,7 +86,6 @@ function taint_master_node() {
 #Helm releases can be found here: https://github.com/helm/helm/releases
 function install_helm() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    HELM_VERSION="v3.7.2"
     if ! [[ "$(helm version --short 2>/dev/null)" =~ ^v3.* ]]; then
         # Helm is not installed. Install helm
         echo "Helm3 is not installed, installing ..."
@@ -96,7 +104,11 @@ function install_helm() {
 
 function install_k8s_storageclass() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    OPENEBS_VERSION="1.12.0"
+    echo "Installing open-iscsi"
+    sudo apt-get update
+    sudo apt-get install open-iscsi
+    sudo systemctl enable --now iscsid
+    OPENEBS_VERSION="3.1.0"
     echo "Installing OpenEBS"
     helm repo add openebs https://openebs.github.io/charts
     helm repo update