Feature 10593 Air-gapped installation. OSM behind proxy
[osm/devops.git] / installers / install_juju.sh
index c9f0efe..dd9eb3b 100755 (executable)
@@ -55,9 +55,28 @@ function juju_createcontroller_k8s(){
     [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
     cat $HOME/.kube/config | juju add-k8s $OSM_VCA_K8S_CLOUDNAME --client \
     || FATAL "Failed to add K8s endpoint and credential for client in cloud $OSM_VCA_K8S_CLOUDNAME"
+
+    JUJU_BOOTSTRAP_OPTS=""
+    if [ -n "${OSM_BEHIND_PROXY}" ] ; then
+        K8S_SVC_CLUSTER_IP=$(kubectl get svc/kubernetes -o jsonpath='{.spec.clusterIP}')
+        NO_PROXY="${NO_PROXY},${K8S_SVC_CLUSTER_IP},.svc,.cluster.local"
+        mkdir -p /tmp/.osm
+        JUJU_MODEL_CONFIG_FILE=/tmp/.osm/model-config.yaml
+        cat << EOF > $JUJU_MODEL_CONFIG_FILE
+apt-http-proxy: ${HTTP_PROXY}
+apt-https-proxy: ${HTTPS_PROXY}
+juju-http-proxy: ${HTTP_PROXY}
+juju-https-proxy: ${HTTPS_PROXY}
+juju-no-proxy: ${NO_PROXY}
+snap-http-proxy: ${HTTP_PROXY}
+snap-https-proxy: ${HTTPS_PROXY}
+EOF
+        JUJU_BOOTSTRAP_OPTS="--model-default /tmp/.osm/model-config.yaml"
+    fi
     juju bootstrap -v --debug $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME  \
             --config controller-service-type=loadbalancer \
             --agent-version=$JUJU_AGENT_VERSION \
+            ${JUJU_BOOTSTRAP_OPTS} \
     || FATAL "Failed to bootstrap controller $OSM_STACK_NAME in cloud $OSM_VCA_K8S_CLOUDNAME"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
@@ -94,6 +113,19 @@ EOF
     juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS
     sg lxd -c "lxd waitready"
     juju controller-config features=[k8s-operators]
+    if [ -n "${OSM_BEHIND_PROXY}" ] ; then
+        if [ -n "${HTTP_PROXY}" ]; then
+            juju model-default lxd-cloud apt-http-proxy="$HTTP_PROXY"
+            juju model-default lxd-cloud juju-http-proxy="$HTTP_PROXY"
+            juju model-default lxd-cloud snap-http-proxy="$HTTP_PROXY"
+        fi
+        if [ -n "${HTTPS_PROXY}" ]; then
+            juju model-default lxd-cloud apt-https-proxy="$HTTPS_PROXY"
+            juju model-default lxd-cloud juju-https-proxy="$HTTPS_PROXY"
+            juju model-default lxd-cloud snap-https-proxy="$HTTPS_PROXY"
+        fi
+        [ -n "${NO_PROXY}" ] && juju model-default lxd-cloud juju-no-proxy="$NO_PROXY"
+    fi
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }
 
@@ -126,6 +158,7 @@ INSTALL_CACHELXDIMAGES=""
 INSTALL_NOJUJU=""
 JUJU_AGENT_VERSION=2.9.34
 JUJU_VERSION=2.9
+OSM_BEHIND_PROXY=""
 OSM_DEVOPS=
 OSM_STACK_NAME=osm
 OSM_VCA_HOST=
@@ -133,7 +166,7 @@ OSM_VCA_CLOUDNAME="localhost"
 OSM_VCA_K8S_CLOUDNAME="k8scloud"
 RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
 
-while getopts ":D:i:s:H:l:L:K:-: h" o; do
+while getopts ":D:i:s:H:l:L:K:-: hP" o; do
     case "${o}" in
         D)
             OSM_DEVOPS="${OPTARG}"
@@ -156,6 +189,9 @@ while getopts ":D:i:s:H:l:L:K:-: h" o; do
         K)
             CONTROLLER_NAME="${OPTARG}"
             ;;
+        P)
+            OSM_BEHIND_PROXY="y"
+            ;;
         -)
             [ "${OPTARG}" == "help" ] && usage && exit 0
             [ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="--debug" && continue
@@ -186,6 +222,7 @@ source $OSM_DEVOPS/common/track
 
 echo "DEBUG_INSTALL=$DEBUG_INSTALL"
 echo "DEFAULT_IP=$DEFAULT_IP"
+echo "OSM_BEHIND_PROXY=$OSM_BEHIND_PROXY"
 echo "OSM_DEVOPS=$OSM_DEVOPS"
 echo "HOME=$HOME"