echo -e " -A <VCA apiproxy> use VCA/juju API proxy"
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 " --pm_stack: additionally deploy a Prometheus+Grafana stack for performance monitoring (PM)"
- echo -e " -m <MODULE>: install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, KEYSTONE-DB, NONE)"
- echo -e " -o <ADDON>: ONLY (un)installs one of the addons (vimemu, elk_stack, pm_stack)"
+ 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, NONE)"
+ echo -e " -o <ADDON>: ONLY (un)installs one of the addons (vimemu, elk_stack)"
echo -e " -D <devops path> use local devops installation path"
echo -e " -w <work dir> Location to store runtime installation"
echo -e " -t <docker tag> specify osm docker tag (default is latest)"
echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules"
echo -e " --source: install OSM from source code using the latest stable tag"
echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch"
- echo -e " --soui: install classic build of OSM (Rel THREE v3.1, based on LXD containers, with SO and UI)"
- echo -e " --lxdimages: (only for Rel THREE with --soui) download lxd images from OSM repository instead of creating them from scratch"
echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano"
echo -e " --k8s_monitor: install the OSM kubernetes moitoring with prometheus and grafana"
- echo -e " -l <lxd_repo>: (only for Rel THREE with --soui) use specified repository url for lxd images"
- echo -e " -p <path>: (only for Rel THREE with --soui) use specified repository path for lxd images"
# echo -e " --reconfigure: reconfigure the modules (DO NOT change NAT rules)"
- echo -e " --nat: (only for Rel THREE with --soui) install only NAT rules"
- echo -e " --noconfigure: (only for Rel THREE with --soui) DO NOT install osmclient, DO NOT install NAT rules, DO NOT configure modules"
# 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"
}
-#Uninstall OSM: remove containers
-function uninstall(){
- echo -e "\nUninstalling OSM"
- if [ $RC_CLONE ] || [ -n "$TEST_INSTALLER" ]; then
- $OSM_DEVOPS/jenkins/host/clean_container RO
- $OSM_DEVOPS/jenkins/host/clean_container VCA
- $OSM_DEVOPS/jenkins/host/clean_container MON
- $OSM_DEVOPS/jenkins/host/clean_container SO
- #$OSM_DEVOPS/jenkins/host/clean_container UI
- else
- lxc stop RO && lxc delete RO
- lxc stop VCA && lxc delete VCA
- lxc stop MON && lxc delete MON
- lxc stop SO-ub && lxc delete SO-ub
- fi
- echo -e "\nDeleting imported lxd images if they exist"
- lxc image show osm-ro &>/dev/null && lxc image delete osm-ro
- lxc image show osm-vca &>/dev/null && lxc image delete osm-vca
- lxc image show osm-soui &>/dev/null && lxc image delete osm-soui
- return 0
-}
-
# takes a juju/accounts.yaml file and returns the password specific
# for a controller. I wrote this using only bash tools to minimize
# additions of other packages
$WORKDIR_SUDO rm -rf ${k8_volume}
else
stack=$1
- volumes="mongo_db mon_db osm_packages ro_db"
+ volumes="mongo_db mon_db osm_packages ro_db pol_db prom_db ro"
for volume in $volumes; do
sg docker -c "docker volume rm ${stack}_${volume}"
done
[ -z "$OSM_VCA_HOST" ] && FATAL "Cannot obtain juju controller IP address"
fi
- if sudo iptables -t nat -C PREROUTING -p tcp -m tcp --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then
- sudo iptables -t nat -D PREROUTING -p tcp -m tcp --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST
+ if [ -z "$DEFAULT_IP" ]; then
+ DEFAULT_IF=`route -n |awk '$1~/^0.0.0.0/ {print $8}'`
+ [ -z "$DEFAULT_IF" ] && FATAL "Not possible to determine the interface with the default route 0.0.0.0"
+ DEFAULT_IP=`ip -o -4 a |grep ${DEFAULT_IF}|awk '{split($4,a,"/"); print a[1]}'`
+ [ -z "$DEFAULT_IP" ] && FATAL "Not possible to determine the IP address of the interface with the default route"
+ fi
+
+ if sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then
+ sudo iptables -t nat -D PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST
sudo netfilter-persistent save
fi
}
else
echo -e "\nUninstalling OSM"
if [ -n "$KUBERNETES" ]; then
- if [ -n "$K8S_MONITOR" ]; then
+ if [ -n "$INSTALL_K8S_MONITOR" ]; then
# uninstall OSM MONITORING
uninstall_k8s_monitoring
fi
return 0
}
+#Safe unattended install of iptables-persistent
+function check_install_iptables_persistent(){
+ echo -e "\nChecking required packages: iptables-persistent"
+ if dpkg -l iptables-persistent &>/dev/null; then
+ echo -e " Not installed.\nInstalling iptables-persistent requires root privileges"
+ echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections
+ echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections
+ sudo apt-get -yq install iptables-persistent
+ fi
+}
+
#Configure NAT rules, based on the current IP addresses of containers
function nat(){
- echo -e "\nChecking required packages: iptables-persistent"
- dpkg -l iptables-persistent &>/dev/null || ! echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" || \
- sudo DEBIAN_FRONTEND=noninteractive apt-get -yq install iptables-persistent
+ check_install_iptables_persistent
+
echo -e "\nConfiguring NAT rules"
echo -e " Required root privileges"
sudo $OSM_DEVOPS/installers/nat_osm
exit 1
}
-#Update RO, SO and UI:
-function update(){
- echo -e "\nUpdating components"
-
- echo -e " Updating RO"
- CONTAINER="RO"
- MDG="RO"
- INSTALL_FOLDER="/opt/openmano"
- echo -e " Fetching the repo"
- lxc exec $CONTAINER -- git -C $INSTALL_FOLDER fetch --all
- BRANCH=""
- BRANCH=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER status -sb | head -n1 | sed -n 's/^## \(.*\).*/\1/p'|awk '{print $1}' |sed 's/\(.*\)\.\.\..*/\1/'`
- [ -z "$BRANCH" ] && FATAL "Could not find the current branch in use in the '$MDG'"
- CURRENT=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER status |head -n1`
- CURRENT_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-parse HEAD`
- echo " FROM: $CURRENT ($CURRENT_COMMIT_ID)"
- # COMMIT_ID either was previously set with -b option, or is an empty string
- CHECKOUT_ID=$COMMIT_ID
- [ -z "$CHECKOUT_ID" ] && [ "$BRANCH" == "HEAD" ] && CHECKOUT_ID="tags/$LATEST_STABLE_DEVOPS"
- [ -z "$CHECKOUT_ID" ] && [ "$BRANCH" != "HEAD" ] && CHECKOUT_ID="$BRANCH"
- if [[ $CHECKOUT_ID == "tags/"* ]]; then
- REMOTE_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-list -n 1 $CHECKOUT_ID`
- else
- REMOTE_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-parse origin/$CHECKOUT_ID`
- fi
- echo " TO: $CHECKOUT_ID ($REMOTE_COMMIT_ID)"
- if [ "$CURRENT_COMMIT_ID" == "$REMOTE_COMMIT_ID" ]; then
- echo " Nothing to be done."
- else
- echo " Update required."
- lxc exec $CONTAINER -- service osm-ro stop
- lxc exec $CONTAINER -- git -C /opt/openmano stash
- lxc exec $CONTAINER -- git -C /opt/openmano pull --rebase
- lxc exec $CONTAINER -- git -C /opt/openmano checkout $CHECKOUT_ID
- lxc exec $CONTAINER -- git -C /opt/openmano stash pop
- lxc exec $CONTAINER -- /opt/openmano/database_utils/migrate_mano_db.sh
- lxc exec $CONTAINER -- service osm-ro start
- fi
- echo
-
- echo -e " Updating SO and UI"
- CONTAINER="SO-ub"
- MDG="SO"
- INSTALL_FOLDER="" # To be filled in
- echo -e " Fetching the repo"
- lxc exec $CONTAINER -- git -C $INSTALL_FOLDER fetch --all
- BRANCH=""
- BRANCH=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER status -sb | head -n1 | sed -n 's/^## \(.*\).*/\1/p'|awk '{print $1}' |sed 's/\(.*\)\.\.\..*/\1/'`
- [ -z "$BRANCH" ] && FATAL "Could not find the current branch in use in the '$MDG'"
- CURRENT=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER status |head -n1`
- CURRENT_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-parse HEAD`
- echo " FROM: $CURRENT ($CURRENT_COMMIT_ID)"
- # COMMIT_ID either was previously set with -b option, or is an empty string
- CHECKOUT_ID=$COMMIT_ID
- [ -z "$CHECKOUT_ID" ] && [ "$BRANCH" == "HEAD" ] && CHECKOUT_ID="tags/$LATEST_STABLE_DEVOPS"
- [ -z "$CHECKOUT_ID" ] && [ "$BRANCH" != "HEAD" ] && CHECKOUT_ID="$BRANCH"
- if [[ $CHECKOUT_ID == "tags/"* ]]; then
- REMOTE_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-list -n 1 $CHECKOUT_ID`
- else
- REMOTE_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-parse origin/$CHECKOUT_ID`
- fi
- echo " TO: $CHECKOUT_ID ($REMOTE_COMMIT_ID)"
- if [ "$CURRENT_COMMIT_ID" == "$REMOTE_COMMIT_ID" ]; then
- echo " Nothing to be done."
- else
- echo " Update required."
- # Instructions to be added
- # lxc exec SO-ub -- ...
- fi
- echo
- echo -e "Updating MON Container"
- CONTAINER="MON"
- MDG="MON"
- INSTALL_FOLDER="/root/MON"
- echo -e " Fetching the repo"
- lxc exec $CONTAINER -- git -C $INSTALL_FOLDER fetch --all
- BRANCH=""
- BRANCH=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER status -sb | head -n1 | sed -n 's/^## \(.*\).*/\1/p'|awk '{print $1}' |sed 's/\(.*\)\.\.\..*/\1/'`
- [ -z "$BRANCH" ] && FATAL "Could not find the current branch in use in the '$MDG'"
- CURRENT=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER status |head -n1`
- CURRENT_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-parse HEAD`
- echo " FROM: $CURRENT ($CURRENT_COMMIT_ID)"
- # COMMIT_ID either was previously set with -b option, or is an empty string
- CHECKOUT_ID=$COMMIT_ID
- [ -z "$CHECKOUT_ID" ] && [ "$BRANCH" == "HEAD" ] && CHECKOUT_ID="tags/$LATEST_STABLE_DEVOPS"
- [ -z "$CHECKOUT_ID" ] && [ "$BRANCH" != "HEAD" ] && CHECKOUT_ID="$BRANCH"
- if [[ $CHECKOUT_ID == "tags/"* ]]; then
- REMOTE_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-list -n 1 $CHECKOUT_ID`
- else
- REMOTE_COMMIT_ID=`lxc exec $CONTAINER -- git -C $INSTALL_FOLDER rev-parse origin/$CHECKOUT_ID`
- fi
- echo " TO: $CHECKOUT_ID ($REMOTE_COMMIT_ID)"
- if [ "$CURRENT_COMMIT_ID" == "$REMOTE_COMMIT_ID" ]; then
- echo " Nothing to be done."
- else
- echo " Update required."
- fi
- echo
-}
-
-function so_is_up() {
- if [ -n "$1" ]; then
- SO_IP=$1
- else
- SO_IP=`lxc list SO-ub -c 4|grep eth0 |awk '{print $2}'`
- fi
- time=0
- step=5
- timelength=300
- while [ $time -le $timelength ]
- do
- if [[ `curl -k -X GET https://$SO_IP:8008/api/operational/vcs/info \
- -H 'accept: application/vnd.yang.data+json' \
- -H 'authorization: Basic YWRtaW46YWRtaW4=' \
- -H 'cache-control: no-cache' 2> /dev/null | jq '.[].components.component_info[] | select(.component_name=="RW.Restconf")' 2>/dev/null | grep "RUNNING" | wc -l` -eq 1 ]]
- then
- echo "RW.Restconf running....SO is up"
- return 0
- fi
-
- sleep $step
- echo -n "."
- time=$((time+step))
- done
-
- FATAL "OSM Failed to startup. SO failed to startup"
-}
-
-function vca_is_up() {
- if [[ `lxc exec VCA -- juju status | grep "osm" | wc -l` -eq 1 ]]; then
- echo "VCA is up and running"
- return 0
- fi
-
- FATAL "OSM Failed to startup. VCA failed to startup"
-}
-
-function mon_is_up() {
- if [[ `curl http://$RO_IP:9090/openmano/ | grep "works" | wc -l` -eq 1 ]]; then
- echo "MON is up and running"
- return 0
- fi
-
- FATAL "OSM Failed to startup. MON failed to startup"
-}
-
-function ro_is_up() {
- if [ -n "$1" ]; then
- RO_IP=$1
- else
- RO_IP=`lxc list RO -c 4|grep eth0 |awk '{print $2}'`
- fi
- time=0
- step=2
- timelength=20
- while [ $time -le $timelength ]; do
- if [[ `curl http://$RO_IP:9090/openmano/ | grep "works" | wc -l` -eq 1 ]]; then
- echo "RO is up and running"
- return 0
- fi
- sleep $step
- echo -n "."
- time=$((time+step))
- done
-
- FATAL "OSM Failed to startup. RO failed to startup"
-}
-
-
-function configure_RO(){
- . $OSM_DEVOPS/installers/export_ips
- echo -e " Configuring RO"
- lxc exec RO -- sed -i -e "s/^\#\?log_socket_host:.*/log_socket_host: $SO_CONTAINER_IP/g" /etc/osm/openmanod.cfg
- lxc exec RO -- service osm-ro restart
-
- ro_is_up
-
- lxc exec RO -- openmano tenant-delete -f osm >/dev/null
- lxc exec RO -- openmano tenant-create osm > /dev/null
- lxc exec RO -- sed -i '/export OPENMANO_TENANT=osm/d' .bashrc
- lxc exec RO -- sed -i '$ i export OPENMANO_TENANT=osm' .bashrc
- lxc exec RO -- sh -c 'echo "export OPENMANO_TENANT=osm" >> .bashrc'
-}
-
-function configure_VCA(){
- echo -e " Configuring VCA"
- JUJU_PASSWD=$(generate_secret)
- echo -e "$JUJU_PASSWD\n$JUJU_PASSWD" | lxc exec VCA -- juju change-user-password
-}
-
-function configure_SOUI(){
- . $OSM_DEVOPS/installers/export_ips
- JUJU_CONTROLLER_IP=`lxc exec VCA -- lxc list -c 4 |grep eth0 |awk '{print $2}'`
- RO_TENANT_ID=`lxc exec RO -- openmano tenant-list osm |awk '{print $1}'`
-
- echo -e " Configuring MON"
- #Information to be added about SO socket for logging
-
- echo -e " Configuring SO"
- sudo route add -host $JUJU_CONTROLLER_IP gw $VCA_CONTAINER_IP
- sudo ip route add 10.44.127.0/24 via $VCA_CONTAINER_IP
- sudo sed -i "$ i route add -host $JUJU_CONTROLLER_IP gw $VCA_CONTAINER_IP" /etc/rc.local
- sudo sed -i "$ i ip route add 10.44.127.0/24 via $VCA_CONTAINER_IP" /etc/rc.local
- # make journaling persistent
- lxc exec SO-ub -- mkdir -p /var/log/journal
- lxc exec SO-ub -- systemd-tmpfiles --create --prefix /var/log/journal
- lxc exec SO-ub -- systemctl restart systemd-journald
-
- echo RIFT_EXTERNAL_ADDRESS=$DEFAULT_IP | lxc exec SO-ub -- tee -a /usr/rift/etc/default/launchpad
-
- lxc exec SO-ub -- systemctl restart launchpad
-
- so_is_up $SO_CONTAINER_IP
-
- #delete existing config agent (could be there on reconfigure)
- curl -k --request DELETE \
- --url https://$SO_CONTAINER_IP:8008/api/config/config-agent/account/osmjuju \
- --header 'accept: application/vnd.yang.data+json' \
- --header 'authorization: Basic YWRtaW46YWRtaW4=' \
- --header 'cache-control: no-cache' \
- --header 'content-type: application/vnd.yang.data+json' &> /dev/null
-
- result=$(curl -k --request POST \
- --url https://$SO_CONTAINER_IP:8008/api/config/config-agent \
- --header 'accept: application/vnd.yang.data+json' \
- --header 'authorization: Basic YWRtaW46YWRtaW4=' \
- --header 'cache-control: no-cache' \
- --header 'content-type: application/vnd.yang.data+json' \
- --data '{"account": [ { "name": "osmjuju", "account-type": "juju", "juju": { "ip-address": "'$JUJU_CONTROLLER_IP'", "port": "17070", "user": "admin", "secret": "'$JUJU_PASSWD'" } } ]}')
- [[ $result =~ .*success.* ]] || FATAL "Failed config-agent configuration: $result"
-
- #R1/R2 config line
- #result=$(curl -k --request PUT \
- # --url https://$SO_CONTAINER_IP:8008/api/config/resource-orchestrator \
- # --header 'accept: application/vnd.yang.data+json' \
- # --header 'authorization: Basic YWRtaW46YWRtaW4=' \
- # --header 'cache-control: no-cache' \
- # --header 'content-type: application/vnd.yang.data+json' \
- # --data '{ "openmano": { "host": "'$RO_CONTAINER_IP'", "port": "9090", "tenant-id": "'$RO_TENANT_ID'" }, "name": "osmopenmano", "account-type": "openmano" }')
-
- result=$(curl -k --request PUT \
- --url https://$SO_CONTAINER_IP:8008/api/config/project/default/ro-account/account \
- --header 'accept: application/vnd.yang.data+json' \
- --header 'authorization: Basic YWRtaW46YWRtaW4=' \
- --header 'cache-control: no-cache' \
- --header 'content-type: application/vnd.yang.data+json' \
- --data '{"rw-ro-account:account": [ { "openmano": { "host": "'$RO_CONTAINER_IP'", "port": "9090", "tenant-id": "'$RO_TENANT_ID'"}, "name": "osmopenmano", "ro-account-type": "openmano" }]}')
- [[ $result =~ .*success.* ]] || FATAL "Failed resource-orchestrator configuration: $result"
-
- result=$(curl -k --request PATCH \
- --url https://$SO_CONTAINER_IP:8008/v2/api/config/openidc-provider-config/rw-ui-client/redirect-uri \
- --header 'accept: application/vnd.yang.data+json' \
- --header 'authorization: Basic YWRtaW46YWRtaW4=' \
- --header 'cache-control: no-cache' \
- --header 'content-type: application/vnd.yang.data+json' \
- --data '{"redirect-uri": "https://'$DEFAULT_IP':8443/callback" }')
- [[ $result =~ .*success.* ]] || FATAL "Failed redirect-uri configuration: $result"
-
- result=$(curl -k --request PATCH \
- --url https://$SO_CONTAINER_IP:8008/v2/api/config/openidc-provider-config/rw-ui-client/post-logout-redirect-uri \
- --header 'accept: application/vnd.yang.data+json' \
- --header 'authorization: Basic YWRtaW46YWRtaW4=' \
- --header 'cache-control: no-cache' \
- --header 'content-type: application/vnd.yang.data+json' \
- --data '{"post-logout-redirect-uri": "https://'$DEFAULT_IP':8443/?api_server=https://'$DEFAULT_IP'" }')
- [[ $result =~ .*success.* ]] || FATAL "Failed post-logout-redirect-uri configuration: $result"
-
- lxc exec SO-ub -- tee /etc/network/interfaces.d/60-rift.cfg <<EOF
-auto lo:1
-iface lo:1 inet static
- address $DEFAULT_IP
- netmask 255.255.255.255
-EOF
- lxc exec SO-ub ifup lo:1
-}
-
-#Configure RO, VCA, and SO with the initial configuration:
-# RO -> tenant:osm, logs to be sent to SO
-# VCA -> juju-password
-# SO -> route to Juju Controller, add RO account, add VCA account
-function configure(){
- #Configure components
- echo -e "\nConfiguring components"
- configure_RO
- configure_VCA
- configure_SOUI
-}
-
function install_lxd() {
sudo apt-get update
sudo apt-get install -y lxd
done
}
-function launch_container_from_lxd(){
- export OSM_MDG=$1
- OSM_load_config
- export OSM_BASE_IMAGE=$2
- if ! container_exists $OSM_BUILD_CONTAINER; then
- CONTAINER_OPTS=""
- [[ "$OSM_BUILD_CONTAINER_PRIVILEGED" == yes ]] && CONTAINER_OPTS="$CONTAINER_OPTS -c security.privileged=true"
- [[ "$OSM_BUILD_CONTAINER_ALLOW_NESTED" == yes ]] && CONTAINER_OPTS="$CONTAINER_OPTS -c security.nesting=true"
- create_container $OSM_BASE_IMAGE $OSM_BUILD_CONTAINER $CONTAINER_OPTS
- wait_container_up $OSM_BUILD_CONTAINER
- fi
-}
-
function install_osmclient(){
CLIENT_RELEASE=${RELEASE#"-R "}
CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg"
sudo apt-get update
sudo 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
+ sudo -H LC_ALL=C python3 -m pip install -U python-magic pyangbind verboselogs
sudo apt-get install -y python3-osm-im python3-osmclient
#sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc
#echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc
return 0
}
-function install_from_lxdimages(){
- LXD_RELEASE=${RELEASE#"-R "}
- if [ -n "$LXD_REPOSITORY_PATH" ]; then
- LXD_IMAGE_DIR="$LXD_REPOSITORY_PATH"
- else
- LXD_IMAGE_DIR="$(mktemp -d -q --tmpdir "osmimages.XXXXXX")"
- trap 'rm -rf "$LXD_IMAGE_DIR"' EXIT
- fi
- echo -e "\nDeleting previous lxd images if they exist"
- lxc image show osm-ro &>/dev/null && lxc image delete osm-ro
- lxc image show osm-vca &>/dev/null && lxc image delete osm-vca
- lxc image show osm-soui &>/dev/null && lxc image delete osm-soui
- echo -e "\nImporting osm-ro"
- [ -z "$LXD_REPOSITORY_PATH" ] && wget -O $LXD_IMAGE_DIR/osm-ro.tar.gz $LXD_REPOSITORY_BASE/$LXD_RELEASE/osm-ro.tar.gz
- lxc image import $LXD_IMAGE_DIR/osm-ro.tar.gz --alias osm-ro
- rm -f $LXD_IMAGE_DIR/osm-ro.tar.gz
- echo -e "\nImporting osm-vca"
- [ -z "$LXD_REPOSITORY_PATH" ] && wget -O $LXD_IMAGE_DIR/osm-vca.tar.gz $LXD_REPOSITORY_BASE/$LXD_RELEASE/osm-vca.tar.gz
- lxc image import $LXD_IMAGE_DIR/osm-vca.tar.gz --alias osm-vca
- rm -f $LXD_IMAGE_DIR/osm-vca.tar.gz
- echo -e "\nImporting osm-soui"
- [ -z "$LXD_REPOSITORY_PATH" ] && wget -O $LXD_IMAGE_DIR/osm-soui.tar.gz $LXD_REPOSITORY_BASE/$LXD_RELEASE/osm-soui.tar.gz
- lxc image import $LXD_IMAGE_DIR/osm-soui.tar.gz --alias osm-soui
- rm -f $LXD_IMAGE_DIR/osm-soui.tar.gz
- launch_container_from_lxd RO osm-ro
- ro_is_up && track RO
- launch_container_from_lxd VCA osm-vca
- vca_is_up && track VCA
- launch_container_from_lxd MON osm-mon
- mon_is_up && track MON
- launch_container_from_lxd SO osm-soui
- #so_is_up && track SOUI
- track SOUI
-}
-
function install_docker_ce() {
# installs and configures Docker CE
echo "Installing Docker CE ..."
function juju_createcontroller() {
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 localhost $OSM_STACK_NAME"
fi
[ $(juju controllers | awk "/^${OSM_STACK_NAME}[\*| ]/{print $1}"|wc -l) -eq 1 ] || FATAL "Juju installation failed"
}
function juju_createproxy() {
- echo -e "\nChecking required packages: iptables-persistent"
- dpkg -l iptables-persistent &>/dev/null || ! echo -e " Not installed.\nInstalling iptables-persistent requires root privileges" || \
- sudo DEBIAN_FRONTEND=noninteractive apt-get -yq install iptables-persistent
+ check_install_iptables_persistent
- if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then
- sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST
+ if ! sudo iptables -t nat -C PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST; then
+ sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d $DEFAULT_IP --dport 17070 -j DNAT --to-destination $OSM_VCA_HOST
sudo netfilter-persistent save
fi
}
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"
- fi
+ 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 ! grep -Fq "OSMLCM_VCA_PUBKEY" $OSM_DOCKER_WORK_DIR/lcm.env; then
- echo "OSMLCM_VCA_PUBKEY=\"${OSM_VCA_PUBKEY}\"" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
+ echo "OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
else
- $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=\"${OSM_VCA_PUBKEY}\"|g" $OSM_DOCKER_WORK_DIR/lcm.env
+ $WORKDIR_SUDO sed -i "s|OSMLCM_VCA_PUBKEY.*|OSMLCM_VCA_PUBKEY=${OSM_VCA_PUBKEY}|g" $OSM_DOCKER_WORK_DIR/lcm.env
fi
if ! grep -Fq "OSMLCM_VCA_CACERT" $OSM_DOCKER_WORK_DIR/lcm.env; then
$WORKDIR_SUDO sed -i "s|OSMLCM_VCA_APIPROXY.*|OSMLCM_VCA_APIPROXY=${OSM_VCA_APIPROXY}|g" $OSM_DOCKER_WORK_DIR/lcm.env
fi
+ if ! grep -Fq "OSMLCM_VCA_ENABLEOSUPGRADE" $OSM_DOCKER_WORK_DIR/lcm.env; then
+ echo "# OSMLCM_VCA_ENABLEOSUPGRADE=false" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
+ fi
+
+ if ! grep -Fq "OSMLCM_VCA_APTMIRROR" $OSM_DOCKER_WORK_DIR/lcm.env; then
+ echo "# OSMLCM_VCA_APTMIRROR=http://archive.ubuntu.com/ubuntu/" | $WORKDIR_SUDO tee -a $OSM_DOCKER_WORK_DIR/lcm.env
+ fi
+
# RO
MYSQL_ROOT_PASSWORD=$(generate_secret)
if [ ! -f $OSM_DOCKER_WORK_DIR/ro-db.env ]; then
OSM_VCA_PUBKEY=$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub)
[ -z "$OSM_VCA_PUBKEY" ] && FATAL "Cannot obtain juju public key"
fi
+ if [ -z "$OSM_VCA_CACERT" ]; then
+ OSM_VCA_CACERT=$(juju controllers --format json | jq -r '.controllers["osm"]["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"
fi
juju_createproxy
+ track juju
- if [ -z "$OSM_VCA_CACERT" ]; then
- OSM_VCA_CACERT=$(juju controllers --format json | jq -r '.controllers["osm"]["ca-cert"]' | base64 | tr -d \\n)
- [ -z "$OSM_VCA_CACERT" ] && FATAL "Cannot obtain juju CA certificate"
- fi
if [ -z "$OSM_DATABASE_COMMONKEY" ]; then
OSM_DATABASE_COMMONKEY=$(generate_secret)
[ -z "OSM_DATABASE_COMMONKEY" ] && FATAL "Cannot generate common db secret"
fi
- track juju
[ -n "$INSTALL_NODOCKER" ] || install_docker_ce
track docker_ce
generate_docker_env_files
if [ -n "$KUBERNETES" ]; then
- if [ -n "$K8S_MONITOR" ]; 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
kube_secrets
- [ ! $OSM_DOCKER_TAG == "latest" ] && parse_yaml $OSM_DOCKER_TAG
+ [ ! $OSM_DOCKER_TAG == "7" ] && parse_yaml $OSM_DOCKER_TAG
namespace_vol
deploy_osm_services
track deploy_osm_services_k8s
+ if [ -n "$INSTALL_K8S_MONITOR" ]; then
+ # install OSM MONITORING
+ install_k8s_monitoring
+ track install_k8s_monitoring
+ fi
else
# remove old stack
remove_stack $OSM_STACK_NAME
generate_osmclient_script
track docker_deploy
install_prometheus_nodeexporter
+ track nodeexporter
[ -n "$INSTALL_VIMEMU" ] && install_vimemu && track vimemu
[ -n "$INSTALL_ELK" ] && deploy_elk && track elk
fi
- if [ -n "$KUBERNETES" ] && [ -n "$K8S_MONITOR" ]; then
- # install OSM MONITORING
- install_k8s_monitoring
- track install_k8s_monitoring
- fi
-
[ -z "$INSTALL_NOHOSTCLIENT" ] && install_osmclient
track osmclient
- wget -q -O- https://osm-download.etsi.org/ftp/osm-6.0-six/README2.txt &> /dev/null
+ wget -q -O- https://osm-download.etsi.org/ftp/osm-7.0-seven/README2.txt &> /dev/null
track end
return 0
}
echo "\nInstalling vim-emu"
EMUTEMPDIR="$(mktemp -d -q --tmpdir "installosmvimemu.XXXXXX")"
trap 'rm -rf "${EMUTEMPDIR}"' EXIT
+ # install prerequisites (OVS is a must for the emulator to work)
+ sudo apt-get install openvswitch-switch
# clone vim-emu repository (attention: branch is currently master only)
echo "Cloning vim-emu repository ..."
git clone https://osm.etsi.org/gerrit/osm/vim-emu.git $EMUTEMPDIR
function install_k8s_monitoring() {
# install OSM monitoring
- chmod +x $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/*.sh
+ $WORKDIR_SUDO chmod +x $OSM_DEVOPS/installers/k8s/*.sh
$WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/install_osm_k8s_monitoring.sh
}
function uninstall_k8s_monitoring() {
- # install OSM monitoring
- chmod +x $WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/*.sh
+ # uninstall OSM monitoring
$WORKDIR_SUDO $OSM_DEVOPS/installers/k8s/uninstall_osm_k8s_monitoring.sh
}
echo "DEVELOP=$DEVELOP"
echo "INSTALL_FROM_SOURCE=$INSTALL_FROM_SOURCE"
echo "UNINSTALL=$UNINSTALL"
- echo "NAT=$NAT"
echo "UPDATE=$UPDATE"
echo "RECONFIGURE=$RECONFIGURE"
echo "TEST_INSTALLER=$TEST_INSTALLER"
echo "INSTALL_VIMEMU=$INSTALL_VIMEMU"
echo "INSTALL_LXD=$INSTALL_LXD"
- echo "INSTALL_FROM_LXDIMAGES=$INSTALL_FROM_LXDIMAGES"
- echo "LXD_REPOSITORY_BASE=$LXD_REPOSITORY_BASE"
- echo "LXD_REPOSITORY_PATH=$LXD_REPOSITORY_PATH"
echo "INSTALL_LIGHTWEIGHT=$INSTALL_LIGHTWEIGHT"
echo "INSTALL_ONLY=$INSTALL_ONLY"
echo "INSTALL_ELK=$INSTALL_ELK"
#echo "INSTALL_PERFMON=$INSTALL_PERFMON"
+ echo "INSTALL_K8S_MONITOR=$INSTALL_K8S_MONITOR"
echo "TO_REBUILD=$TO_REBUILD"
echo "INSTALL_NOLXD=$INSTALL_NOLXD"
echo "INSTALL_NODOCKER=$INSTALL_NODOCKER"
echo "REPOSITORY=$REPOSITORY"
echo "REPOSITORY_BASE=$REPOSITORY_BASE"
echo "REPOSITORY_KEY=$REPOSITORY_KEY"
- echo "NOCONFIGURE=$NOCONFIGURE"
echo "OSM_DEVOPS=$OSM_DEVOPS"
echo "OSM_VCA_HOST=$OSM_VCA_HOST"
echo "OSM_VCA_SECRET=$OSM_VCA_SECRET"
UNINSTALL=""
DEVELOP=""
-NAT=""
UPDATE=""
RECONFIGURE=""
TEST_INSTALLER=""
COMMIT_ID=""
ASSUME_YES=""
INSTALL_FROM_SOURCE=""
-RELEASE="ReleaseSIX"
+RELEASE="ReleaseSEVEN"
REPOSITORY="stable"
INSTALL_VIMEMU=""
-INSTALL_FROM_LXDIMAGES=""
LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd"
LXD_REPOSITORY_PATH=""
INSTALL_LIGHTWEIGHT="y"
INSTALL_ONLY=""
INSTALL_ELK=""
-#INSTALL_PERFMON=""
TO_REBUILD=""
INSTALL_NOLXD=""
INSTALL_NODOCKER=""
INSTALL_NOJUJU=""
KUBERNETES=""
-K8S_MONITOR=""
+INSTALL_K8S_MONITOR=""
INSTALL_NOHOSTCLIENT=""
-NOCONFIGURE=""
-RELEASE_DAILY=""
SESSION_ID=`date +%s`
OSM_DEVOPS=
OSM_VCA_HOST=
K8S_MANIFEST_DIR="/etc/kubernetes/manifests"
RE_CHECK='^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
-while getopts ":hy-:b:r:c:k:u:R:l:p:D:o:m:H:S:s:w:t:U:P:A:" o; do
+while getopts ":b:r:c:k:u:R:D:o:m:H:S:s:w:t:U:P:A:-: hy" o; do
case "${o}" in
- h)
- usage && exit 0
- ;;
b)
COMMIT_ID=${OPTARG}
PULL_IMAGES=""
echo -e "Invalid argument for -i : ' $OPTARG'\n" >&2
usage && exit 1
;;
- R)
- RELEASE="${OPTARG}"
- REPO_ARGS+=(-R "$RELEASE")
- ;;
k)
REPOSITORY_KEY="${OPTARG}"
REPO_ARGS+=(-k "$REPOSITORY_KEY")
REPOSITORY_BASE="${OPTARG}"
REPO_ARGS+=(-u "$REPOSITORY_BASE")
;;
- U)
- DOCKER_USER="${OPTARG}"
- ;;
- l)
- LXD_REPOSITORY_BASE="${OPTARG}"
- ;;
- p)
- LXD_REPOSITORY_PATH="${OPTARG}"
+ R)
+ RELEASE="${OPTARG}"
+ REPO_ARGS+=(-R "$RELEASE")
;;
D)
OSM_DEVOPS="${OPTARG}"
;;
- s)
- OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0
- ;;
- H)
- OSM_VCA_HOST="${OPTARG}"
- ;;
- S)
- OSM_VCA_SECRET="${OPTARG}"
- ;;
- P)
- OSM_VCA_PUBKEY=$(cat ${OPTARG})
- ;;
- A)
- OSM_VCA_APIPROXY="${OPTARG}"
- ;;
- w)
- # when specifying workdir, do not use sudo for access
- WORKDIR_SUDO=
- OSM_WORK_DIR="${OPTARG}"
- ;;
- t)
- OSM_DOCKER_TAG="${OPTARG}"
- ;;
o)
INSTALL_ONLY="y"
[ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue
[ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue
- #[ "${OPTARG}" == "pm_stack" ] && INSTALL_PERFMON="y" && continue
+ [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue
;;
m)
[ "${OPTARG}" == "LW-UI" ] && TO_REBUILD="$TO_REBUILD LW-UI" && 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
+ [ "${OPTARG}" == "PROMETHEUS-CADVISOR" ] && TO_REBUILD="$TO_REBUILD PROMETHEUS-CADVISOR" && continue
[ "${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
;;
+ H)
+ OSM_VCA_HOST="${OPTARG}"
+ ;;
+ S)
+ OSM_VCA_SECRET="${OPTARG}"
+ ;;
+ s)
+ OSM_STACK_NAME="${OPTARG}" && [ -n "$KUBERNETES" ] && [[ ! "${OPTARG}" =~ $RE_CHECK ]] && echo "Namespace $OPTARG is invalid. Regex used for validation is $RE_CHECK" && exit 0
+ ;;
+ w)
+ # when specifying workdir, do not use sudo for access
+ WORKDIR_SUDO=
+ OSM_WORK_DIR="${OPTARG}"
+ ;;
+ t)
+ OSM_DOCKER_TAG="${OPTARG}"
+ ;;
+ U)
+ DOCKER_USER="${OPTARG}"
+ ;;
+ P)
+ OSM_VCA_PUBKEY=$(cat ${OPTARG})
+ ;;
+ A)
+ OSM_VCA_APIPROXY="${OPTARG}"
+ ;;
-)
[ "${OPTARG}" == "help" ] && usage && exit 0
[ "${OPTARG}" == "source" ] && INSTALL_FROM_SOURCE="y" && PULL_IMAGES="" && continue
[ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue
[ "${OPTARG}" == "uninstall" ] && UNINSTALL="y" && continue
- [ "${OPTARG}" == "nat" ] && NAT="y" && continue
[ "${OPTARG}" == "update" ] && UPDATE="y" && continue
[ "${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}" == "lxdimages" ] && INSTALL_FROM_LXDIMAGES="y" && continue
[ "${OPTARG}" == "lightweight" ] && INSTALL_LIGHTWEIGHT="y" && continue
- [ "${OPTARG}" == "soui" ] && INSTALL_LIGHTWEIGHT="" && RELEASE="-R ReleaseTHREE" && REPOSITORY="-r stable" && continue
[ "${OPTARG}" == "vimemu" ] && INSTALL_VIMEMU="y" && continue
[ "${OPTARG}" == "elk_stack" ] && INSTALL_ELK="y" && continue
- #[ "${OPTARG}" == "pm_stack" ] && INSTALL_PERFMON="y" && continue
- [ "${OPTARG}" == "noconfigure" ] && NOCONFIGURE="y" && continue
[ "${OPTARG}" == "showopts" ] && SHOWOPTS="y" && continue
- [ "${OPTARG}" == "daily" ] && RELEASE_DAILY="y" && continue
[ "${OPTARG}" == "nohostports" ] && NO_HOST_PORTS="y" && continue
[ "${OPTARG}" == "nojuju" ] && INSTALL_NOJUJU="y" && continue
[ "${OPTARG}" == "nodockerbuild" ] && DOCKER_NOBUILD="y" && continue
[ "${OPTARG}" == "nohostclient" ] && INSTALL_NOHOSTCLIENT="y" && continue
[ "${OPTARG}" == "pullimages" ] && continue
- [ "${OPTARG}" == "k8s_monitor" ] && K8S_MONITOR="y" && continue
+ [ "${OPTARG}" == "k8s_monitor" ] && INSTALL_K8S_MONITOR="y" && continue
echo -e "Invalid option: '--$OPTARG'\n" >&2
usage && exit 1
;;
+ :)
+ echo "Option -$OPTARG requires an argument" >&2
+ usage && exit 1
+ ;;
\?)
echo -e "Invalid option: '-$OPTARG'\n" >&2
usage && exit 1
;;
+ h)
+ usage && exit 0
+ ;;
y)
ASSUME_YES="y"
;;
esac
done
-[ -n "$INSTALL_FROM_LXDIMAGES" ] && [ -n "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible options: --lxd can only be used with --soui"
-[ -n "$NAT" ] && [ -n "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible options: --nat can only be used with --soui"
-[ -n "$NOCONFIGURE" ] && [ -n "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible options: --noconfigure can only be used with --soui"
-[ -n "$RELEASE_DAILY" ] && [ -n "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible options: --daily can only be used with --soui"
-[ -n "$INSTALL_NOLXD" ] && [ -z "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible option: --nolxd cannot be used with --soui"
-[ -n "$INSTALL_NODOCKER" ] && [ -z "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible option: --nodocker cannot be used with --soui"
-[ -n "$TO_REBUILD" ] && [ -z "$INSTALL_LIGHTWEIGHT" ] && FATAL "Incompatible option: -m cannot be used with --soui"
[ -n "$TO_REBUILD" ] && [ "$TO_REBUILD" != " NONE" ] && echo $TO_REBUILD | grep -q NONE && FATAL "Incompatible option: -m NONE cannot be used with other -m options"
if [ -n "$SHOWOPTS" ]; then
exit 0
fi
-[ -n "$RELEASE_DAILY" ] && echo -e "\nInstalling from daily build repo" && RELEASE="-R ReleaseTHREE-daily" && REPOSITORY="-r testing" && COMMIT_ID="master"
-
# if develop, we force master
[ -z "$COMMIT_ID" ] && [ -n "$DEVELOP" ] && COMMIT_ID="master"
. $OSM_DEVOPS/common/all_funcs
[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0
-[ -n "$UNINSTALL" ] && uninstall && echo -e "\nDONE" && exit 0
-[ -n "$NAT" ] && nat && echo -e "\nDONE" && exit 0
-[ -n "$UPDATE" ] && update && echo -e "\nDONE" && exit 0
-[ -n "$RECONFIGURE" ] && configure && echo -e "\nDONE" && exit 0
[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_ELK" ] && deploy_elk
#[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_PERFMON" ] && deploy_perfmon
[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_VIMEMU" ] && install_vimemu
+[ -n "$INSTALL_ONLY" ] && [ -n "$INSTALL_K8S_MONITOR" ] && install_k8s_monitoring
[ -n "$INSTALL_ONLY" ] && echo -e "\nDONE" && exit 0
#Installation starts here
-wget -q -O- https://osm-download.etsi.org/ftp/osm-6.0-six/README.txt &> /dev/null
+wget -q -O- https://osm-download.etsi.org/ftp/osm-7.0-seven/README.txt &> /dev/null
track start
[ -n "$INSTALL_LIGHTWEIGHT" ] && install_lightweight && echo -e "\nDONE" && exit 0
# use local devops for containers
export OSM_USE_LOCAL_DEVOPS=true
-if [ -n "$INSTALL_FROM_SOURCE" ]; then #install from source
- echo -e "\nCreating the containers and building from source ..."
- $OSM_DEVOPS/jenkins/host/start_build RO --notest checkout $COMMIT_ID || FATAL "RO container build failed (refspec: '$COMMIT_ID')"
- ro_is_up && track RO
- $OSM_DEVOPS/jenkins/host/start_build VCA || FATAL "VCA container build failed"
- vca_is_up && track VCA
- $OSM_DEVOPS/jenkins/host/start_build MON || FATAL "MON install failed"
- mon_is_up && track MON
- $OSM_DEVOPS/jenkins/host/start_build SO checkout $COMMIT_ID || FATAL "SO container build failed (refspec: '$COMMIT_ID')"
- $OSM_DEVOPS/jenkins/host/start_build UI checkout $COMMIT_ID || FATAL "UI container build failed (refspec: '$COMMIT_ID')"
- #so_is_up && track SOUI
- track SOUI
-elif [ -n "$INSTALL_FROM_LXDIMAGES" ]; then #install from LXD images stored in OSM repo
- echo -e "\nInstalling from lxd images ..."
- install_from_lxdimages
-else #install from binaries
- echo -e "\nCreating the containers and installing from binaries ..."
- $OSM_DEVOPS/jenkins/host/install RO ${REPO_ARGS[@]} || FATAL "RO install failed"
- ro_is_up && track RO
- $OSM_DEVOPS/jenkins/host/start_build VCA || FATAL "VCA install failed"
- vca_is_up && track VCA
- $OSM_DEVOPS/jenkins/host/install MON || FATAL "MON build failed"
- mon_is_up && track MON
- $OSM_DEVOPS/jenkins/host/install SO ${REPO_ARGS[@]} || FATAL "SO install failed"
- $OSM_DEVOPS/jenkins/host/install UI ${REPO_ARGS[@]} || FATAL "UI install failed"
- #so_is_up && track SOUI
- track SOUI
-fi
-
-#Install iptables-persistent and configure NAT rules
-[ -z "$NOCONFIGURE" ] && nat
-
-#Configure components
-[ -z "$NOCONFIGURE" ] && configure
#Install osmclient
-[ -z "$NOCONFIGURE" ] && install_osmclient
#Install vim-emu (optional)
[ -n "$INSTALL_VIMEMU" ] && install_docker_ce && install_vimemu
-wget -q -O- https://osm-download.etsi.org/ftp/osm-6.0-six/README2.txt &> /dev/null
+wget -q -O- https://osm-download.etsi.org/ftp/osm-7.0-seven/README2.txt &> /dev/null
track end
echo -e "\nDONE"