Fix bug 2059: Update lxd-credentials file
[osm/devops.git] / installers / full_install_osm.sh
index f157c1c..54d77be 100755 (executable)
@@ -492,21 +492,14 @@ clouds:
       ssl-hostname-verification: false
 EOF
     openssl req -nodes -new -x509 -keyout /tmp/.osm/client.key -out /tmp/.osm/client.crt -days 365 -subj "/C=FR/ST=Nice/L=Nice/O=ETSI/OU=OSM/CN=osm.etsi.org"
-    local server_cert=`cat /var/snap/lxd/common/lxd/server.crt | sed 's/^/        /'`
-    local client_cert=`cat /tmp/.osm/client.crt | sed 's/^/        /'`
-    local client_key=`cat /tmp/.osm/client.key | sed 's/^/        /'`
-
     cat << EOF > $LXD_CREDENTIALS
 credentials:
   $OSM_VCA_CLOUDNAME:
     lxd-cloud:
       auth-type: certificate
-      server-cert: |
-$server_cert
-      client-cert: |
-$client_cert
-      client-key: |
-$client_key
+      server-cert: /var/snap/lxd/common/lxd/server.crt
+      client-cert: /tmp/.osm/client.crt
+      client-key: /tmp/.osm/client.key
 EOF
     lxc config trust add local: /tmp/.osm/client.crt
     juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force
@@ -554,6 +547,7 @@ function generate_docker_images() {
 
     if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then
         sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image"
+        sg docker -c "docker pull kiwigrid/k8s-sidecar:${KIWIGRID_K8S_SIDECAR_TAG}" || FATAL "cannot get kiwigrid k8s-sidecar docker image"
     fi
 
     if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then
@@ -803,8 +797,11 @@ function install_kube() {
     sudo add-apt-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"
     sudo apt-get update
     echo "Installing Kubernetes Packages ..."
-    K8S_VERSION=1.20.11-00
+    K8S_VERSION=1.23.3-00
     sudo apt-get install -y kubelet=${K8S_VERSION} kubeadm=${K8S_VERSION} kubectl=${K8S_VERSION}
+    cat << EOF | sudo tee -a /etc/default/kubelet
+    KUBELET_EXTRA_ARGS="--cgroup-driver=cgroupfs"
+EOF
     sudo apt-mark hold kubelet kubeadm kubectl
 }
 
@@ -824,10 +821,14 @@ function kube_config_dir() {
 }
 
 function install_k8s_storageclass() {
+    echo "Installing open-iscsi"
+    sudo apt-get update
+    sudo apt-get install open-iscsi
+    sudo systemctl enable --now iscsid
     echo "Installing OpenEBS"
     helm repo add openebs https://openebs.github.io/charts
     helm repo update
-    helm install --create-namespace --namespace openebs openebs openebs/openebs --version 1.12.0
+    helm install --create-namespace --namespace openebs openebs openebs/openebs --version 3.1.0
     helm ls -n openebs
     local storageclass_timeout=400
     local counter=0
@@ -1012,19 +1013,22 @@ function deploy_osm_pla_service() {
 }
 
 #Install Helm v3
+#Helm releases can be found here: https://github.com/helm/helm/releases
 function install_helm() {
-    helm > /dev/null 2>&1
-    if [ $? != 0 ] ; then
+    HELM_VERSION="v3.7.2"
+    if ! [[ "$(helm version --short 2>/dev/null)" =~ ^v3.* ]]; then
         # Helm is not installed. Install helm
-        echo "Helm is not installed, installing ..."
-        curl https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz --output helm-v3.6.3.tar.gz
-        tar -zxvf helm-v3.6.3.tar.gz
+        echo "Helm3 is not installed, installing ..."
+        curl https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz --output helm-${HELM_VERSION}.tar.gz
+        tar -zxvf helm-${HELM_VERSION}.tar.gz
         sudo mv linux-amd64/helm /usr/local/bin/helm
         rm -r linux-amd64
-        rm helm-v3.6.3.tar.gz
-        helm repo add stable https://charts.helm.sh/stable
-        helm repo update
+        rm helm-${HELM_VERSION}.tar.gz
+    else
+        echo "Helm3 is already installed. Skipping installation..."
     fi
+    helm repo add stable https://charts.helm.sh/stable
+    helm repo update
 }
 
 function parse_yaml() {
@@ -1624,7 +1628,7 @@ function parse_docker_registry_url() {
 
 LXD_VERSION=4.0
 JUJU_VERSION=2.9
-JUJU_AGENT_VERSION=2.9.22
+JUJU_AGENT_VERSION=2.9.29
 UNINSTALL=""
 DEVELOP=""
 UPDATE=""
@@ -1682,8 +1686,9 @@ OSM_DOCKER_TAG=latest
 DOCKER_USER=opensourcemano
 PULL_IMAGES="y"
 KAFKA_TAG=2.11-1.0.2
-PROMETHEUS_TAG=v2.4.3
-GRAFANA_TAG=latest
+KIWIGRID_K8S_SIDECAR_TAG="1.15.6"
+PROMETHEUS_TAG=v2.28.1
+GRAFANA_TAG=8.1.1
 PROMETHEUS_NODE_EXPORTER_TAG=0.18.1
 PROMETHEUS_CADVISOR_TAG=latest
 KEYSTONEDB_TAG=10
@@ -1877,19 +1882,28 @@ done
 [ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options"
 [ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option"
 
-if [ -n "$SHOWOPTS" ]; then
-    dump_vars
+# Uninstall if "--uninstall"
+if [ -n "$UNINSTALL" ]; then
+    if [ -n "$CHARMED" ]; then
+        ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $OSM_DEVOPS -t $DOCKER_TAG "$@" || \
+        FATAL_TRACK charmed_uninstall "charmed_uninstall.sh failed"
+    else
+        ${OSM_DEVOPS}/installers/uninstall_osm.sh "$@" || \
+        FATAL_TRACK community_uninstall "uninstall_osm.sh failed"
+    fi
+    echo -e "\nDONE"
     exit 0
 fi
 
 if [ -n "$CHARMED" ]; then
-     if [ -n "$UNINSTALL" ]; then
-        ${OSM_DEVOPS}/installers/charmed_uninstall.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@"
-     else
-        ${OSM_DEVOPS}/installers/charmed_install.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@"
-     fi
-
-     exit 0
+    export OSM_TRACK_INSTALLATION_ID="$(date +%s)-$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16)"
+    track start release $RELEASE none none docker_tag $OSM_DOCKER_TAG none none installation_type $OSM_INSTALLATION_TYPE none none
+    ${OSM_DEVOPS}/installers/charmed_install.sh --tag $OSM_DOCKER_TAG "$@" || \
+    FATAL_TRACK charmed_install "charmed_install.sh failed"
+    wget -q -O- https://osm-download.etsi.org/ftp/osm-11.0-eleven/README2.txt &> /dev/null
+    track end installation_type $OSM_INSTALLATION_TYPE
+    echo -e "\nDONE"
+    exit 0
 fi
 
 # if develop, we force master