diff --git a/installers/full_install_osm.sh b/installers/full_install_osm.sh
index 3ff278d..c4141db 100755
--- a/installers/full_install_osm.sh
+++ b/installers/full_install_osm.sh
@@ -17,6 +17,8 @@
     echo -e "usage: $0 [OPTIONS]"
     echo -e "Install OSM from binaries or source code (by default, from binaries)"
     echo -e "  OPTIONS"
+    echo -e "     -h / --help:    print this help"
+    echo -e "     -y:             do not prompt for confirmation, assumes yes"
     echo -e "     -r <repo>:      use specified repository name for osm packages"
     echo -e "     -R <release>:   use specified release for osm binaries (deb packages, lxd images, ...)"
     echo -e "     -u <repo base>: use specified repository url for osm packages"
@@ -37,7 +39,7 @@
     echo -e "     --vimemu:       additionally deploy the VIM emulator as a docker container"
     echo -e "     --elk_stack:    additionally deploy an ELK docker stack for event logging"
     echo -e "     --pla:          install the PLA module for placement support"
-    echo -e "     -m <MODULE>:    install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, PLA, NONE)"
+    echo -e "     -m <MODULE>:    install OSM but only rebuild or pull the specified docker images (LW-UI, NG-UI, NBI, LCM, RO, MON, POL, PLA, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, NONE)"
     echo -e "     -o <ADDON>:     ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)"
     echo -e "     -O <openrc file/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"
@@ -47,6 +49,9 @@
     echo -e "     -l:             LXD cloud yaml file"
     echo -e "     -L:             LXD credentials yaml file"
     echo -e "     -K:             Specifies the name of the controller to use - The controller must be already bootstrapped"
+    echo -e "     -d <docker registry URL> use docker registry URL instead of dockerhub"
+    echo -e "     -p <docker proxy URL> set docker proxy URL as part of docker CE configuration"
+    echo -e "     -T <docker tag> specify docker tag for the modules specified with option -m"
     echo -e "     --nolxd:        do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)"
     echo -e "     --nodocker:     do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)"
     echo -e "     --nojuju:       do not juju, assumes already installed"
@@ -62,8 +67,6 @@
 #    echo -e "     --reconfigure:  reconfigure the modules (DO NOT change NAT rules)"
 #    echo -e "     --update:       update to the latest stable release or to the latest commit if using a specific branch"
     echo -e "     --showopts:     print chosen options and exit (only for debugging)"
-    echo -e "     -y:             do not prompt for confirmation, assumes yes"
-    echo -e "     -h / --help:    print this help"
     echo -e "     --charmed:                   Deploy and operate OSM with Charms on k8s"
     echo -e "     [--bundle <bundle path>]:    Specify with which bundle to deploy OSM with charms (--charmed option)"
     echo -e "     [--k8s <kubeconfig path>]:   Specify with which kubernetes to deploy OSM with charms (--charmed option)"
@@ -72,7 +75,8 @@
     echo -e "     [--lxd-cred <yaml path>]:    Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)"
     echo -e "     [--microstack]:              Installs microstack as a vim. (--charmed option)"
     echo -e "     [--ha]:                      Installs High Availability bundle. (--charmed option)"
-    echo -e "     [--tag]:                     Docker image tag"
+    echo -e "     [--tag]:                     Docker image tag. (--charmed option)"
+    echo -e "     [--registry]:                Docker registry with optional credentials as user:pass@hostname:port (--charmed option)"
 
 }
 
@@ -183,6 +187,10 @@
     fi
 }
 
+function remove_crontab_job() {
+    crontab -l | grep -v '${OSM_DEVOPS}/installers/update-juju-lxc-images'  | crontab -
+}
+
 #Uninstall osmclient
 function uninstall_osmclient() {
     sudo apt-get remove --purge -y python-osmclient
@@ -210,21 +218,17 @@
             remove_stack osm_elk
         fi
         echo "Now osm docker images and volumes will be deleted"
+	# TODO: clean-up of images should take into account if other tags were used for specific modules
         newgrp docker << EONG
-        docker image rm ${DOCKER_USER}/ro:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/lcm:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/keystone:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/nbi:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/mon:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/pol:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/pla:${OSM_DOCKER_TAG}
-        docker image rm ${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}
+for module in ro lcm keystone nbi mon pol pla osmclient; do
+    docker image rm ${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${OSM_DOCKER_TAG}
+done
 EONG
 
         if [ -n "$NGUI" ]; then
-            sg docker -c "docker image rm ${DOCKER_USER}/ng-ui:${OSM_DOCKER_TAG}"
+            sg docker -c "docker image rm ${DOCKER_REGISTRY_URL}${DOCKER_USER}/ng-ui:${OSM_DOCKER_TAG}"
         else
-            sg docker -c "docker image rm ${DOCKER_USER}/light-ui:${OSM_DOCKER_TAG}"
+            sg docker -c "docker image rm ${DOCKER_REGISTRY_URL}${DOCKER_USER}/light-ui:${OSM_DOCKER_TAG}"
         fi
 
         if [ -n "$KUBERNETES" ]; then
@@ -233,12 +237,13 @@
         else
             remove_volumes $OSM_STACK_NAME
             remove_network $OSM_STACK_NAME
+            [ -z "$CONTROLLER_NAME" ] && remove_iptables $OSM_STACK_NAME
         fi
-        [ -z "$CONTROLLER_NAME" ] && remove_iptables $OSM_STACK_NAME
         echo "Removing $OSM_DOCKER_WORK_DIR"
         $WORKDIR_SUDO rm -rf $OSM_DOCKER_WORK_DIR
-        [ -z "$CONTROLLER_NAME" ] && sg lxd -c "juju destroy-controller --destroy-all-models --yes $OSM_STACK_NAME"
+        [ -z "$CONTROLLER_NAME" ] && sg lxd -c "juju kill-controller -t 0 -y $OSM_STACK_NAME"
     fi
+    remove_crontab_job
     [ -z "$INSTALL_NOHOSTCLIENT" ] && uninstall_osmclient
     echo "Some docker images will be kept in case they are used by other docker stacks"
     echo "To remove them, just run 'docker image prune' in a terminal"
@@ -270,6 +275,11 @@
     exit 1
 }
 
+function update_juju_images(){
+    crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab -
+    ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic
+}
+
 function install_lxd() {
     # Apply sysctl production values for optimal performance
     sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf
@@ -278,7 +288,6 @@
     # Install LXD snap
     sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client
     sudo snap install lxd
-    sudo apt-get install zfsutils-linux -y
 
     # Configure LXD
     sudo usermod -a -G lxd `whoami`
@@ -391,6 +400,25 @@
     sleep 2
     sudo service docker restart
     echo "... restarted Docker service"
+    if [ -n "${DOCKER_PROXY_URL}" ]; then
+        echo "Configuring docker proxy ..."
+        if [ -f /etc/docker/daemon.json ]; then
+            if grep -q registry-mirrors /etc/docker/daemon.json; then
+                sudo sed -Ei 's/("registry-mirrors".*\[)(.*)\]/\1\2, \"'"${DOCKER_PROXY_URL}"'\"\]/' /etc/docker/daemon.json
+            else
+                sudo sed -i 's/{/{\n  "registry-mirrors": [\"'"${DOCKER_PROXY_URL}"'\"]",/' /etc/docker/daemon.json
+            fi
+        else
+            sudo bash -c 'cat << EOF > /etc/docker/daemon.json
+{
+  "registry-mirrors": ["${DOCKER_PROXY_URL}"]
+}
+EOF'
+        fi
+        sudo systemctl daemon-reload
+        sudo service docker restart
+        echo "... restarted Docker service again"
+    fi
     sg docker -c "docker version" || FATAL "Docker installation failed"
     echo "... Docker CE installation done"
     return 0
@@ -408,6 +436,7 @@
     echo "Installing juju"
     sudo snap install juju --classic --channel=2.8/stable
     [[ ":$PATH": != *":/snap/bin:"* ]] && PATH="/snap/bin:${PATH}"
+    update_juju_images
     echo "Finished installation of juju"
     return 0
 }
@@ -416,7 +445,7 @@
     if ! juju show-controller $OSM_STACK_NAME &> /dev/null; then
         # Not found created, create the controller
         sudo usermod -a -G lxd ${USER}
-        sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=2.8.1 $OSM_VCA_CLOUDNAME $OSM_STACK_NAME"
+        sg lxd -c "juju bootstrap --bootstrap-series=xenial --agent-version=$JUJU_AGENT_VERSION $OSM_VCA_CLOUDNAME $OSM_STACK_NAME"
     fi
     [ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed"
     juju controller-config features=[k8s-operators]
@@ -426,6 +455,55 @@
     cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --controller $OSM_STACK_NAME --storage openebs-hostpath
 }
 
+function juju_createcontroller_k8s(){
+    cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client
+    juju bootstrap $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME  \
+            --config controller-service-type=loadbalancer \
+            --agent-version=$JUJU_AGENT_VERSION
+}
+
+
+function juju_addlxd_cloud(){
+    mkdir -p /tmp/.osm
+    OSM_VCA_CLOUDNAME="lxd-cloud"
+    LXDENDPOINT=$DEFAULT_IP
+    LXD_CLOUD=/tmp/.osm/lxd-cloud.yaml
+    LXD_CREDENTIALS=/tmp/.osm/lxd-credentials.yaml
+
+    cat << EOF > $LXD_CLOUD
+clouds:
+  $OSM_VCA_CLOUDNAME:
+    type: lxd
+    auth-types: [certificate]
+    endpoint: "https://$LXDENDPOINT:8443"
+    config:
+      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
+EOF
+    lxc config trust add local: /tmp/.osm/client.crt
+    juju add-cloud -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME $LXD_CLOUD --force
+    juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS
+    sg lxd -c "lxd waitready"
+    juju controller-config features=[k8s-operators]
+}
+
+
 function juju_createproxy() {
     check_install_iptables_persistent
 
@@ -435,17 +513,16 @@
     fi
 }
 
+function docker_login() {
+    echo "Docker login"
+    sg docker -c "docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PASSWORD}"
+}
+
 function generate_docker_images() {
     echo "Pulling and generating docker images"
-    _build_from=$COMMIT_ID
-    [ -z "$_build_from" ] && _build_from="master"
+    [ -n "${DOCKER_REGISTRY_URL}" ] && docker_login
 
-    echo "OSM Docker images generated from $_build_from"
-
-    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")
+    echo "Pulling 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"
@@ -477,84 +554,66 @@
     fi
 
     if [ -n "$PULL_IMAGES" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/mon:${OSM_DOCKER_TAG}" || FATAL "cannot pull MON docker image"
-    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q MON ; then
-        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/MON
-        git -C ${LWTEMPDIR}/MON checkout ${COMMIT_ID}
-        sg docker -c "docker build ${LWTEMPDIR}/MON -f ${LWTEMPDIR}/MON/docker/Dockerfile -t ${DOCKER_USER}/mon --no-cache" || FATAL "cannot build MON docker image"
-    fi
-
-    if [ -n "$PULL_IMAGES" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/pol:${OSM_DOCKER_TAG}" || FATAL "cannot pull POL docker image"
-    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q POL ; then
-        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/POL
-        git -C ${LWTEMPDIR}/POL checkout ${COMMIT_ID}
-        sg docker -c "docker build ${LWTEMPDIR}/POL -f ${LWTEMPDIR}/POL/docker/Dockerfile -t ${DOCKER_USER}/pol --no-cache" || FATAL "cannot build POL docker image"
-    fi
-
-    if [ -n "$PULL_IMAGES" -a -n "$INSTALL_PLA" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/pla:${OSM_DOCKER_TAG}" || FATAL "cannot pull PLA docker image"
-    elif [ -z "$TO_REBUILD" -a -n "$INSTALL_PLA" ] || echo $TO_REBUILD | grep -q PLA ; then
-        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/PLA
-        git -C ${LWTEMPDIR}/PLA checkout ${COMMIT_ID}
-        sg docker -c "docker build ${LWTEMPDIR}/PLA -f ${LWTEMPDIR}/PLA/docker/Dockerfile -t ${DOCKER_USER}/pla --no-cache" || FATAL "cannot build PLA docker image"
-    fi
-
-    if [ -n "$PULL_IMAGES" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/nbi:${OSM_DOCKER_TAG}" || FATAL "cannot pull NBI docker image"
-        sg docker -c "docker pull ${DOCKER_USER}/keystone:${OSM_DOCKER_TAG}" || FATAL "cannot pull KEYSTONE docker image"
-    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI ; then
-        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/NBI
-        git -C ${LWTEMPDIR}/NBI checkout ${COMMIT_ID}
-        sg docker -c "docker build ${LWTEMPDIR}/NBI -f ${LWTEMPDIR}/NBI/Dockerfile.local -t ${DOCKER_USER}/nbi --no-cache" || FATAL "cannot build NBI docker image"
-        sg docker -c "docker build ${LWTEMPDIR}/NBI/keystone -f ${LWTEMPDIR}/NBI/keystone/Dockerfile -t ${DOCKER_USER}/keystone --no-cache" || FATAL "cannot build KEYSTONE docker image"
-    fi
-
-    if [ -n "$PULL_IMAGES" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/ro:${OSM_DOCKER_TAG}" || FATAL "cannot pull RO docker image"
-    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then
-        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/RO
-        git -C ${LWTEMPDIR}/RO checkout ${COMMIT_ID}
-        sg docker -c "docker build ${LWTEMPDIR}/RO -f ${LWTEMPDIR}/RO/Dockerfile-local -t ${DOCKER_USER}/ro --no-cache" || FATAL "cannot build RO docker image"
-    fi
-
-    if [ -n "$PULL_IMAGES" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/lcm:${OSM_DOCKER_TAG}" || FATAL "cannot pull LCM RO docker image"
-    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q LCM ; then
-        git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/LCM
-        git -C ${LWTEMPDIR}/LCM checkout ${COMMIT_ID}
-        sg docker -c "docker build ${LWTEMPDIR}/LCM -f ${LWTEMPDIR}/LCM/Dockerfile.local -t ${DOCKER_USER}/lcm --no-cache" || FATAL "cannot build LCM docker image"
-    fi
-
-    if [ -n "$NGUI" ]; then
-        if [ -n "$PULL_IMAGES" ]; then
-            sg docker -c "docker pull ${DOCKER_USER}/ng-ui:${OSM_DOCKER_TAG}" || FATAL "cannot pull ng-ui docker image"
-        elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NG-UI ; then
-            git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/NG-UI
-            git -C ${LWTEMPDIR}/NG-UI checkout ${COMMIT_ID}
-            sg docker -c "docker build ${LWTEMPDIR}/NG-UI -f ${LWTEMPDIR}/NG-UI/docker/Dockerfile -t ${DOCKER_USER}/ng-ui --no-cache" || FATAL "cannot build NG-UI docker image"
-        fi
+        echo "Pulling OSM docker images"
+        for module in MON POL NBI KEYSTONE RO LCM NG-UI LW-UI PLA osmclient; do
+            module_lower=${module,,}
+            if [ $module == "LW-UI" ]; then
+                if [ -n "$NGUI" ]; then
+                    continue
+                else
+                    module_lower="light-ui"
+                fi
+            fi
+            if [ $module == "NG-UI" -a ! -n "$NGUI" ]; then
+                continue
+            fi
+            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
-        if [ -n "$PULL_IMAGES" ]; then
-            sg docker -c "docker pull ${DOCKER_USER}/light-ui:${OSM_DOCKER_TAG}" || FATAL "cannot pull light-ui docker image"
-        elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q LW-UI ; then
-            git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/LW-UI
-            git -C ${LWTEMPDIR}/LW-UI checkout ${COMMIT_ID}
-            sg docker -c "docker build ${LWTEMPDIR}/LW-UI -f ${LWTEMPDIR}/LW-UI/docker/Dockerfile -t ${DOCKER_USER}/light-ui --no-cache" || FATAL "cannot build LW-UI docker image"
+        _build_from=$COMMIT_ID
+        [ -z "$_build_from" ] && _build_from="latest"
+        echo "OSM Docker images generated from $_build_from"
+
+        for module in MON POL NBI KEYSTONE RO LCM NG-UI LW-UI PLA; do
+            if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q ${module} ; then
+                module_lower=${module,,}
+                if [ $module == "LW-UI" ]; then
+                    if [ -n "$NGUI" ]; then
+                        continue
+                    else
+                        module_lower="light-ui"
+                    fi
+                fi
+                if [ $module == "NG-UI" -a ! -n "$NGUI" ]; then
+                    continue
+                fi
+                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 ."
         fi
-     fi
-
-    if [ -n "$PULL_IMAGES" ]; then
-        sg docker -c "docker pull ${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" || FATAL "cannot pull osmclient docker image"
-    elif [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q LW-osmclient; then
-        sg docker -c "docker build -t ${DOCKER_USER}/osmclient ${BUILD_ARGS[@]} -f $OSM_DEVOPS/docker/osmclient ."
+        echo "Finished generation of docker images"
     fi
 
-    if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then
-        sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image"
-    fi
-
-    echo "Finished generation of docker images"
+    echo "Finished pulling and generating docker images"
 }
 
 function cmp_overwrite() {
@@ -586,6 +645,7 @@
 function generate_k8s_manifest_files() {
     #Kubernetes resources
     $WORKDIR_SUDO cp -bR ${OSM_DEVOPS}/installers/docker/osm_pods $OSM_DOCKER_WORK_DIR
+    $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/mongo.yaml
     if [ -n "$NGUI" ]; then
         $WORKDIR_SUDO rm -f $OSM_K8S_WORK_DIR/light-ui.yaml
     else
@@ -648,15 +708,17 @@
     fi
 
     if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then
-       echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
+        echo "OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
     else
-       $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env
+        $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_CACERT.*|OSMLCM_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/lcm.env
     fi
 
-    if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then
-        echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
-    else
-        $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env
+    if [ -n "$OSM_VCA_APIPROXY" ]; then
+        if ! grep -Fq "OSMLCM_VCA_APIPROXY" $OSM_DOCKER_WORK_DIR/lcm.env; then
+            echo "OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
+        else
+            $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env
+        fi
     fi
 
     if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then
@@ -687,6 +749,9 @@
     if [ ! -f $OSM_DOCKER_WORK_DIR/ro.env ]; then
         echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |$WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/ro.env
     fi
+    if ! grep -Fq "OSMRO_DATABASE_COMMONKEY" $OSM_DOCKER_WORK_DIR/ro.env; then
+        echo "OSMRO_DATABASE_COMMONKEY=${OSM_DATABASE_COMMONKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/ro.env
+    fi
 
     # Keystone
     KEYSTONE_DB_PASSWORD=$(generate_secret)
@@ -731,9 +796,9 @@
     fi
 
     if ! grep -Fq "OSMMON_VCA_CACERT" $OSM_DOCKER_WORK_DIR/mon.env; then
-       echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env
+        echo "OSMMON_VCA_CACERT=${OSM_VCA_CACERT}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/mon.env
     else
-       $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env
+        $WORKDIR_SUDO sed -i "s|OSMMON_VCA_CACERT.*|OSMMON_VCA_CACERT=${OSM_VCA_CACERT}|g" $OSM_DOCKER_WORK_DIR/mon.env
     fi
 
 
@@ -751,7 +816,7 @@
 }
 
 function generate_osmclient_script () {
-    echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm
+    echo "docker run -ti --network net${OSM_STACK_NAME} ${DOCKER_REGISTRY_URL}${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}" | $WORKDIR_SUDO tee $OSM_DOCKER_WORK_DIR/osm
     $WORKDIR_SUDO chmod +x "$OSM_DOCKER_WORK_DIR/osm"
     echo "osmclient sidecar container can be found at: $OSM_DOCKER_WORK_DIR/osm"
 }
@@ -800,6 +865,22 @@
     kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
 }
 
+function install_k8s_metallb() {
+    METALLB_IP_RANGE=$DEFAULT_IP-$DEFAULT_IP
+    cat ${OSM_DEVOPS}/installers/k8s/metallb/metallb.yaml | kubectl apply -f -
+    echo "apiVersion: v1
+kind: ConfigMap
+metadata:
+  namespace: metallb-system
+  name: config
+data:
+  config: |
+    address-pools:
+    - name: default
+      protocol: layer2
+      addresses:
+      - $METALLB_IP_RANGE" | kubectl apply -f -
+}
 #deploys flannel as daemonsets
 function deploy_cni_provider() {
     CNI_DIR="$(mktemp -d -q --tmpdir "flannel.XXXXXX")"
@@ -834,6 +915,18 @@
     kubectl apply -n $OSM_STACK_NAME -f $OSM_K8S_WORK_DIR
 }
 
+#deploy charmed services
+function deploy_charmed_services() {
+    juju add-model $OSM_STACK_NAME $OSM_VCA_K8S_CLOUDNAME
+    # deploy mongodb charm
+    namespace=$OSM_STACK_NAME
+    juju deploy cs:~charmed-osm/mongodb-k8s \
+        --config enable-sidecar=true \
+        --config replica-set=rs0 \
+        --config namespace=$namespace \
+        -m $namespace
+}
+
 function deploy_osm_pla_service() {
     # corresponding to namespace_vol
     $WORKDIR_SUDO  sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml
@@ -879,16 +972,49 @@
 }
 
 function parse_yaml() {
-    osm_services="nbi lcm ro pol mon light-ui ng-ui keystone"
     TAG=$1
-    for osm in $osm_services; do
-        $WORKDIR_SUDO sed -i "s/opensourcemano\/$osm:.*/$DOCKER_USER\/$osm:$TAG/g" $OSM_K8S_WORK_DIR/$osm.yaml
+    shift
+    services=$@
+    for module in $services; do
+        if [ "$module" == "pla" ]; then
+            if [ -n "$INSTALL_PLA" ]; then
+                echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}"
+                $WORKDIR_SUDO sed -i "s#opensourcemano/pla:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/pla:${TAG}#g" ${OSM_DOCKER_WORK_DIR}/osm_pla/pla.yaml
+            fi
+        else
+            echo "Updating K8s manifest file from opensourcemano\/${module}:.* to ${DOCKER_REGISTRY_URL}${DOCKER_USER}\/${module}:${TAG}"
+            $WORKDIR_SUDO sed -i "s#opensourcemano/${module}:.*#${DOCKER_REGISTRY_URL}${DOCKER_USER}/${module}:${TAG}#g" ${OSM_K8S_WORK_DIR}/${module}.yaml
+        fi
     done
-    $WORKDIR_SUDO sed -i "s/opensourcemano\/pla:.*/$DOCKER_USER\/\/pla:$OSM_DOCKER_TAG/g" $OSM_DOCKER_WORK_DIR/osm_pla/pla.yaml
+}
+
+function update_manifest_files() {
+    if [ -n "$NGUI" ]; then
+        osm_services="nbi lcm ro pol mon ng-ui keystone pla"
+    else
+        osm_services="nbi lcm ro pol mon light-ui keystone pla"
+    fi
+    list_of_services=""
+    for module in $osm_services; do
+        module_upper="${module^^}"
+        if [ "$module_upper" == "LIGHT-UI" ]; then
+            module_upper="LW-UI"
+        fi
+        if ! echo $TO_REBUILD | grep -q $module_upper ; then
+            list_of_services="$list_of_services $module"
+        fi
+    done
+    list_of_services_to_rebuild=$(echo ${TO_REBUILD,,} |sed "s/lw-ui/light-ui/g")
+    if [ ! "$OSM_DOCKER_TAG" == "8" ]; then
+        parse_yaml $OSM_DOCKER_TAG $list_of_services
+    fi
+    if [ -n "$MODULE_DOCKER_TAG" ]; then
+        parse_yaml $MODULE_DOCKER_TAG $list_of_services_to_rebuild
+    fi
 }
 
 function namespace_vol() {
-    osm_services="nbi lcm ro pol mon kafka mongo mysql prometheus"
+    osm_services="nbi lcm ro pol mon kafka mysql prometheus"
     for osm in $osm_services; do
         $WORKDIR_SUDO  sed -i "s#path: /var/lib/osm#path: $OSM_NAMESPACE_VOL#g" $OSM_K8S_WORK_DIR/$osm.yaml
     done
@@ -1084,18 +1210,58 @@
 
     track prereqok
 
+    [ -n "$INSTALL_NODOCKER" ] || (install_docker_ce && track docker_ce)
+
+    echo "Creating folders for installation"
+    [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR
+    [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla
+    [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml
+
+    #Installs Kubernetes
+    if [ -n "$KUBERNETES" ]; then
+        install_kube
+        track install_k8s
+        init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml
+        kube_config_dir
+        track init_k8s
+        if [ -n "$INSTALL_K8S_MONITOR" ]; then
+            # uninstall OSM MONITORING
+            uninstall_k8s_monitoring
+            track uninstall_k8s_monitoring
+        fi
+        #remove old namespace
+        remove_k8s_namespace $OSM_STACK_NAME
+        deploy_cni_provider
+        taint_master_node
+        install_k8s_storageclass
+        track k8s_storageclass
+        install_k8s_metallb
+        track k8s_metallb
+    else
+        #install_docker_compose
+        [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm
+        track docker_swarm
+    fi
+
     [ -z "$INSTALL_NOJUJU" ] && install_juju
     track juju_install
 
     if [ -z "$OSM_VCA_HOST" ]; then
         if [ -z "$CONTROLLER_NAME" ]; then
-            if [ -n "$LXD_CLOUD_FILE" ]; then
-                [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external"
-                OSM_VCA_CLOUDNAME="lxd-cloud"
-                juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE
-                juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE
+
+            if [ -n "$KUBERNETES" ]; then
+                juju_createcontroller_k8s
+                juju_addlxd_cloud
+            else
+                if [ -n "$LXD_CLOUD_FILE" ]; then
+                    [ -z "$LXD_CRED_FILE" ] && FATAL "The installer needs the LXD credential yaml if the LXD is external"
+                    OSM_VCA_CLOUDNAME="lxd-cloud"
+                    juju add-cloud $OSM_VCA_CLOUDNAME $LXD_CLOUD_FILE --force || juju update-cloud $OSM_VCA_CLOUDNAME --client -f $LXD_CLOUD_FILE
+                    juju add-credential $OSM_VCA_CLOUDNAME -f $LXD_CRED_FILE || juju update-credential $OSM_VCA_CLOUDNAME lxd-cloud-creds -f $LXD_CRED_FILE
+                fi
+                juju_createcontroller
+                juju_createproxy
             fi
-            juju_createcontroller
         else
             OSM_VCA_CLOUDNAME="lxd-cloud"
             if [ -n "$LXD_CLOUD_FILE" ]; then
@@ -1154,11 +1320,15 @@
         [ -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
-    if [ -z "$OSM_VCA_APIPROXY" ]; then
-        OSM_VCA_APIPROXY=$DEFAULT_IP
-        [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy"
+
+    # Set OSM_VCA_APIPROXY only when it is not a k8s installation
+    if [ -z "$KUBERNETES" ]; then
+        if [ -z "$OSM_VCA_APIPROXY" ]; then
+            OSM_VCA_APIPROXY=$DEFAULT_IP
+            [ -z "$OSM_VCA_APIPROXY" ] && FATAL "Cannot obtain juju api proxy"
+        fi
+        juju_createproxy
     fi
-    juju_createproxy
     track juju
 
     if [ -z "$OSM_DATABASE_COMMONKEY" ]; then
@@ -1166,27 +1336,7 @@
         [ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret"
     fi
 
-    [ -n "$INSTALL_NODOCKER" ] || install_docker_ce
-    track docker_ce
-
-    echo "Creating folders for installation"
-    [ ! -d "$OSM_DOCKER_WORK_DIR" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR
-    [ ! -d "$OSM_DOCKER_WORK_DIR/osm_pla" -a -n "$INSTALL_PLA" ] && $WORKDIR_SUDO mkdir -p $OSM_DOCKER_WORK_DIR/osm_pla
-    [ -n "$KUBERNETES" ] && $WORKDIR_SUDO cp -b $OSM_DEVOPS/installers/docker/cluster-config.yaml $OSM_DOCKER_WORK_DIR/cluster-config.yaml
-
-    #Installs Kubernetes and deploys osm services
-    if [ -n "$KUBERNETES" ]; then
-        install_kube
-        track install_k8s
-        init_kubeadm $OSM_DOCKER_WORK_DIR/cluster-config.yaml
-        kube_config_dir
-        track init_k8s
-    else
-        #install_docker_compose
-        [ -n "$INSTALL_NODOCKER" ] || init_docker_swarm
-        track docker_swarm
-    fi
-
+    # Deploy OSM services
     [ -z "$DOCKER_NOBUILD" ] && generate_docker_images
     track docker_build
 
@@ -1201,18 +1351,10 @@
     track env_files
 
     if [ -n "$KUBERNETES" ]; then
-        if [ -n "$INSTALL_K8S_MONITOR" ]; then
-            # uninstall OSM MONITORING
-            uninstall_k8s_monitoring
-            track uninstall_k8s_monitoring
-        fi
-        #remove old namespace
-        remove_k8s_namespace $OSM_STACK_NAME
-        deploy_cni_provider
+        deploy_charmed_services
         kube_secrets
-        [ ! $OSM_DOCKER_TAG == "8" ] && parse_yaml $OSM_DOCKER_TAG
+        update_manifest_files
         namespace_vol
-        taint_master_node
         deploy_osm_services
         if [ -n "$INSTALL_PLA"]; then
             # optional PLA install
@@ -1220,10 +1362,6 @@
             track deploy_osm_pla
         fi
         track deploy_osm_services_k8s
-        install_k8s_storageclass
-        track k8s_storageclass
-        juju_addk8s
-        track juju_addk8s
         install_helm
         track install_helm
         if [ -n "$INSTALL_K8S_MONITOR" ]; then
@@ -1384,6 +1522,8 @@
     echo "PULL_IMAGES=$PULL_IMAGES"
     echo "KUBERNETES=$KUBERNETES"
     echo "NGUI=$NGUI"
+    echo "DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL"
+    echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL"
     echo "SHOWOPTS=$SHOWOPTS"
     echo "Install from specific refspec (-b): $COMMIT_ID"
 }
@@ -1402,6 +1542,13 @@
     wget -q -O /dev/null $url
 }
 
+function parse_docker_registry_url() {
+    DOCKER_REGISTRY_USER=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[1]}')
+    DOCKER_REGISTRY_PASSWORD=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); split(a[1],b,":"); print b[2]}')
+    DOCKER_REGISTRY_URL=$(echo "$DOCKER_REGISTRY_URL" | awk '{split($1,a,"@"); print a[2]}')
+}
+
+JUJU_AGENT_VERSION=2.8.6
 UNINSTALL=""
 DEVELOP=""
 UPDATE=""
@@ -1412,7 +1559,7 @@
 COMMIT_ID=""
 ASSUME_YES=""
 INSTALL_FROM_SOURCE=""
-RELEASE="ReleaseEIGHT"
+RELEASE="ReleaseNINE"
 REPOSITORY="stable"
 INSTALL_VIMEMU=""
 INSTALL_PLA=""
@@ -1430,7 +1577,7 @@
 INSTALL_NODOCKER=""
 INSTALL_NOJUJU=""
 KUBERNETES=""
-NGUI=""
+NGUI="y"
 INSTALL_K8S_MONITOR=""
 INSTALL_NOHOSTCLIENT=""
 SESSION_ID=`date +%s`
@@ -1466,8 +1613,11 @@
 POD_NETWORK_CIDR=10.244.0.0/16
 K8S_MANIFEST_DIR="/etc/kubernetes/manifests"
 RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
+DOCKER_REGISTRY_URL=
+DOCKER_PROXY_URL=
+MODULE_DOCKER_TAG=
 
-while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:-: hy" o; do
+while getopts ":b:r:c:n:k:u:R:D:o:O:m:N:H:S:s:w:t:U:P:A:l:L:K:d:p:T:-: hy" o; do
     case "${o}" in
         b)
             COMMIT_ID=${OPTARG}
@@ -1478,14 +1628,14 @@
             REPO_ARGS+=(-r "$REPOSITORY")
             ;;
         c)
-            [ "${OPTARG}" == "swarm" ] && continue
+            [ "${OPTARG}" == "swarm" ] && KUBERNETES="" && continue
             [ "${OPTARG}" == "k8s" ] && KUBERNETES="y" && continue
             echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2
             usage && exit 1
             ;;
         n)
-            [ "${OPTARG}" == "lwui" ] && continue
-            [ "${OPTARG}" == "ngui" ] && NGUI="y" && continue
+            [ "${OPTARG}" == "lwui" ] && NGUI="" && continue
+            [ "${OPTARG}" == "ngui" ] && continue
             echo -e "Invalid argument for -n : ' $OPTARG'\n" >&2
             usage && exit 1
             ;;
@@ -1524,11 +1674,14 @@
             ;;
         m)
             [ "${OPTARG}" == "LW-UI" ] && TO_REBUILD="$TO_REBUILD LW-UI" && continue
+            [ "${OPTARG}" == "NG-UI" ] && TO_REBUILD="$TO_REBUILD NG-UI" && continue
             [ "${OPTARG}" == "NBI" ] && TO_REBUILD="$TO_REBUILD NBI" && continue
             [ "${OPTARG}" == "LCM" ] && TO_REBUILD="$TO_REBUILD LCM" && continue
             [ "${OPTARG}" == "RO" ] && TO_REBUILD="$TO_REBUILD RO" && continue
             [ "${OPTARG}" == "MON" ] && TO_REBUILD="$TO_REBUILD MON" && continue
             [ "${OPTARG}" == "POL" ] && TO_REBUILD="$TO_REBUILD POL" && continue
+            [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue
+            [ "${OPTARG}" == "osmclient" ] && TO_REBUILD="$TO_REBUILD osmclient" && continue
             [ "${OPTARG}" == "KAFKA" ] && TO_REBUILD="$TO_REBUILD KAFKA" && continue
             [ "${OPTARG}" == "MONGO" ] && TO_REBUILD="$TO_REBUILD MONGO" && continue
             [ "${OPTARG}" == "PROMETHEUS" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS" && continue
@@ -1536,7 +1689,6 @@
             [ "${OPTARG}" == "KEYSTONE-DB" ] && TO_REBUILD="$TO_REBUILD KEYSTONE-DB" && continue
             [ "${OPTARG}" == "GRAFANA" ] && TO_REBUILD="$TO_REBUILD GRAFANA" && continue
             [ "${OPTARG}" == "NONE" ] && TO_REBUILD="$TO_REBUILD NONE" && continue
-            [ "${OPTARG}" == "PLA" ] && TO_REBUILD="$TO_REBUILD PLA" && continue
             ;;
         H)
             OSM_VCA_HOST="${OPTARG}"
@@ -1574,6 +1726,15 @@
         K)
             CONTROLLER_NAME="${OPTARG}"
             ;;
+        d)
+            DOCKER_REGISTRY_URL="${OPTARG}"
+            ;;
+        p)
+            DOCKER_PROXY_URL="${OPTARG}"
+            ;;
+        T)
+            MODULE_DOCKER_TAG="${OPTARG}"
+            ;;
         -)
             [ "${OPTARG}" == "help" ] && usage && exit 0
             [ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue
@@ -1601,8 +1762,10 @@
             [ "${OPTARG}" == "lxd" ] && continue
             [ "${OPTARG}" == "lxd-cred" ] && continue
             [ "${OPTARG}" == "microstack" ] && continue
+            [ "${OPTARG}" == "vca" ] && continue
             [ "${OPTARG}" == "ha" ] && continue
             [ "${OPTARG}" == "tag" ] && continue
+            [ "${OPTARG}" == "registry" ] && continue
             [ "${OPTARG}" == "pla" ] && INSTALL_PLA="y" && continue
             [ "${OPTARG}" == "volume" ] && OPENSTACK_ATTACH_VOLUME="true" && continue
             echo -e "Invalid option: '--$OPTARG'\n" >&2
@@ -1628,6 +1791,7 @@
     esac
 done
 
+[ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url
 [ -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"
 
diff --git a/installers/install_osm.sh b/installers/install_osm.sh
index ba90e8b..77a696e 100755
--- a/installers/install_osm.sh
+++ b/installers/install_osm.sh
@@ -21,6 +21,8 @@
     echo -e "usage: $0 [OPTIONS]"
     echo -e "Install OSM from binaries or source code (by default, from binaries)"
     echo -e "  OPTIONS"
+    echo -e "     -h / --help:    print this help"
+    echo -e "     -y:             do not prompt for confirmation, assumes yes"
     echo -e "     -r <repo>:      use specified repository name for osm packages"
     echo -e "     -R <release>:   use specified release for osm binaries (deb packages, lxd images, ...)"
     echo -e "     -u <repo base>: use specified repository url for osm packages"
@@ -51,6 +53,8 @@
     echo -e "     -l:             LXD cloud yaml file"
     echo -e "     -L:             LXD credentials yaml file"
     echo -e "     -K:             Specifies the name of the controller to use - The controller must be already bootstrapped"
+    echo -e "     -d <docker registry URL> use docker registry URL instead of dockerhub"
+    echo -e "     -p <docker proxy URL> set docker proxy URL as part of docker CE configuration"
     echo -e "     --nolxd:        do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)"
     echo -e "     --nodocker:     do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)"
     echo -e "     --nojuju:       do not juju, assumes already installed"
@@ -64,8 +68,6 @@
     echo -e "     --k8s_monitor:  install the OSM kubernetes monitoring with prometheus and grafana"
     echo -e "     --volume:       create a VM volume when installing to OpenStack"
     echo -e "     --showopts:     print chosen options and exit (only for debugging)"
-    echo -e "     -y:             do not prompt for confirmation, assumes yes"
-    echo -e "     -h / --help:    print this help"
     echo -e "     --charmed:                   Deploy and operate OSM with Charms on k8s"
     echo -e "     [--bundle <bundle path>]:    Specify with which bundle to deploy OSM with charms (--charmed option)"
     echo -e "     [--k8s <kubeconfig path>]:   Specify with which kubernetes to deploy OSM with charms (--charmed option)"
@@ -74,7 +76,8 @@
     echo -e "     [--lxd-cred <yaml path>]:    Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)"
     echo -e "     [--microstack]:              Installs microstack as a vim. (--charmed option)"
     echo -e "     [--ha]:                      Installs High Availability bundle. (--charmed option)"
-    echo -e "     [--tag]:                     Docker image tag"
+    echo -e "     [--tag]:                     Docker image tag. (--charmed option)"
+    echo -e "     [--registry]:                Docker registry with optional credentials as user:pass@hostname:port (--charmed option)"
 
 }
 
@@ -111,7 +114,7 @@
 fi
 }
 
-while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:-: hy" o; do
+while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:d:p:-: hy" o; do
     case "${o}" in
         r)
             REPOSITORY="${OPTARG}"
diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy
index ff329b9..d8a6171 100644
--- a/jenkins/ci-pipelines/ci_stage_3.groovy
+++ b/jenkins/ci-pipelines/ci_stage_3.groovy
@@ -424,7 +424,7 @@
                         withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'gitlab-registry',
                                         usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
                             sshCommand remote: remote, command: """
-                                ./install_osm.sh -y \
+                                ./install_osm.sh -y -c k8s \
                                     ${repo_base_url} \
                                     ${repo_key_name} \
                                     ${release} -r unstable \
