JSCH workaround for Ubuntu 22.04
[osm/devops.git] / installers / install_kubeadm_cluster.sh
index 9c0fa2f..0ec2a31 100755 (executable)
@@ -26,7 +26,7 @@ function install_kube() {
     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 add-apt-repository -y "deb https://apt.kubernetes.io/ kubernetes-xenial main"
     sudo apt-get update
     echo "Installing Kubernetes Packages ..."
     sudo apt-get install -y kubelet=${K8S_VERSION} kubeadm=${K8S_VERSION} kubectl=${K8S_VERSION}
@@ -114,7 +114,7 @@ function check_and_track_k8s_ready_before_helm() {
 #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"
+    HELM_VERSION="v3.11.3"
     if ! [[ "$(helm version --short 2>/dev/null)" =~ ^v3.* ]]; then
         # Helm is not installed. Install helm
         echo "Helm3 is not installed, installing ..."
@@ -184,6 +184,20 @@ function install_helm_metallb() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
+#installs cert-manager
+function install_helm_certmanager() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    echo "Installing cert-manager"
+    CERTMANAGER_VERSION="v1.9.1"
+    helm repo add jetstack https://charts.jetstack.io
+    helm repo update
+    helm install cert-manager --create-namespace --namespace cert-manager jetstack/cert-manager \
+        --version ${CERTMANAGER_VERSION} --set installCRDs=true --set prometheus.enabled=false \
+        --set clusterResourceNamespace=osm \
+        --set extraArgs="{--enable-certificate-owner-ref=true}"
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
 #checks openebs and metallb readiness
 function check_for_readiness() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
@@ -220,6 +234,13 @@ function check_for_readiness() {
         COUNT_METALLB_READY=$(echo "${METALLB_READY}" | grep -v -e '^$' | wc -l)
         COUNT_METALLB_NOT_READY=$(echo "${METALLB_NOT_READY}" | grep -v -e '^$' | wc -l)
 
+        # State of CertManager
+        CERTMANAGER_STATE=$(kubectl get pod -n ${CERTMANAGER_NAMESPACE} --no-headers 2>&1)
+        CERTMANAGER_READY=$(echo "${CERTMANAGER_STATE}" | awk '$2=="1/1" || $2=="2/2" {printf ("%s\t%s\t\n", $1, $2)}')
+        CERTMANAGER_NOT_READY=$(echo "${CERTMANAGER_STATE}" | awk '$2!="1/1" && $2!="2/2" {printf ("%s\t%s\t\n", $1, $2)}')
+        COUNT_CERTMANAGER_READY=$(echo "${CERTMANAGER_READY}" | grep -v -e '^$' | wc -l)
+        COUNT_CERTMANAGER_NOT_READY=$(echo "${CERTMANAGER_NOT_READY}" | grep -v -e '^$' | wc -l)
+
         # OK sample
         if [[ $((${COUNT_OPENEBS_NOT_READY}+${COUNT_METALLB_NOT_READY})) -eq 0 ]]
         then
@@ -241,13 +262,21 @@ function check_for_readiness() {
                 echo
             fi
 
-            # Reports failed statefulsets
+            # Reports failed pods in MetalLB
             if [[ "${COUNT_METALLB_NOT_READY}" -ne 0 ]]
             then
                 echo "MetalLB: Waiting for ${COUNT_METALLB_NOT_READY} of $((${COUNT_METALLB_NOT_READY}+${COUNT_METALLB_READY})) pods to be ready:"
                 echo "${METALLB_NOT_READY}"
                 echo
             fi
+
+            # Reports failed pods in CertManager
+            if [[ "${COUNT_CERTMANAGER_NOT_READY}" -ne 0 ]]
+            then
+                echo "CertManager: Waiting for ${COUNT_CERTMANAGER_NOT_READY} of $((${COUNT_CERTMANAGER_NOT_READY}+${COUNT_CERTMANAGER_READY})) pods to be ready:"
+                echo "${CERTMANAGER_NOT_READY}"
+                echo
+            fi
         fi
 
         #------------ NEXT SAMPLE
@@ -342,6 +371,8 @@ install_k8s_storageclass
 track k8scluster k8s_storageclass_ok
 install_helm_metallb
 track k8scluster k8s_metallb_ok
+install_helm_certmanager
+track k8scluster k8s_certmanager_ok
 check_for_readiness
 track k8scluster k8s_ready_ok