Feature 11032: Integration of OSM Helm Chart with different databases
[osm/devops.git] / installers / install_kubeadm_cluster.sh
index f0171d0..f0f49c2 100755 (executable)
@@ -15,8 +15,9 @@
 
 set +eux
 
 
 set +eux
 
-K8S_VERSION=1.29
-K8S_PACKAGE_VERSION="$K8S_VERSION".3-1.1
+K8S_VERSION=1.30
+K8S_PACKAGE_VERSION="$K8S_VERSION".1-1.1
+K8S_METRICS_VERSION="v0.7.1"
 
 # installs kubernetes packages
 function install_kube() {
 
 # installs kubernetes packages
 function install_kube() {
@@ -59,13 +60,19 @@ function init_kubeadm() {
 }
 
 # Initializes kubeconfig file
 }
 
 # Initializes kubeconfig file
-function kube_config_dir() {
+function save_kubeconfig() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     K8S_MANIFEST_DIR="/etc/kubernetes/manifests"
     [ ! -d $K8S_MANIFEST_DIR ] && FATAL_TRACK k8scluster "Kubernetes folder $K8S_MANIFEST_DIR was not found"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     K8S_MANIFEST_DIR="/etc/kubernetes/manifests"
     [ ! -d $K8S_MANIFEST_DIR ] && FATAL_TRACK k8scluster "Kubernetes folder $K8S_MANIFEST_DIR was not found"
-    mkdir -p $HOME/.kube
-    sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
-    sudo chown $(id -u):$(id -g) $HOME/.kube/config
+    KUBEDIR="${HOME}/.kube"
+    KUBEFILE="$KUBEDIR/config"
+    mkdir -p "${KUBEDIR}"
+    KUBEADM_KUBECONFIG="/etc/kubernetes/admin.conf"
+    sudo cp "${KUBEADM_KUBECONFIG}" "${KUBEFILE}"
+    sudo chown $(id -u):$(id -g) "${KUBEFILE}"
+    echo
+    echo "Credentials saved at ${KUBEFILE}"
+    echo
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
@@ -108,6 +115,15 @@ function check_and_track_k8s_ready_before_helm() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
+# removes osm deployments and services
+function install_k8s_metrics() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    echo "Installing Kubernetes metrics"
+    kubectl apply -f "https://github.com/kubernetes-sigs/metrics-server/releases/download/${K8S_METRICS_VERSION}/components.yaml"
+    kubectl -n kube-system patch deployment metrics-server --type=json -p '[{"op":"add","path":"/spec/template/spec/containers/0/args/-","value":"--kubelet-insecure-tls"}]'
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
 # removes osm deployments and services
 function remove_k8s_namespace() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
 # removes osm deployments and services
 function remove_k8s_namespace() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
@@ -115,13 +131,13 @@ function remove_k8s_namespace() {
     kubectl delete ns $1 2>/dev/null
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
     kubectl delete ns $1 2>/dev/null
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
-
 # main
 # main
-while getopts ":D:d:i:-: " o; do
+OSM_CLUSTER_WORK_DIR="/etc/osm"
+OSM_DEVOPS="/usr/share/osm-devops"
+DEBUG_INSTALL=""
+
+while getopts ":D:d:-: " o; do
     case "${o}" in
     case "${o}" in
-        i)
-            DEFAULT_IP="${OPTARG}"
-            ;;
         d)
             OSM_CLUSTER_WORK_DIR="${OPTARG}"
             ;;
         d)
             OSM_CLUSTER_WORK_DIR="${OPTARG}"
             ;;
@@ -164,13 +180,15 @@ install_kube
 check_and_track_kube_install
 
 init_kubeadm $OSM_CLUSTER_WORK_DIR/kubeadm-config.yaml
 check_and_track_kube_install
 
 init_kubeadm $OSM_CLUSTER_WORK_DIR/kubeadm-config.yaml
-kube_config_dir
+save_kubeconfig
 check_and_track_init_k8s
 
 deploy_cni_provider
 taint_master_node
 check_and_track_k8s_ready_before_helm
 
 check_and_track_init_k8s
 
 deploy_cni_provider
 taint_master_node
 check_and_track_k8s_ready_before_helm
 
+install_k8s_metrics
+
 remove_k8s_namespace osm
 
 # install_helm has been moved to install_helm_client.sh, run from full_install_osm.sh,
 remove_k8s_namespace osm
 
 # install_helm has been moved to install_helm_client.sh, run from full_install_osm.sh,