Installer files adapted for Release EIGHT and docker tag 8
[osm/devops.git] / installers / install_osm.sh
index 5be2670..3918f3f 100755 (executable)
@@ -13,9 +13,9 @@
 #   limitations under the License.
 #
 REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian
-RELEASE=ReleaseSEVEN-daily
-REPOSITORY=testing
-DOCKER_TAG=releaseseven
+RELEASE=ReleaseEIGHT
+REPOSITORY=stable
+DOCKER_TAG=8
 
 function usage(){
     echo -e "usage: $0 [OPTIONS]"
@@ -30,6 +30,7 @@ function usage(){
     echo -e "                     -b v2.0            (v2.0 branch)"
     echo -e "                     -b tags/v1.1.0     (a specific tag)"
     echo -e "                     ..."
+    echo -e "     -n <ui> install OSM with Next Gen UI. Valid values are <lwui> or <ngui>. If -n is not specified osm will be installed with light-ui. When used with uninstall, osm along with the UI specified will be uninstalled"
     echo -e "     -s <stack name> user defined stack name, default is osm"
     echo -e "     -H <VCA host>   use specific juju host controller IP"
     echo -e "     -S <VCA secret> use VCA/juju secret key"
@@ -38,12 +39,16 @@ function usage(){
     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 "     --pla:          install the PLA module for placement support"
     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 "     -m <MODULE>:    install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, KEYSTONE-DB, PLA, NONE)"
     echo -e "     -o <ADDON>:     ONLY (un)installs one of the addons (vimemu, elk_stack, pm_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 "     -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 "     --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,6 +69,16 @@ function usage(){
     #echo -e "     --clean_volumes To clear all the mounted volumes from docker swarm"
     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)"
+    echo -e "     [--vca <name>]:              Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" 
+    echo -e "     [--lxd <yaml path>]:         Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" 
+    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"
+
 }
 
 add_repo() {
@@ -91,41 +106,16 @@ add_repo() {
   return 1
 }
 
-clean_old_packages() {
+clean_old_repo() {
 dpkg -s 'osm-devops' &> /dev/null
-
 if [ $? -eq 0 ]; then
-
-  # Remove old packages
-  echo "Removing the old OSM packages"
-  sudo apt-get remove -y osm-devops
-  sudo apt-get remove -y osm-imdocs
-  sudo apt-get remove -y python3-osmclient
-  sudo apt-get remove -y python3-osm-im
   # Clean the previous repos that might exist
   sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list
 fi
 }
 
-#TBD
-clean_volumes(){
-  result=`docker stack ls|wc -l`
-  echo "Stack is running ####%%%%% $result"
-  if [ $result -gt 1 ]; then
-    echo "Inside $result > 1"
-        #TBD take user confirmation
-    docker stack ls |awk '{print $1}' |tail -n+2|xargs docker stack rm
-    sleep 3m
-    docker volume ls|awk '/_mon_db|_mongo_db|_osm_packages|_pol_db|_prom_db|_ro|_ro_db/{print $2}' \
-        |xargs -r --no-run-if-empty docker volume rm
-  fi
-}
-
-while getopts ":hr:R:u:t:-:" 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:-: hy" o; do
     case "${o}" in
-        h)
-            usage && exit 0
-            ;;
         r)
             REPOSITORY="${OPTARG}"
             ;;
@@ -136,18 +126,28 @@ while getopts ":hr:R:u:t:-:" o; do
             REPOSITORY_BASE="${OPTARG}"
             ;;
         t)
-            OSM_DOCKER_TAG="${OPTARG}"
+            DOCKER_TAG="${OPTARG}"
             ;;
         -)
             [ "${OPTARG}" == "help" ] && usage && exit 0
-            continue
-           ;;
+            ;;
+        :)
+            echo "Option -$OPTARG requires an argument" >&2
+            usage && exit 1
+            ;;
+        \?)
+            echo -e "Invalid option: '-$OPTARG'\n" >&2
+            usage && exit 1
+            ;;
+        h)
+            usage && exit 0
+            ;;
         *)
             ;;
     esac
 done
 
-clean_old_packages
+clean_old_repo
 add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops"
 sudo DEBIAN_FRONTEND=noninteractive apt-get -q update
 sudo DEBIAN_FRONTEND=noninteractive apt-get install osm-devops