X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Finstall_kubeadm_cluster.sh;h=0459bed55824d4483ad7ede0867c742fb08a0b32;hb=2e1c9f81d3cfc11f238156ad176471991eab3d90;hp=9c0fa2f574391257154230552fd903027ace317d;hpb=fa3eb33a4fcb134bd60b4006c54f3e31f8bce929;p=osm%2Fdevops.git diff --git a/installers/install_kubeadm_cluster.sh b/installers/install_kubeadm_cluster.sh index 9c0fa2f5..0459bed5 100755 --- a/installers/install_kubeadm_cluster.sh +++ b/installers/install_kubeadm_cluster.sh @@ -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} @@ -55,7 +55,7 @@ function init_kubeadm() { [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function sudo swapoff -a sudo sed -i.bak '/.*none.*swap/s/^\(.*\)$/#\1/g' /etc/fstab - sudo kubeadm init --dry-run || FATAL_TRACK k8scluster "kubeadm init dry-run failed" + sudo kubeadm init --config $1 --dry-run || FATAL_TRACK k8scluster "kubeadm init dry-run failed" sudo kubeadm init --config $1 sleep 5 [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function @@ -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 ..." @@ -177,10 +177,24 @@ function install_helm_metallb() { - name: default protocol: layer2 addresses: - - $METALLB_IP_RANGE" | sudo tee -a ${OSM_DOCKER_WORK_DIR}/metallb-config.yaml + - $METALLB_IP_RANGE" | sudo tee -a ${OSM_CLUSTER_WORK_DIR}/metallb-config.yaml helm repo add metallb https://metallb.github.io/metallb helm repo update - helm install --create-namespace --namespace metallb-system metallb metallb/metallb --version ${METALLB_VERSION} -f ${OSM_DOCKER_WORK_DIR}/metallb-config.yaml + helm install --create-namespace --namespace metallb-system metallb metallb/metallb --version ${METALLB_VERSION} -f ${OSM_CLUSTER_WORK_DIR}/metallb-config.yaml + [ -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 } @@ -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 @@ -282,7 +311,7 @@ while getopts ":D:d:i:-: " o; do DEFAULT_IP="${OPTARG}" ;; d) - OSM_DOCKER_WORK_DIR="${OPTARG}" + OSM_CLUSTER_WORK_DIR="${OPTARG}" ;; D) OSM_DEVOPS="${OPTARG}" @@ -312,7 +341,7 @@ source $OSM_DEVOPS/common/track echo "DEBUG_INSTALL=$DEBUG_INSTALL" echo "DEFAULT_IP=$DEFAULT_IP" echo "OSM_DEVOPS=$OSM_DEVOPS" -echo "OSM_DOCKER_WORK_DIR=$OSM_DOCKER_WORK_DIR" +echo "OSM_CLUSTER_WORK_DIR=$OSM_CLUSTER_WORK_DIR" echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR" echo "HOME=$HOME" @@ -320,7 +349,7 @@ echo "HOME=$HOME" install_kube check_and_track_kube_install -init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml +init_kubeadm $OSM_CLUSTER_WORK_DIR/kubeadm-config.yaml kube_config_dir check_and_track_init_k8s @@ -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