function usage(){
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
echo -e "usage: $0 [OPTIONS]"
- echo -e "Install OSM from binaries or source code (by default, from binaries)"
+ echo -e "Install OSM"
echo -e " OPTIONS"
echo -e " -h / --help: print this help"
echo -e " -y: do not prompt for confirmation, assumes yes"
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 " -c <kubernetes engine>: use a specific kubernetes engine (options: kubeadm, k3s, microk8s), default is kubeadm"
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"
key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY
curl $key_location | sudo APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient IM"
- sudo apt-get update
- sudo apt-get install -y python3-pip
+ sudo apt-get -y update
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip
sudo -H LC_ALL=C python3 -m pip install -U pip
- sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs
- sudo apt-get install -y python3-osm-im python3-osmclient
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-osm-im python3-osmclient
if [ -f /usr/lib/python3/dist-packages/osm_im/requirements.txt ]; then
python3 -m pip install -r /usr/lib/python3/dist-packages/osm_im/requirements.txt
fi
if [ -f /usr/lib/python3/dist-packages/osmclient/requirements.txt ]; then
- sudo apt-get install -y libcurl4-openssl-dev libssl-dev libmagic1
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y libmagic1
python3 -m pip install -r /usr/lib/python3/dist-packages/osmclient/requirements.txt
fi
[ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'`
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
-function create_k8s_secret_regcred() {
- [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
- echo "Creating K8s secret regcred with the docker registry credentials from $HOME/.docker/config.json"
- kubectl -n osm create secret generic regcred \
- --from-file=.dockerconfigjson=$HOME/.docker/config.json \
- --type=kubernetes.io/dockerconfigjson
- [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
-}
-
-function pull_docker_images() {
- [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
- echo "Pulling docker images"
- if [ -n "${DOCKER_REGISTRY_URL}" ]; then
- docker_login
- create_k8s_secret_registrycreds
- fi
-
- 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"
- fi
-
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS ; then
- sg docker -c "docker pull prom/prometheus:${PROMETHEUS_TAG}" || FATAL "cannot get prometheus docker image"
- fi
-
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q PROMETHEUS-CADVISOR ; then
- sg docker -c "docker pull google/cadvisor:${PROMETHEUS_CADVISOR_TAG}" || FATAL "cannot get prometheus cadvisor docker image"
- fi
-
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q GRAFANA ; then
- sg docker -c "docker pull grafana/grafana:${GRAFANA_TAG}" || FATAL "cannot get grafana docker image"
- sg docker -c "docker pull kiwigrid/k8s-sidecar:${KIWIGRID_K8S_SIDECAR_TAG}" || FATAL "cannot get kiwigrid k8s-sidecar docker image"
- fi
-
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q NBI || echo $TO_REBUILD | grep -q KEYSTONE-DB ; then
- sg docker -c "docker pull mariadb:${KEYSTONEDB_TAG}" || FATAL "cannot get keystone-db docker image"
- fi
-
- if [ -z "$TO_REBUILD" ] || echo $TO_REBUILD | grep -q RO ; then
- sg docker -c "docker pull mysql:5" || FATAL "cannot get mysql docker image"
- fi
-
- list_of_modules="MON NBI KEYSTONE RO LCM NG-UI osmclient"
- if [ -n "$INSTALL_NGSA" ]; then
- list_of_modules="${list_of_modules} Airflow Webhook"
- else
- list_of_modules="${list_of_modules} POL"
- fi
- if [ -n "$INSTALL_PLA" ]; then
- list_of_modules="${list_of_modules} PLA"
- fi
- echo "Pulling OSM docker images for the following modules: ${list_of_modules}"
- for module in ${list_of_modules}; do
- module_lower=${module,,}
- 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"
# Generate helm values to be passed with -f osm-values.yaml
sudo mkdir -p ${OSM_HELM_WORK_DIR}
- sudo bash -c "cat << EOF > ${OSM_HELM_WORK_DIR}/osm-values.yaml
+ if [ -n "${INSTALL_JUJU}" ]; then
+ sudo bash -c "cat << EOF > ${OSM_HELM_WORK_DIR}/osm-values.yaml
vca:
pubkey: \"${OSM_VCA_PUBKEY}\"
EOF"
+ fi
# Generate helm values to be passed with --set
OSM_HELM_OPTS=""
# OSM_HELM_OPTS="${OSM_HELM_OPTS} --set nbi.useOsmSecret=false"
OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.image.repositoryBase=${DOCKER_REGISTRY_URL}${DOCKER_USER}"
OSM_HELM_OPTS="${OSM_HELM_OPTS} --set mysql.dbHostPath=${OSM_NAMESPACE_VOL}"
- OSM_HELM_OPTS="${OSM_HELM_OPTS} --set mon.config.OS_NOTIFIER_URI=http://${OSM_DEFAULT_IP}:8662"
- OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.host=${OSM_VCA_HOST}"
- OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.secret=${OSM_VCA_SECRET}"
- OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.cacert=${OSM_VCA_CACERT}"
+ if [ -n "${INSTALL_JUJU}" ]; then
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.enabled=true"
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.host=${OSM_VCA_HOST}"
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.secret=${OSM_VCA_SECRET}"
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set vca.cacert=${OSM_VCA_CACERT}"
+ fi
[ -n "$OSM_VCA_APIPROXY" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set lcm.config.OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}"
- [ ! "$OSM_DOCKER_TAG" == "13" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.image.tag=${OSM_DOCKER_TAG}"
+ [ ! "$OSM_DOCKER_TAG" == "testing-daily" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.image.tag=${OSM_DOCKER_TAG}"
[ -n "${INSTALL_NGSA}" ] || OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.oldServiceAssurance=true"
+ if [ -n "${OSM_BEHIND_PROXY}" ]; then
+ OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.behindHttpProxy=true"
+ [ -n "${HTTP_PROXY}" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.httpProxy.HTTP_PROXY=${HTTP_PROXY}"
+ [ -n "${HTTPS_PROXY}" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.httpProxy.HTTPS_PROXY=${HTTPS_PROXY}"
+ [ -n "${NO_PROXY}" ] && OSM_HELM_OPTS="${OSM_HELM_OPTS} --set global.httpProxy.NO_PROXY=${NO_PROXY}"
+ fi
- echo "helm -n $OSM_NAMESPACE install $OSM_NAMESPACE $OSM_DEVOPS/installers/helm/osm -f ${OSM_HELM_WORK_DIR}/osm-values.yaml ${OSM_HELM_OPTS}"
- helm -n $OSM_NAMESPACE install $OSM_NAMESPACE $OSM_DEVOPS/installers/helm/osm -f ${OSM_HELM_WORK_DIR}/osm-values.yaml ${OSM_HELM_OPTS}
-
+ if [ -n "${INSTALL_JUJU}" ]; then
+ OSM_HELM_OPTS="-f ${OSM_HELM_WORK_DIR}/osm-values.yaml ${OSM_HELM_OPTS}"
+ fi
+ echo "helm install -n $OSM_NAMESPACE --create-namespace $OSM_NAMESPACE $OSM_DEVOPS/installers/helm/osm ${OSM_HELM_OPTS}"
+ helm install -n $OSM_NAMESPACE --create-namespace $OSM_NAMESPACE $OSM_DEVOPS/installers/helm/osm ${OSM_HELM_OPTS}
# Override existing values.yaml with the final values.yaml used to install OSM
helm -n $OSM_NAMESPACE get values $OSM_NAMESPACE | sudo tee -a ${OSM_HELM_WORK_DIR}/osm-values.yaml
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
function deploy_charmed_services() {
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
juju add-model $OSM_NAMESPACE $OSM_VCA_K8S_CLOUDNAME
- juju deploy ch:mongodb-k8s -m $OSM_NAMESPACE
+ juju deploy ch:mongodb-k8s -m $OSM_NAMESPACE --channel latest/stable
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
+}
+
+#deploy mongodb
+function deploy_mongodb() {
+ [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
+ MONGO_OPTS="-d ${OSM_HELM_WORK_DIR} -D ${OSM_DEVOPS} -t ${OSM_DOCKER_TAG} -U ${DOCKER_USER} ${DEBUG_INSTALL}"
+ [ -n "${DOCKER_REGISTRY_URL}" ] && MONGO_OPTS="${MONGO_OPTS} -r ${DOCKER_REGISTRY_URL}"
+ $OSM_DEVOPS/installers/install_mongodb.sh ${MONGO_OPTS} || \
+ FATAL_TRACK install_osm_mongodb_service "install_mongodb.sh failed"
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
}
trap ctrl_c INT
- # TODO: move this under start
- [ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url
check_osm_behind_proxy
-
check_packages "git wget curl tar snapd"
-
- sudo snap install jq || FATAL "Could not install jq (snap package). Make sure that snap works"
-
+ if [ -n "${INSTALL_JUJU}" ]; then
+ sudo snap install jq || FATAL "Could not install jq (snap package). Make sure that snap works"
+ fi
find_devops_folder
- track start release $RELEASE none none docker_tag $OSM_DOCKER_TAG none none installation_type $OSM_INSTALLATION_TYPE none none
+ track start release $RELEASE none none docker_tag $OSM_DOCKER_TAG none none installation_type $OSM_INSTALLATION_TYPE none none os_info $os_info none none
track checks checkingroot_ok
[ "$USER" == "root" ] && FATAL "You are running the installer as root. The installer is prepared to be executed as a normal user with sudo privileges."
track checks noroot_ok
-
ask_proceed
track checks proceed_ok
echo "Installing OSM"
+ [ -n "$DOCKER_REGISTRY_URL" ] && parse_docker_registry_url
+
echo "Determining IP address of the interface with the default route"
[ -z "$OSM_DEFAULT_IF" ] && OSM_DEFAULT_IF=$(ip route list|awk '$1=="default" {print $5; exit}')
[ -z "$OSM_DEFAULT_IF" ] && OSM_DEFAULT_IF=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}')
# configure apt proxy
[ -n "$APT_PROXY_URL" ] && configure_apt_proxy $APT_PROXY_URL
- # if no host is passed in, we need to install lxd, unless explicilty asked not to
- if [ -z "$OSM_VCA_HOST" ] && [ -z "$INSTALL_NOLXD" ] && [ -z "$LXD_CLOUD_FILE" ]; then
+ # 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"
track prereq prereqok_ok
- if [ ! -n "$INSTALL_NODOCKER" ]; then
+ if [ -n "$INSTALL_DOCKER" ] || [ "${K8S_CLUSTER_ENGINE}" == "kubeadm" ]; then
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"
track docker_ce docker_ce_ok
- echo "Creating folders for installation"
- [ ! -d "$OSM_WORK_DIR" ] && sudo mkdir -p $OSM_WORK_DIR
- sudo cp -b $OSM_DEVOPS/installers/kubeadm-config.yaml $OSM_WORK_DIR/kubeadm-config.yaml
-
- $OSM_DEVOPS/installers/install_kubeadm_cluster.sh -i ${OSM_DEFAULT_IP} -d ${OSM_WORK_DIR} -D ${OSM_DEVOPS} ${DEBUG_INSTALL} || \
- FATAL_TRACK k8scluster "install_kubeadm_cluster.sh failed"
- track k8scluster k8scluster_ok
-
- 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}"
- [ -n "${CONTROLLER_NAME}" ] && JUJU_OPTS="$JUJU_OPTS -K ${CONTROLLER_NAME}"
- [ -n "${OSM_BEHIND_PROXY}" ] && JUJU_OPTS="${JUJU_OPTS} -P"
- $OSM_DEVOPS/installers/install_juju.sh ${JUJU_OPTS} || FATAL_TRACK juju "install_juju.sh failed"
- set_vca_variables
+ if [ "${K8S_CLUSTER_ENGINE}" == "kubeadm" ]; then
+ $OSM_DEVOPS/installers/install_kubeadm_cluster.sh -i ${OSM_DEFAULT_IP} -d ${OSM_WORK_DIR} -D ${OSM_DEVOPS} ${DEBUG_INSTALL} || \
+ FATAL_TRACK k8scluster "install_kubeadm_cluster.sh failed"
+ track k8scluster k8scluster_ok
+ fi
+
+ if [ -n "${INSTALL_JUJU}" ]; then
+ JUJU_OPTS="-D ${OSM_DEVOPS} -s ${OSM_NAMESPACE} -i ${OSM_DEFAULT_IP} ${DEBUG_INSTALL} ${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}"
+ [ -n "${CONTROLLER_NAME}" ] && JUJU_OPTS="$JUJU_OPTS -K ${CONTROLLER_NAME}"
+ [ -n "${OSM_BEHIND_PROXY}" ] && JUJU_OPTS="${JUJU_OPTS} -P"
+ $OSM_DEVOPS/installers/install_juju.sh ${JUJU_OPTS} || FATAL_TRACK juju "install_juju.sh failed"
+ set_vca_variables
+ fi
track juju juju_ok
# Deploy OSM services
- [ -z "$DOCKER_NOBUILD" ] && pull_docker_images
[ -z "$DOCKER_NOBUILD" ] && [ -z "$PULL_IMAGES" ] && generate_docker_images
track docker_images docker_images_ok
- deploy_charmed_services
+ deploy_mongodb
track deploy_osm deploy_mongodb_ok
deploy_osm_services
track deploy_osm deploy_osm_services_k8s_ok
add_local_k8scluster
track final_ops add_local_k8scluster_ok
- arrange_docker_default_network_policy
+ # if lxd is requested, iptables firewall is updated to work with both docker and LXD
+ if [ -n "$INSTALL_LXD" ]; then
+ arrange_docker_default_network_policy
+ fi
- wget -q -O- https://osm-download.etsi.org/ftp/osm-13.0-thirteen/README2.txt &> /dev/null
+ wget -q -O- https://osm-download.etsi.org/ftp/osm-15.0-fifteen/README2.txt &> /dev/null
track end
sudo find /etc/osm
[ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
function dump_vars(){
[ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function
echo "APT_PROXY_URL=$APT_PROXY_URL"
+ echo "K8S_CLUSTER_ENGINE=$K8S_CLUSTER_ENGINE"
echo "DEVELOP=$DEVELOP"
echo "DEBUG_INSTALL=$DEBUG_INSTALL"
echo "DOCKER_NOBUILD=$DOCKER_NOBUILD"
echo "DOCKER_USER=$DOCKER_USER"
echo "INSTALL_CACHELXDIMAGES=$INSTALL_CACHELXDIMAGES"
echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE"
+ echo "INSTALL_JUJU=$INSTALL_JUJU"
echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR"
echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT"
echo "INSTALL_LXD=$INSTALL_LXD"
echo "INSTALL_NGSA=$INSTALL_NGSA"
- echo "INSTALL_NODOCKER=$INSTALL_NODOCKER"
- echo "INSTALL_NOJUJU=$INSTALL_NOJUJU"
- echo "INSTALL_NOLXD=$INSTALL_NOLXD"
+ echo "INSTALL_DOCKER=$INSTALL_DOCKER"
echo "INSTALL_ONLY=$INSTALL_ONLY"
echo "INSTALL_PLA=$INSTALL_PLA"
echo "INSTALL_TO_OPENSTACK=$INSTALL_TO_OPENSTACK"
COMMIT_ID=""
ASSUME_YES=""
APT_PROXY_URL=""
+K8S_CLUSTER_ENGINE="kubeadm"
INSTALL_FROM_SOURCE=""
DEBUG_INSTALL=""
RELEASE="ReleaseTEN"
OPENSTACK_PYTHON_VENV="$HOME/.virtual-envs/osm"
INSTALL_ONLY=""
TO_REBUILD=""
-INSTALL_NOLXD=""
-INSTALL_NODOCKER=""
-INSTALL_NOJUJU=""
+INSTALL_DOCKER="y"
+INSTALL_JUJU=""
INSTALL_NOHOSTCLIENT=""
INSTALL_CACHELXDIMAGES=""
OSM_DEVOPS=
OSM_HELM_WORK_DIR="${OSM_WORK_DIR}/helm"
OSM_HOST_VOL="/var/lib/osm"
OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_NAMESPACE}"
-OSM_DOCKER_TAG=latest
+OSM_DOCKER_TAG="testing-daily"
DOCKER_USER=opensourcemano
PULL_IMAGES="y"
KAFKA_TAG=2.11-1.0.2
MODULE_DOCKER_TAG=
OSM_INSTALLATION_TYPE="Default"
-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; do
+while getopts ":a:b:c: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; do
case "${o}" in
a)
APT_PROXY_URL=${OPTARG}
COMMIT_ID=${OPTARG}
PULL_IMAGES=""
;;
+ c)
+ K8S_CLUSTER_ENGINE=${OPTARG}
+ [ "${K8S_CLUSTER_ENGINE}" == "kubeadm" ] && continue
+ [ "${K8S_CLUSTER_ENGINE}" == "k3s" ] && continue
+ [ "${K8S_CLUSTER_ENGINE}" == "microk8s" ] && continue
+ echo -e "Invalid argument for -c : ' ${K8S_CLUSTER_ENGINE}'\n" >&2
+ usage && exit 1
+ ;;
r)
REPOSITORY="${OPTARG}"
REPO_ARGS+=(-r "$REPOSITORY")
[ "${OPTARG}" == "reconfigure" ] && RECONFIGURE="y" && continue
[ "${OPTARG}" == "test" ] && TEST_INSTALLER="y" && continue
[ "${OPTARG}" == "lxdinstall" ] && INSTALL_LXD="y" && continue
- [ "${OPTARG}" == "nolxd" ] && INSTALL_NOLXD="y" && continue
- [ "${OPTARG}" == "nodocker" ] && INSTALL_NODOCKER="y" && continue
+ [ "${OPTARG}" == "lxd" ] && INSTALL_LXD="y" && continue
+ [ "${OPTARG}" == "nolxd" ] && INSTALL_LXD="" && continue
+ [ "${OPTARG}" == "docker" ] && INSTALL_DOCKER="y" && continue
+ [ "${OPTARG}" == "nodocker" ] && INSTALL_DOCKER="" && continue
[ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue
[ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue
- [ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="--nojuju" && continue
+ [ "${OPTARG}" == "juju" ] && INSTALL_JUJU="y" && continue
+ [ "${OPTARG}" == "nojuju" ] && INSTALL_JUJU="" && continue
[ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue
[ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue
[ "${OPTARG}" == "pullimages" ] && continue
[ "${OPTARG}" == "charmed" ] && CHARMED="y" && OSM_INSTALLATION_TYPE="Charmed" && continue
[ "${OPTARG}" == "bundle" ] && continue
[ "${OPTARG}" == "k8s" ] && continue
- [ "${OPTARG}" == "lxd" ] && continue
[ "${OPTARG}" == "lxd-cred" ] && continue
[ "${OPTARG}" == "microstack" ] && continue
[ "${OPTARG}" == "overlay" ] && continue
exit 0
fi
-# Charmed installation
+# Installation starts here
+
+# Get README and create OSM_TRACK_INSTALLATION_ID
+wget -q -O- https://osm-download.etsi.org/ftp/osm-15.0-fifteen/README.txt &> /dev/null
+export OSM_TRACK_INSTALLATION_ID="$(date +%s)-$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16)"
+
+# Get OS info to be tracked
+os_distro=$(lsb_release -i 2>/dev/null | awk '{print $3}')
+echo $os_distro
+os_release=$(lsb_release -r 2>/dev/null | awk '{print $2}')
+echo $os_release
+os_info="${os_distro}_${os_release}"
+os_info="${os_info// /_}"
+
if [ -n "$CHARMED" ]; then
+ # Charmed installation
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 "$@" || \
FATAL_TRACK charmed_install "charmed_install.sh failed"
- wget -q -O- https://osm-download.etsi.org/ftp/osm-13.0-thirteen/README2.txt &> /dev/null
- track end installation_type $OSM_INSTALLATION_TYPE
+ wget -q -O- https://osm-download.etsi.org/ftp/osm-15.0-fifteen/README2.txt &> /dev/null
echo -e "\nDONE"
exit 0
-fi
-
-# Installation to Openstack
-if [ -n "$INSTALL_TO_OPENSTACK" ]; then
+elif [ -n "$INSTALL_TO_OPENSTACK" ]; then
+ # Installation to Openstack
install_to_openstack $OPENSTACK_OPENRC_FILE_OR_CLOUD $OPENSTACK_PUBLIC_NET_NAME $OPENSTACK_ATTACH_VOLUME
echo -e "\nDONE"
exit 0
+else
+ # Community_installer
+ # Check incompatible options
+ [ -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"
+ # Special cases go first
+ # if develop, we force master
+ [ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master"
+ [ -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
+ # This is where installation starts
+ install_osm
+ echo -e "\nDONE"
+ exit 0
fi
-
-# Community_installer
-
-[ -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"
-# if develop, we force master
-[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master"
-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
-
-#Installation starts here
-wget -q -O- https://osm-download.etsi.org/ftp/osm-13.0-thirteen/README.txt &> /dev/null
-export OSM_TRACK_INSTALLATION_ID="$(date +%s)-$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16)"
-install_osm
-echo -e "\nDONE"
-exit 0