[ -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 -v --debug $OSM_VCA_K8S_CLOUDNAME $OSM_STACK_NAME \
+
+ 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_NAMESPACE \
--config controller-service-type=loadbalancer \
--agent-version=$JUJU_AGENT_VERSION \
- || FATAL "Failed to bootstrap controller $OSM_STACK_NAME in cloud $OSM_VCA_K8S_CLOUDNAME"
+ ${JUJU_BOOTSTRAP_OPTS} \
+ || FATAL "Failed to bootstrap controller $OSM_NAMESPACE in cloud $OSM_VCA_K8S_CLOUDNAME"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
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
- juju add-credential -c $OSM_STACK_NAME $OSM_VCA_CLOUDNAME -f $LXD_CREDENTIALS
+ juju add-cloud -c $OSM_NAMESPACE $OSM_VCA_CLOUDNAME $LXD_CLOUD --force
+ juju add-credential -c $OSM_NAMESPACE $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
}
DEBUG_INSTALL=""
INSTALL_CACHELXDIMAGES=""
INSTALL_NOJUJU=""
-JUJU_AGENT_VERSION=2.9.29
+JUJU_AGENT_VERSION=2.9.34
JUJU_VERSION=2.9
+OSM_BEHIND_PROXY=""
OSM_DEVOPS=
-OSM_STACK_NAME=osm
+OSM_NAMESPACE=osm
OSM_VCA_HOST=
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}"
DEFAULT_IP="${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
;;
H)
OSM_VCA_HOST="${OPTARG}"
K)
CONTROLLER_NAME="${OPTARG}"
;;
+ P)
+ OSM_BEHIND_PROXY="y"
+ ;;
-)
[ "${OPTARG}" == "help" ] && usage && exit 0
[ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="--debug" && continue
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"
juju add-credential -c $CONTROLLER_NAME $OSM_VCA_CLOUDNAME -f ~/.osm/lxd-credentials.yaml || juju update-credential lxd-cloud -c $CONTROLLER_NAME -f ~/.osm/lxd-credentials.yaml
fi
fi
- [ -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