Revert "Feature 11010: Use of upstream helm charts for Prometheus and Grafana in...
[osm/devops.git] / installers / full_install_osm.sh
index a267750..4747949 100755 (executable)
@@ -33,8 +33,8 @@ function usage(){
     echo -e "     -A <VCA apiproxy> use VCA/juju API proxy"
     echo -e "     --pla:          install the PLA module for placement support"
     echo -e "     --old-sa:       install old Service Assurance framework (MON, POL); do not install Airflow and Pushgateway"
-    echo -e "     --ng-sa:        install new Service Assurance framework (Airflow, AlertManager and Pushgateway)  (enabled by default)"
-    echo -e "     -o <ADDON>:     ONLY (un)installs one of the addons (k8s_monitor, ng-sa)"
+    echo -e "     --ng-sa:        install new Service Assurance framework (Airflow, AlertManager and Pushgateway) (enabled by default)"
+    echo -e "     -o <COMPONENT>: ONLY installs the specified component (k8s_monitor, ng-sa, k8scluster, docker, deploy-osm)"
     echo -e "     -O <openrc file path/cloud name>: Install OSM to an OpenStack infrastructure. <openrc file/cloud name> is required. If a <cloud name> is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/"
     echo -e "     -N <openstack public network name/ID>: Public network name required to setup OSM to OpenStack"
     echo -e "     -f <path to SSH public key>: Public SSH key to use to deploy OSM to OpenStack"
@@ -199,7 +199,7 @@ function docker_login() {
 }
 
 #deploys osm pods and services
-function deploy_osm_services() {
+function deploy_osm_helm_chart() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     # Generate helm values to be passed with -f osm-values.yaml
     sudo mkdir -p ${OSM_HELM_WORK_DIR}
@@ -382,6 +382,7 @@ Do you want to proceed with the installation (Y/n)? " y && echo "Cancelled!" &&
 }
 
 function find_devops_folder() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     if [ -z "$OSM_DEVOPS" ]; then
         if [ -n "$TEST_INSTALLER" ]; then
             echo -e "\nUsing local devops repo for OSM installation"
@@ -393,6 +394,49 @@ function find_devops_folder() {
             git clone https://osm.etsi.org/gerrit/osm/devops.git $OSM_DEVOPS
         fi
     fi
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function install_lxd() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    LXD_INSTALL_OPTS="-D ${OSM_DEVOPS} -i ${OSM_DEFAULT_IF} ${DEBUG_INSTALL}"
+    [ -n "${OSM_BEHIND_PROXY}" ] && LXD_INSTALL_OPTS="${LXD_INSTALL_OPTS} -P"
+    $OSM_DEVOPS/installers/install_lxd.sh ${LXD_INSTALL_OPTS} || FATAL_TRACK lxd "install_lxd.sh failed"
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function install_docker_ce() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    DOCKER_CE_OPTS="-D ${OSM_DEVOPS} ${DEBUG_INSTALL}"
+    [ -n "${DOCKER_PROXY_URL}" ] && DOCKER_CE_OPTS="${DOCKER_CE_OPTS} -p ${DOCKER_PROXY_URL}"
+    [ -n "${OSM_BEHIND_PROXY}" ] && DOCKER_CE_OPTS="${DOCKER_CE_OPTS} -P"
+    $OSM_DEVOPS/installers/install_docker_ce.sh ${DOCKER_CE_OPTS} || FATAL_TRACK docker_ce "install_docker_ce.sh failed"
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function install_k8s_cluster() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    if [ "${K8S_CLUSTER_ENGINE}" == "kubeadm" ]; then
+        KUBEADM_INSTALL_OPTS="-d ${OSM_WORK_DIR} -D ${OSM_DEVOPS} ${DEBUG_INSTALL}"
+        $OSM_DEVOPS/installers/install_kubeadm_cluster.sh ${KUBEADM_INSTALL_OPTS} || \
+        FATAL_TRACK k8scluster "install_kubeadm_cluster.sh failed"
+        K8SCLUSTER_ADDONS_INSTALL_OPTS="-i ${OSM_DEFAULT_IP} -d ${OSM_WORK_DIR} -D ${OSM_DEVOPS} ${DEBUG_INSTALL}"
+        $OSM_DEVOPS/installers/install_cluster_addons.sh ${K8SCLUSTER_ADDONS_INSTALL_OPTS} || \
+        FATAL_TRACK k8scluster "install_cluster_addons.sh failed"
+    fi
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function deploy_osm() {
+    deploy_mongodb
+    track deploy_osm deploy_mongodb_ok
+    deploy_osm_helm_chart
+    track deploy_osm deploy_osm_services_k8s_ok
+    if [ -n "$INSTALL_NGSA" ]; then
+        # optional NGSA install
+        install_osm_ngsa_service
+        track deploy_osm install_osm_ngsa_ok
+    fi
 }
 
 function install_osm() {
@@ -430,11 +474,7 @@ function install_osm() {
     [ -n "$APT_PROXY_URL" ] && configure_apt_proxy $APT_PROXY_URL
 
     # if lxd is requested, we will install it
-    if [ -n "$INSTALL_LXD" ]; then
-        LXD_INSTALL_OPTS="-D ${OSM_DEVOPS} -i ${OSM_DEFAULT_IF} ${DEBUG_INSTALL}"
-        [ -n "${OSM_BEHIND_PROXY}" ] && LXD_INSTALL_OPTS="${LXD_INSTALL_OPTS} -P"
-        $OSM_DEVOPS/installers/install_lxd.sh ${LXD_INSTALL_OPTS} || FATAL_TRACK lxd "install_lxd.sh failed"
-    fi
+    [ -n "$INSTALL_LXD" ] && install_lxd
 
     track prereq prereqok_ok
 
@@ -442,10 +482,7 @@ function install_osm() {
         if [ "${K8S_CLUSTER_ENGINE}" == "kubeadm" ]; then
             echo "Kubeadm requires docker, so docker will be installed."
         fi
-        DOCKER_CE_OPTS="-D ${OSM_DEVOPS} ${DEBUG_INSTALL}"
-        [ -n "${DOCKER_PROXY_URL}" ] && DOCKER_CE_OPTS="${DOCKER_CE_OPTS} -p ${DOCKER_PROXY_URL}"
-        [ -n "${OSM_BEHIND_PROXY}" ] && DOCKER_CE_OPTS="${DOCKER_CE_OPTS} -P"
-        $OSM_DEVOPS/installers/install_docker_ce.sh ${DOCKER_CE_OPTS} || FATAL_TRACK docker_ce "install_docker_ce.sh failed"
+        install_docker_ce
     fi
     track docker_ce docker_ce_ok
 
@@ -453,14 +490,7 @@ function install_osm() {
     FATAL_TRACK k8scluster "install_helm_client.sh failed"
     track helm_client install_helm_client_ok
 
-    if [ "${K8S_CLUSTER_ENGINE}" == "kubeadm" ]; then
-        KUBEADM_INSTALL_OPTS="-d ${OSM_WORK_DIR} -D ${OSM_DEVOPS} ${DEBUG_INSTALL}"
-        $OSM_DEVOPS/installers/install_kubeadm_cluster.sh ${KUBEADM_INSTALL_OPTS} || \
-        FATAL_TRACK k8scluster "install_kubeadm_cluster.sh failed"
-        K8SCLUSTER_ADDONS_INSTALL_OPTS="-i ${OSM_DEFAULT_IP} -d ${OSM_WORK_DIR} -D ${OSM_DEVOPS} ${DEBUG_INSTALL}"
-        $OSM_DEVOPS/installers/install_cluster_addons.sh ${K8SCLUSTER_ADDONS_INSTALL_OPTS} || \
-        FATAL_TRACK k8scluster "install_cluster_addons.sh failed"
-    fi
+    install_k8s_cluster
     track k8scluster k8scluster_ok
 
     if [ -n "${INSTALL_JUJU}" ]; then
@@ -475,23 +505,17 @@ function install_osm() {
     fi
     track juju juju_ok
 
-    # Deploy OSM services
+    # This track is maintained for backwards compatibility
     track docker_images docker_images_ok
 
-    deploy_mongodb
-    track deploy_osm deploy_mongodb_ok
-    deploy_osm_services
-    track deploy_osm deploy_osm_services_k8s_ok
+    # Deploy OSM (mongodb, OSM helm chart, NGSA)
+    deploy_osm
+
     if [ -n "$INSTALL_K8S_MONITOR" ]; then
         # install OSM MONITORING
         install_k8s_monitoring
         track deploy_osm install_k8s_monitoring_ok
     fi
-    if [ -n "$INSTALL_NGSA" ]; then
-        # optional NGSA install
-        install_osm_ngsa_service
-        track deploy_osm install_osm_ngsa_ok
-    fi
 
     [ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient
     track osmclient osmclient_ok
@@ -601,6 +625,10 @@ function dump_vars(){
     echo "INSTALL_NGSA=$INSTALL_NGSA"
     echo "INSTALL_DOCKER=$INSTALL_DOCKER"
     echo "INSTALL_ONLY=$INSTALL_ONLY"
+    echo "INSTALL_ONLY_DEPLOY_OSM=$INSTALL_ONLY_DEPLOY_OSM"
+    echo "INSTALL_ONLY_DOCKER_CE=$INSTALL_ONLY_DOCKER_CE"
+    echo "INSTALL_ONLY_K8S_CLUSTER=$INSTALL_ONLY_K8S_CLUSTER"
+    echo "INSTALL_ONLY_NGSA=$INSTALL_ONLY_NGSA"
     echo "INSTALL_PLA=$INSTALL_PLA"
     echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK"
     echo "INSTALL_VIMEMU=$INSTALL_VIMEMU"
@@ -674,6 +702,10 @@ OPENSTACK_USERDATA_FILE=""
 OPENSTACK_VM_NAME="server-osm"
 OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm"
 INSTALL_ONLY=""
+INSTALL_ONLY_DEPLOY_OSM=""
+INSTALL_ONLY_DOCKER_CE=""
+INSTALL_ONLY_K8S_CLUSTER=""
+INSTALL_ONLY_NGSA=""
 INSTALL_DOCKER=""
 INSTALL_JUJU=""
 INSTALL_NOHOSTCLIENT=""
@@ -748,7 +780,10 @@ while getopts ":a:c:r:n:k:u:R:D:o:O:N:H:S:s:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o; do
         o)
             INSTALL_ONLY="y"
             [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue
-            [ "${OPTARG}" == "ng-sa" ] && INSTALL_NGSA="y" && continue
+            [ "${OPTARG}" == "ng-sa" ] && INSTALL_ONLY_NGSA="y" && continue
+            [ "${OPTARG}" == "docker" ] && INSTALL_ONLY_DOCKER_CE="y" && continue
+            [ "${OPTARG}" == "k8scluster" ] && INSTALL_ONLY_K8S_CLUSTER="y" && continue
+            [ "${OPTARG}" == "deploy-osm" ] && INSTALL_ONLY_DEPLOY_OSM="y" && continue
             ;;
         O)
             INSTALL_TO_OPENSTACK="y"
@@ -915,9 +950,14 @@ elif [ -n "$INSTALL_TO_OPENSTACK" ]; then
 else
     # Community_installer
     # Special cases go first
-    [ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring
-    [ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_NGSA" ] && install_osm_ngsa_service
-    [ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0
+    if [ -n "$INSTALL_ONLY" ]; then
+        [ -n "$INSTALL_ONLY_DOCKER_CE" ] && install_docker_ce
+        [ -n "$INSTALL_ONLY_K8S_CLUSTER" ] && install_k8s_cluster
+        [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring
+        [ -n "$INSTALL_ONLY_DEPLOY_OSM" ] && deploy_osm
+        [ -n "$INSTALL_ONLY_NGSA" ] && install_osm_ngsa_service
+        echo -e "\nDONE" && exit 0
+    fi
     # This is where installation starts
     install_osm
     echo -e "\nDONE"