Adding Prometheus Mysqld Exporter Charm
[osm/devops.git] / installers / charmed_install.sh
index 16d6d73..7f05e04 100755 (executable)
@@ -24,6 +24,9 @@ PATH=/snap/bin:${PATH}
 
 MODEL_NAME=osm
 
+OSM_BUNDLE=cs:osm-54
+OSM_HA_BUNDLE=cs:osm-ha-40
+
 function check_arguments(){
     while [ $# -gt 0 ] ; do
         case $1 in
@@ -33,7 +36,7 @@ function check_arguments(){
             --lxd) LXD_CLOUD="$2" ;;
             --lxd-cred) LXD_CREDENTIALS="$2" ;;
             --microstack) MICROSTACK=y ;;
-            --ha) BUNDLE="cs:osm-ha" ;;
+            --ha) BUNDLE=$OSM_HA_BUNDLE ;;
             --tag) TAG="$2" ;;
             --registry) REGISTRY_INFO="$2" ;;
         esac
@@ -51,6 +54,8 @@ function install_snaps(){
         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}
     else
         KUBECTL="kubectl"
         sudo snap install kubectl --classic
@@ -240,7 +245,7 @@ function deploy_charmed_osm(){
     if [ -v BUNDLE ]; then
         juju deploy -m $MODEL_NAME $BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay
     else
-        juju deploy -m $MODEL_NAME cs:osm-53 --overlay ~/.osm/vca-overlay.yaml $images_overlay
+        juju deploy -m $MODEL_NAME $OSM_BUNDLE --overlay ~/.osm/vca-overlay.yaml $images_overlay
     fi
 
     echo "Waiting for deployment to finish..."
@@ -303,18 +308,16 @@ function check_osm_deployed() {
 
 function create_overlay() {
     sudo snap install jq
-    sudo apt install python3-pip -y
-    python3 -m pip install yq
-    PATH=$PATH:$HOME/.local/bin  # make yq command available
+    sudo snap install yq
     local HOME=/home/$USER
-    local vca_user=$(cat $HOME/.local/share/juju/accounts.yaml | yq --arg CONTROLLER_NAME $CONTROLLER_NAME '.controllers[$CONTROLLER_NAME].user')
-    local vca_password=$(cat $HOME/.local/share/juju/accounts.yaml | yq --arg CONTROLLER_NAME $CONTROLLER_NAME '.controllers[$CONTROLLER_NAME].password')
-    local vca_host=$(cat $HOME/.local/share/juju/controllers.yaml | yq --arg CONTROLLER_NAME $CONTROLLER_NAME '.controllers[$CONTROLLER_NAME]["api-endpoints"][0]' --raw-output | cut -d ":" -f 1)
-    local vca_port=$(cat $HOME/.local/share/juju/controllers.yaml | yq --arg CONTROLLER_NAME $CONTROLLER_NAME '.controllers[$CONTROLLER_NAME]["api-endpoints"][0]' --raw-output | 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 --arg CONTROLLER_NAME $CONTROLLER_NAME '.controllers[$CONTROLLER_NAME]["ca-cert"]' --raw-output | 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}'`
@@ -398,6 +401,25 @@ function install_osmclient() {
     sudo snap alias osmclient.osm osm
 }
 
+function add_local_k8scluster() {
+    osm --all-projects vim-create \
+      --name _system-osm-vim \
+      --account_type dummy \
+      --auth_url http://dummy \
+      --user osm --password osm --tenant osm \
+      --description "dummy" \
+      --config '{management_network_name: mgmt}'
+    tmpfile=$(mktemp --tmpdir=${HOME})
+    cp ${KUBECONFIG} ${tmpfile}
+    osm --all-projects k8scluster-add \
+      --creds ${tmpfile} \
+      --vim _system-osm-vim \
+      --k8s-nets '{"net1": null}' \
+      --version '1.19' \
+      --description "OSM Internal Cluster" \
+      _system-osm-k8s
+    rm -f ${tmpfile}
+}
 
 function install_microstack() {
     sudo snap install microstack --classic --beta
@@ -437,11 +459,13 @@ install_snaps
 bootstrap_k8s_lxd
 deploy_charmed_osm
 install_osmclient
+OSM_HOSTNAME=$(juju config nbi site_url | sed "s/http.*\?:\/\///"):443
+add_local_k8scluster
+
 if [ -v MICROSTACK ]; then
     install_microstack
 fi
 
-OSM_HOSTNAME=$(juju config nbi site_url | sed "s/http.*\?:\/\///"):443
 
 echo "Your installation is now complete, follow these steps for configuring the osmclient:"
 echo