From afb690d362d7698153e670bec13c406393b7255b Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Thu, 13 Jul 2023 15:32:41 +0000
Subject: [PATCH] Deploy scripts:

- Added conditions to skip unneeded steps
---
 deploy/expose_dashboard.sh | 17 ++++++++++++-----
 deploy/tfs.sh              |  7 ++++++-
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/deploy/expose_dashboard.sh b/deploy/expose_dashboard.sh
index 60b41c7b7..65f715cab 100755
--- a/deploy/expose_dashboard.sh
+++ b/deploy/expose_dashboard.sh
@@ -29,11 +29,13 @@ export GRAF_EXT_PORT_HTTP=${GRAF_EXT_PORT_HTTP:-"3000"}
 # Automated steps start here
 ########################################################################################################################
 
+MONITORING_NAMESPACE="monitoring"
+
 function expose_dashboard() {
     echo "Prometheus Port Mapping"
     echo ">>> Expose Prometheus HTTP Mgmt GUI port (9090->${PROM_EXT_PORT_HTTP})"
-    PROM_PORT_HTTP=$(kubectl --namespace monitoring get service prometheus-k8s -o 'jsonpath={.spec.ports[?(@.name=="web")].port}')
-    PATCH='{"data": {"'${PROM_EXT_PORT_HTTP}'": "monitoring/prometheus-k8s:'${PROM_PORT_HTTP}'"}}'
+    PROM_PORT_HTTP=$(kubectl --namespace ${MONITORING_NAMESPACE} get service prometheus-k8s -o 'jsonpath={.spec.ports[?(@.name=="web")].port}')
+    PATCH='{"data": {"'${PROM_EXT_PORT_HTTP}'": "'${MONITORING_NAMESPACE}'/prometheus-k8s:'${PROM_PORT_HTTP}'"}}'
     kubectl patch configmap nginx-ingress-tcp-microk8s-conf --namespace ingress --patch "${PATCH}"
 
     PORT_MAP='{"containerPort": '${PROM_EXT_PORT_HTTP}', "hostPort": '${PROM_EXT_PORT_HTTP}'}'
@@ -44,8 +46,8 @@ function expose_dashboard() {
 
     echo "Grafana Port Mapping"
     echo ">>> Expose Grafana HTTP Mgmt GUI port (3000->${GRAF_EXT_PORT_HTTP})"
-    GRAF_PORT_HTTP=$(kubectl --namespace monitoring get service grafana -o 'jsonpath={.spec.ports[?(@.name=="http")].port}')
-    PATCH='{"data": {"'${GRAF_EXT_PORT_HTTP}'": "monitoring/grafana:'${GRAF_PORT_HTTP}'"}}'
+    GRAF_PORT_HTTP=$(kubectl --namespace ${MONITORING_NAMESPACE} get service grafana -o 'jsonpath={.spec.ports[?(@.name=="http")].port}')
+    PATCH='{"data": {"'${GRAF_EXT_PORT_HTTP}'": "'${MONITORING_NAMESPACE}'/grafana:'${GRAF_PORT_HTTP}'"}}'
     kubectl patch configmap nginx-ingress-tcp-microk8s-conf --namespace ingress --patch "${PATCH}"
 
     PORT_MAP='{"containerPort": '${GRAF_EXT_PORT_HTTP}', "hostPort": '${GRAF_EXT_PORT_HTTP}'}'
@@ -55,4 +57,9 @@ function expose_dashboard() {
     echo
 }
 
-expose_dashboard
+if kubectl get namespace ${MONITORING_NAMESPACE} &> /dev/null; then
+    echo ">>> Namespace ${MONITORING_NAMESPACE} is present, exposing dashboard..."
+    expose_dashboard
+else
+    echo ">>> Namespace ${MONITORING_NAMESPACE} is NOT present, skipping expose dashboard..."
+fi
diff --git a/deploy/tfs.sh b/deploy/tfs.sh
index e6a0c0c10..261996acb 100755
--- a/deploy/tfs.sh
+++ b/deploy/tfs.sh
@@ -327,7 +327,12 @@ echo "Deploying extra manifests..."
 for EXTRA_MANIFEST in $TFS_EXTRA_MANIFESTS; do
     echo "Processing manifest '$EXTRA_MANIFEST'..."
     if [[ "$EXTRA_MANIFEST" == *"servicemonitor"* ]]; then
-        kubectl apply -f $EXTRA_MANIFEST
+        if kubectl get namespace monitoring &> /dev/null; then
+            echo ">>> Namespace monitoring is present, applying service monitors..."
+            kubectl apply -f $EXTRA_MANIFEST
+        else
+            echo ">>> Namespace monitoring is NOT present, skipping service monitors..."
+        fi
     else
         kubectl --namespace $TFS_K8S_NAMESPACE apply -f $EXTRA_MANIFEST
     fi
-- 
GitLab