- else
- echo -e "\nUninstalling OSM"
- if [ -n "$KUBERNETES" ]; then
- if [ -n "$INSTALL_K8S_MONITOR" ]; then
- # uninstall OSM MONITORING
- uninstall_k8s_monitoring
- fi
- remove_k8s_namespace $OSM_STACK_NAME
- else
-
- remove_stack $OSM_STACK_NAME
- remove_stack osm_elk
- fi
- echo "Now osm docker images and volumes will be deleted"
- newgrp docker << EONG
- docker image rm ${DOCKER_USER}/ro:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/lcm:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/light-ui:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/keystone:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/nbi:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/mon:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/pol:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/pla:${OSM_DOCKER_TAG}
- docker image rm ${DOCKER_USER}/osmclient:${OSM_DOCKER_TAG}
-EONG
-
- if [ -n "$NGUI" ]; then
- newgrp docker << EONG
- docker image rm ${DOCKER_USER}/ng-ui:${OSM_DOCKER_TAG}
-EONG
- else
- newgrp docker << EONG
- docker image rm ${DOCKER_USER}/light-ui:${OSM_DOCKER_TAG}
-EONG
- fi
-
- if [ -n "$KUBERNETES" ]; then
- OSM_NAMESPACE_VOL="${OSM_HOST_VOL}/${OSM_STACK_NAME}"
- remove_volumes $OSM_NAMESPACE_VOL
- else
- remove_volumes $OSM_STACK_NAME
- remove_network $OSM_STACK_NAME
- fi
- [ -z "$CONTROLLER_NAME" ] && remove_iptables $OSM_STACK_NAME
- echo "Removing $OSM_DOCKER_WORK_DIR"
- $WORKDIR_SUDO rm -rf $OSM_DOCKER_WORK_DIR
- [ -z "$CONTROLLER_NAME" ] && sg lxd -c "juju destroy-controller --destroy-all-models --yes $OSM_STACK_NAME"
- fi
- remove_crontab_job
- uninstall_osmclient
- echo "Some docker images will be kept in case they are used by other docker stacks"
- echo "To remove them, just run 'docker image prune' in a terminal"
- 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(){
- check_install_iptables_persistent
-
- echo -e "\nConfiguring NAT rules"
- echo -e " Required root privileges"
- sudo $OSM_DEVOPS/installers/nat_osm
-}
-
-function FATAL(){
- echo "FATAL error: Cannot install OSM due to \"$1\""
- exit 1
-}
-
-function update_juju_images(){
- crontab -l | grep update-juju-lxc-images || (crontab -l 2>/dev/null; echo "0 4 * * 6 $USER ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic") | crontab -
- ${OSM_DEVOPS}/installers/update-juju-lxc-images --xenial --bionic
-}
-
-function install_lxd() {
- # Apply sysctl production values for optimal performance
- sudo cp ${OSM_DEVOPS}/installers/60-lxd-production.conf /etc/sysctl.d/60-lxd-production.conf
- sudo sysctl --system
-
- # Install LXD snap
- sudo apt-get remove --purge -y liblxc1 lxc-common lxcfs lxd lxd-client
- sudo snap install lxd
- sudo apt-get install zfsutils-linux -y
-
- # Configure LXD
- sudo usermod -a -G lxd `whoami`
- cat ${OSM_DEVOPS}/installers/lxd-preseed.conf | sed 's/^config: {}/config:\n core.https_address: '$DEFAULT_IP':8443/' | sg lxd -c "lxd init --preseed"
- sg lxd -c "lxd waitready"
- DEFAULT_INTERFACE=$(ip route list|awk '$1=="default" {print $5; exit}')
- [ -z "$DEFAULT_INTERFACE" ] && DEFAULT_INTERFACE=$(route -n |awk '$1~/^0.0.0.0/ {print $8; exit}')
- DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}')
- sg lxd -c "lxc profile device set default eth0 mtu $DEFAULT_MTU"
- sg lxd -c "lxc network set lxdbr0 bridge.mtu $DEFAULT_MTU"
- #sudo systemctl stop lxd-bridge
- #sudo systemctl --system daemon-reload
- #sudo systemctl enable lxd-bridge
- #sudo systemctl start lxd-bridge