Pin PLA image tag to "8"
[osm/devops.git] / installers / charmed_install.sh
index 4d04a91..9211606 100755 (executable)
@@ -19,6 +19,7 @@ JUJU_AGENT_VERSION=2.8.6
 K8S_CLOUD_NAME="k8s-cloud"
 KUBECTL="microk8s.kubectl"
 MICROK8S_VERSION=1.19
+OSMCLIENT_VERSION=9.0
 IMAGES_OVERLAY_FILE=~/.osm/images-overlay.yaml
 PATH=/snap/bin:${PATH}
 
@@ -26,6 +27,7 @@ MODEL_NAME=osm
 
 OSM_BUNDLE=cs:osm-54
 OSM_HA_BUNDLE=cs:osm-ha-40
+TAG=9
 
 function check_arguments(){
     while [ $# -gt 0 ] ; do
@@ -49,13 +51,18 @@ function check_arguments(){
 function install_snaps(){
     if [ ! -v KUBECFG ]; then
         sudo snap install microk8s --classic --channel=${MICROK8S_VERSION}/stable
+        cat /var/snap/microk8s/current/args/kube-apiserver | grep advertise-address || (
+                echo "--advertise-address $DEFAULT_IP" | sudo tee -a /var/snap/microk8s/current/args/kube-apiserver
+                microk8s.stop
+                microk8s.start
+            )
         sudo usermod -a -G microk8s `whoami`
         mkdir -p ~/.kube
         sudo chown -f -R `whoami` ~/.kube
         KUBEGRP="microk8s"
         sg ${KUBEGRP} -c "microk8s status --wait-ready"
         KUBECONFIG=~/.osm/microk8s-config.yaml
-        sg ${KUBEGRP} -c "microk8s config" > ${KUBECONFIG}
+        sg ${KUBEGRP} -c "microk8s config" | tee ${KUBECONFIG}
     else
         KUBECTL="kubectl"
         sudo snap install kubectl --classic
@@ -310,14 +317,14 @@ function create_overlay() {
     sudo snap install jq
     sudo snap install yq
     local HOME=/home/$USER
-    local vca_user=$(cat $HOME/.local/share/juju/accounts.yaml | yq r - controllers.$CONTROLLER_NAME.user)
-    local vca_password=$(cat $HOME/.local/share/juju/accounts.yaml | yq r - controllers.$CONTROLLER_NAME.password)
-    local vca_host=$(cat $HOME/.local/share/juju/controllers.yaml | yq r - controllers.$CONTROLLER_NAME.api-endpoints[0] | cut -d ":" -f 1)
-    local vca_port=$(cat $HOME/.local/share/juju/controllers.yaml | yq r - controllers.$CONTROLLER_NAME.api-endpoints[0] | cut -d ":" -f 2)
+    local vca_user=$(cat $HOME/.local/share/juju/accounts.yaml | yq e .controllers.$CONTROLLER_NAME.user - )
+    local vca_password=$(cat $HOME/.local/share/juju/accounts.yaml | yq e .controllers.$CONTROLLER_NAME.password - )
+    local vca_host=$(cat $HOME/.local/share/juju/controllers.yaml | yq e .controllers.$CONTROLLER_NAME.api-endpoints[0] - | cut -d ":" -f 1)
+    local vca_port=$(cat $HOME/.local/share/juju/controllers.yaml | yq e .controllers.$CONTROLLER_NAME.api-endpoints[0] - | cut -d ":" -f 2)
     local vca_pubkey=\"$(cat $HOME/.local/share/juju/ssh/juju_id_rsa.pub)\"
     local vca_cloud="lxd-cloud"
     # Get the VCA Certificate
-    local vca_cacert=$(cat $HOME/.local/share/juju/controllers.yaml | yq r - controllers.$CONTROLLER_NAME.ca-cert | base64 | tr -d \\n)
+    local vca_cacert=$(cat $HOME/.local/share/juju/controllers.yaml | yq e .controllers.$CONTROLLER_NAME.ca-cert - | base64 | tr -d \\n)
 
     # Calculate the default route of this machine
     local DEFAULT_IF=`ip route list match 0.0.0.0 | awk '{print $5}'`
@@ -385,7 +392,7 @@ applications:
       image: ${REGISTRY_URL}opensourcemano/pol:$TAG ${REGISTRY_CREDENTIALS}
   pla:
     options:
-      image: ${REGISTRY_URL}opensourcemano/pla:$TAG ${REGISTRY_CREDENTIALS}
+      image: ${REGISTRY_URL}opensourcemano/pla:8 ${REGISTRY_CREDENTIALS}
   ng-ui:
     resources:
       image: /tmp/ng_ui_registry.yaml
@@ -396,9 +403,23 @@ EOF
     mv /tmp/images-overlay.yaml $IMAGES_OVERLAY_FILE
 }
 
+function refresh_osmclient_snap() {
+    osmclient_snap_install_refresh refresh
+}
+
+function install_osm_client_snap() {
+    osmclient_snap_install_refresh install
+}
+
+function osmclient_snap_install_refresh() {
+    channel_preference="stable candidate beta edge"
+    for channel in $channel_preference; do
+        echo "Trying to install osmclient from channel $OSMCLIENT_VERSION/$channel"
+        sudo snap $1 osmclient --channel $OSMCLIENT_VERSION/$channel 2> /dev/null && echo osmclient snap installed && break
+    done
+}
 function install_osmclient() {
-    sudo snap install osmclient
-    sudo snap alias osmclient.osm osm
+    snap info osmclient | grep -E ^installed: && refresh_osmclient_snap || install_osm_client_snap
 }
 
 function add_local_k8scluster() {