Update install_ngsa.sh to use docker registry and user from CICD
[osm/devops.git] / installers / full_install_osm.sh
index 8b7f1d8..426b79c 100755 (executable)
@@ -30,7 +30,7 @@ function usage(){
     echo -e "                     -b tags/v1.1.0     (a specific tag)"
     echo -e "                     ..."
     echo -e "     -a <apt proxy url>: use this apt proxy url when downloading apt packages (air-gapped installation)"
-    echo -e "     -s <stack name> or <namespace>  user defined stack name when installed using swarm or namespace when installed using k8s, default is osm"
+    echo -e "     -s <namespace>  namespace when installed using k8s, default is osm"
     echo -e "     -H <VCA host>   use specific juju host controller IP"
     echo -e "     -S <VCA secret> use VCA/juju secret key"
     echo -e "     -P <VCA pubkey> use VCA/juju public key file"
@@ -112,12 +112,12 @@ function set_vca_variables() {
     OSM_VCA_CLOUDNAME="lxd-cloud"
     [ -n "$OSM_VCA_HOST" ] && OSM_VCA_CLOUDNAME="localhost"
     if [ -z "$OSM_VCA_HOST" ]; then
-        [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_STACK_NAME"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'`
+        [ -z "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`sg lxd -c "juju show-controller $OSM_NAMESPACE"|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'`
         [ -n "$CONTROLLER_NAME" ] && OSM_VCA_HOST=`juju show-controller $CONTROLLER_NAME |grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'`
         [ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address"
     fi
     if [ -z "$OSM_VCA_SECRET" ]; then
-        [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_STACK_NAME)
+        [ -z "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $OSM_NAMESPACE)
         [ -n "$CONTROLLER_NAME" ] && OSM_VCA_SECRET=$(parse_juju_password $CONTROLLER_NAME)
         [ -z "$OSM_VCA_SECRET" ] && FATAL "Cannot obtain juju secret"
     fi
@@ -126,7 +126,7 @@ function set_vca_variables() {
         [ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key"
     fi
     if [ -z "$OSM_VCA_CACERT" ]; then
-        [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_STACK_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n)
+        [ -z "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $OSM_NAMESPACE '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n)
         [ -n "$CONTROLLER_NAME" ] && OSM_VCA_CACERT=$(juju controllers --format json | jq -r --arg controller $CONTROLLER_NAME '.controllers[$controller]["ca-cert"]' | base64 | tr -d \\n)
         [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate"
     fi
@@ -215,13 +215,12 @@ function docker_login() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
-function generate_docker_images() {
+function pull_docker_images() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    echo "Pulling and generating docker images"
-    [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
-
     echo "Pulling docker images"
+    [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
 
+    echo "Pulling non-OSM docker images"
     if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q KAFKA ; then
         sg docker -c "docker pull wurstmeister/zookeeper" || FATAL "cannot get zookeeper docker image"
         sg docker -c "docker pull wurstmeister/kafka:${KAFKA_TAG}" || FATAL "cannot get kafka docker image"
@@ -248,48 +247,51 @@ function generate_docker_images() {
         sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image"
     fi
 
-    if [ -n "$PULL_IMAGES" ]; then
-        echo "Pulling OSM docker images"
-        for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient; do
+    echo "Pulling OSM docker images"
+    for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA osmclient Airflow; do
+        module_lower=${module,,}
+        if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
+            continue
+        fi
+        module_tag="${OSM_DOCKER_TAG}"
+        if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then
+            module_tag="${MODULE_DOCKER_TAG}"
+        fi
+        echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image"
+        sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image"
+    done
+
+    echo "Finished pulling docker images"
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+function generate_docker_images() {
+    [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+    echo "Generating docker images"
+    _build_from=$COMMIT_ID
+    [ -z "$_build_from" ] && _build_from="latest"
+    echo "OSM Docker images generated from $_build_from"
+    LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
+    trap 'rm -rf "${LWTEMPDIR}"' EXIT
+    for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do
+        if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
             module_lower=${module,,}
             if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
                 continue
             fi
-            module_tag="${OSM_DOCKER_TAG}"
-            if [ -n "${MODULE_DOCKER_TAG}" ] && echo $TO_REBUILD | grep -q $module ; then
-                module_tag="${MODULE_DOCKER_TAG}"
-            fi
-            echo "Pulling ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag} docker image"
-            sg docker -c "docker pull ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module_lower}:${module_tag}" || FATAL "cannot pull $module docker image"
-        done
-    else
-        _build_from=$COMMIT_ID
-        [ -z "$_build_from" ] && _build_from="latest"
-        echo "OSM Docker images generated from $_build_from"
-        LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")"
-        trap 'rm -rf "${LWTEMPDIR}"' EXIT
-        for module in MON POL NBI KEYSTONE RO LCM NG-UI PLA; do
-            if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
-                module_lower=${module,,}
-                if [ $module == "PLA" -a ! -n "$INSTALL_PLA" ]; then
-                    continue
-                fi
-                git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module
-                git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID}
-                sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image"
-            fi
-        done
-        if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then
-            BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY")
-            BUILD_ARGS+=(--build-arg RELEASE="$RELEASE")
-            BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY")
-            BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE")
-            sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
+            git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/$module
+            git -C ${LWTEMPDIR}/${module} checkout ${COMMIT_ID}
+            sg docker -c "docker build ${LWTEMPDIR}/${module} -f ${LWTEMPDIR}/${module}/docker/Dockerfile -t ${DOCKER_USER}/${module_lower} --no-cache" || FATAL "cannot build ${module} docker image"
         fi
-        echo "Finished generation of docker images"
+    done
+    if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q osmclient; then
+        BUILD_ARGS+=(--build-arg REPOSITORY="$REPOSITORY")
+        BUILD_ARGS+=(--build-arg RELEASE="$RELEASE")
+        BUILD_ARGS+=(--build-arg REPOSITORY_KEY="$REPOSITORY_KEY")
+        BUILD_ARGS+=(--build-arg REPOSITORY_BASE="$REPOSITORY_BASE")
+        sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
     fi
-
-    echo "Finished pulling and generating docker images"
+    echo "Finished generation of docker images"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
@@ -327,6 +329,7 @@ function generate_docker_env_files() {
     sudo cp $OSM_DOCKER_WORK_DIR/ro.env{,~}
     if [ -n "${INSTALL_NGSA}" ]; then
         sudo cp $OSM_DOCKER_WORK_DIR/ngsa.env{,~}
+        sudo cp $OSM_DOCKER_WORK_DIR/webhook-translator.env{,~}
     fi
 
     echo "Generating docker env files"
@@ -475,6 +478,14 @@ function generate_docker_env_files() {
         echo "OSMMON_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | sudo tee -a $OSM_DOCKER_WORK_DIR/ngsa.env
     fi
 
+    # Webhook-translator
+    if [ -n "${INSTALL_NGSA}" ] && [ ! -f $OSM_DOCKER_WORK_DIR/webhook-translator.env ]; then
+        echo "AIRFLOW_HOST=airflow-webserver" | sudo tee -a $OSM_DOCKER_WORK_DIR/webhook-translator.env
+        echo "AIRFLOW_PORT=8080" | sudo tee -a $OSM_DOCKER_WORK_DIR/webhook-translator.env
+        echo "AIRFLOW_USER=admin" | sudo tee -a $OSM_DOCKER_WORK_DIR/webhook-translator.env
+        echo "AIRFLOW_PASS=admin" | sudo tee -a $OSM_DOCKER_WORK_DIR/webhook-translator.env
+    fi
+
     echo "Finished generation of docker env files"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
@@ -482,16 +493,17 @@ function generate_docker_env_files() {
 #creates secrets from env files which will be used by containers
 function kube_secrets(){
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    kubectl create ns $OSM_STACK_NAME
-    kubectl create secret generic lcm-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env
-    kubectl create secret generic mon-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env
-    kubectl create secret generic nbi-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env
-    kubectl create secret generic ro-db-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env
-    kubectl create secret generic ro-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env
-    kubectl create secret generic keystone-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env
-    kubectl create secret generic pol-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env
+    kubectl create ns $OSM_NAMESPACE
+    kubectl create secret generic lcm-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/lcm.env
+    kubectl create secret generic mon-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/mon.env
+    kubectl create secret generic nbi-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/nbi.env
+    kubectl create secret generic ro-db-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ro-db.env
+    kubectl create secret generic ro-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ro.env
+    kubectl create secret generic keystone-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/keystone.env
+    kubectl create secret generic pol-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/pol.env
     if [ -n "${INSTALL_NGSA}" ]; then
-        kubectl create secret generic ngsa-secret -n $OSM_STACK_NAME --from-env-file=$OSM_DOCKER_WORK_DIR/ngsa.env
+        kubectl create secret generic ngsa-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/ngsa.env
+        kubectl create secret generic webhook-translator-secret -n $OSM_NAMESPACE --from-env-file=$OSM_DOCKER_WORK_DIR/webhook-translator.env
     fi
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
@@ -499,28 +511,30 @@ function kube_secrets(){
 #deploys osm pods and services
 function deploy_osm_services() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR
+    kubectl apply -n $OSM_NAMESPACE -f $OSM_K8S_WORK_DIR
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
 #deploy charmed services
 function deploy_charmed_services() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME
-    juju deploy ch:mongodb-k8s -m $OSM_STACK_NAME
+    juju add-model $OSM_NAMESPACE $OSM_VCA_K8S_CLOUDNAME
+    juju deploy ch:mongodb-k8s -m $OSM_NAMESPACE
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
 function deploy_osm_pla_service() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     # corresponding to deploy_osm_services
-    kubectl apply -n $OSM_STACK_NAME -f $OSM_DOCKER_WORK_DIR/osm_pla
+    kubectl apply -n $OSM_NAMESPACE -f $OSM_DOCKER_WORK_DIR/osm_pla
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
 function install_osm_ngsa_service() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
-    $OSM_DEVOPS/installers/install_ngsa.sh -d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} ${DEBUG_INSTALL} || \
+    NGSA_OPTS="-d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} -U ${DOCKER_USER} ${DEBUG_INSTALL}"
+    [ -n "${DOCKER_REGISTRY_URL}" ] && NGSA_OPTS="${NGSA_OPTS} -r ${DOCKER_REGISTRY_URL}"
+    $OSM_DEVOPS/installers/install_ngsa.sh ${NGSA_OPTS} || \
     FATAL_TRACK install_osm_ngsa_service "install_ngsa.sh failed"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
@@ -540,6 +554,8 @@ function parse_yaml() {
             image=${module}
             if [ "$module" == "ng-prometheus" ]; then
                 image="prometheus"
+            elif [ "$module" == "ng-mon" ]; then
+                image="mon"
             fi
             echo "Updating K8s manifest file from opensourcemano\/${image}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${image}:${TAG}"
             sudo sed -i "s#opensourcemano/${image}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${image}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml
@@ -549,7 +565,7 @@ function parse_yaml() {
 }
 
 function update_manifest_files() {
-    osm_services="nbi lcm ro pol mon ng-ui keystone pla prometheus ng-prometheus"
+    osm_services="nbi lcm ro pol mon ng-mon ng-ui keystone pla prometheus ng-prometheus"
     list_of_services=""
     for module in $osm_services; do
         module_upper="${module^^}"
@@ -564,10 +580,15 @@ function update_manifest_files() {
         parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild
     fi
     # The manifest for prometheus is prometheus.yaml or ng-prometheus.yaml, depending on the installation option
+    # If NG-SA is installed, it will include ng-mon (only mon-dashboarder), ng-prometheus and webhook translator. It won't include pol, mon and prometheus
     if [ -n "$INSTALL_NGSA" ]; then
         sudo rm -f ${OSM_K8S_WORK_DIR}/prometheus.yaml
+        sudo rm -f ${OSM_K8S_WORK_DIR}/mon.yaml
+        sudo rm -f ${OSM_K8S_WORK_DIR}/pol.yaml
     else
+        sudo rm -f ${OSM_K8S_WORK_DIR}/ng-mon.yaml
         sudo rm -f ${OSM_K8S_WORK_DIR}/ng-prometheus.yaml
+        sudo rm -f ${OSM_K8S_WORK_DIR}/webhook-translator.yaml
     fi
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
@@ -709,9 +730,6 @@ function install_osm() {
 
     find_devops_folder
 
-    # TODO: the use of stacks come from docker-compose. We should probably remove
-    [ "${OSM_STACK_NAME}" == "osm" ] || OSM_DOCKER_WORK_DIR="$OSM_WORK_DIR/stack/$OSM_STACK_NAME"
-
     track start release $RELEASE none none docker_tag $OSM_DOCKER_TAG none none installation_type $OSM_INSTALLATION_TYPE none none
 
     track checks checkingroot_ok
@@ -760,7 +778,7 @@ function install_osm() {
     FATAL_TRACK k8scluster "install_kubeadm_cluster.sh failed"
     track k8scluster k8scluster_ok
 
-    JUJU_OPTS="-D ${OSM_DEVOPS} -s ${OSM_STACK_NAME} -i ${OSM_DEFAULT_IP} ${DEBUG_INSTALL} ${INSTALL_NOJUJU} ${INSTALL_CACHELXDIMAGES}"
+    JUJU_OPTS="-D ${OSM_DEVOPS} -s ${OSM_NAMESPACE} -i ${OSM_DEFAULT_IP} ${DEBUG_INSTALL} ${INSTALL_NOJUJU} ${INSTALL_CACHELXDIMAGES}"
     [ -n "${OSM_VCA_HOST}" ] && JUJU_OPTS="$JUJU_OPTS -H ${OSM_VCA_HOST}"
     [ -n "${LXD_CLOUD_FILE}" ] && JUJU_OPTS="$JUJU_OPTS -l ${LXD_CLOUD_FILE}"
     [ -n "${LXD_CRED_FILE}" ] && JUJU_OPTS="$JUJU_OPTS -L ${LXD_CRED_FILE}"
@@ -776,7 +794,8 @@ function install_osm() {
     fi
 
     # Deploy OSM services
-    [ -z "$DOCKER_NOBUILD" ] && generate_docker_images
+    [ -z "$DOCKER_NOBUILD" ] && pull_docker_images
+    [ -z "$DOCKER_NOBUILD" ] && [ -z "$PULL_IMAGES" ] && generate_docker_images
     track docker_images docker_images_ok
 
     generate_k8s_manifest_files
@@ -814,15 +833,17 @@ function install_osm() {
     track osmclient osmclient_ok
 
     echo -e "Checking OSM health state..."
-    $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_STACK_NAME} -k || \
+    $OSM_DEVOPS/installers/osm_health.sh -s ${OSM_NAMESPACE} -k || \
     (echo -e "OSM is not healthy, but will probably converge to a healthy state soon." && \
-    echo -e "Check OSM status with: kubectl -n ${OSM_STACK_NAME} get all" && \
+    echo -e "Check OSM status with: kubectl -n ${OSM_NAMESPACE} get all" && \
     track healthchecks osm_unhealthy didnotconverge)
     track healthchecks after_healthcheck_ok
 
     add_local_k8scluster
     track final_ops add_local_k8scluster_ok
 
+    arrange_docker_default_network_policy
+
     wget -q -O- https://osm-download.etsi.org/ftp/osm-13.0-thirteen/README2.txt &> /dev/null
     track end
     sudo find /etc/osm
@@ -884,6 +905,13 @@ function install_to_openstack() {
     return 0
 }
 
+function arrange_docker_default_network_policy() {
+    echo -e "Fixing firewall so docker and LXD can share the same host without affecting each other."
+    sudo iptables -I DOCKER-USER -j ACCEPT
+    sudo iptables-save | sudo tee /etc/iptables/rules.v4
+    sudo ip6tables-save | sudo tee /etc/iptables/rules.v6
+}
+
 function install_k8s_monitoring() {
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     # install OSM monitoring
@@ -926,7 +954,7 @@ function dump_vars(){
     echo "OSM_DOCKER_WORK_DIR=$OSM_DOCKER_WORK_DIR"
     echo "OSM_HELM_WORK_DIR=$OSM_HELM_WORK_DIR"
     echo "OSM_K8S_WORK_DIR=$OSM_K8S_WORK_DIR"
-    echo "OSM_STACK_NAME=$OSM_STACK_NAME"
+    echo "OSM_NAMESPACE=$OSM_NAMESPACE"
     echo "OSM_VCA_HOST=$OSM_VCA_HOST"
     echo "OSM_VCA_PUBKEY=$OSM_VCA_PUBKEY"
     echo "OSM_VCA_SECRET=$OSM_VCA_SECRET"
@@ -1003,7 +1031,7 @@ OSM_VCA_SECRET=
 OSM_VCA_PUBKEY=
 OSM_VCA_CLOUDNAME="localhost"
 OSM_VCA_K8S_CLOUDNAME="k8scloud"
-OSM_STACK_NAME=osm
+OSM_NAMESPACE=osm
 NO_HOST_PORTS=""
 DOCKER_NOBUILD=""
 REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg"
@@ -1013,7 +1041,7 @@ OSM_DOCKER_WORK_DIR="${OSM_WORK_DIR}/docker"
 OSM_K8S_WORK_DIR="${OSM_DOCKER_WORK_DIR}/osm_pods"
 OSM_HELM_WORK_DIR="${OSM_WORK_DIR}/helm"
 OSM_HOST_VOL="/var/lib/osm"
-OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}"
+OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_NAMESPACE}"
 OSM_DOCKER_TAG=latest
 DOCKER_USER=opensourcemano
 PULL_IMAGES="y"
@@ -1110,7 +1138,7 @@ while getopts ":a:b:r:n:k:u:R:D:o:O:m:N:H:S:s:t:U:P:A:l:L:K:d:p:T:f:F:-: hy" o;
             OSM_VCA_SECRET="${OPTARG}"
             ;;
         s)
-            OSM_STACK_NAME="${OPTARG}" && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0
+            OSM_NAMESPACE="${OPTARG}" && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0
             ;;
         t)
             OSM_DOCKER_TAG="${OPTARG}"
@@ -1223,6 +1251,7 @@ fi
 
 # Charmed installation
 if [ -n "$CHARMED" ]; then
+    sudo snap install jq || FATAL "Could not install jq (snap package). Make sure that snap works"
     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 "$@" || \
@@ -1246,7 +1275,7 @@ fi
 [ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" == " PLA" ] && [ -z "$INSTALL_PLA" ] && FATAL "Incompatible option: -m PLA cannot be used without --pla option"
 # if develop, we force master
 [ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master"
-OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}"
+OSM_K8S_WORK_DIR="$OSM_DOCKER_WORK_DIR/osm_pods" && OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_NAMESPACE}"
 [ -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