From c1380caa724f25d7ed69dfcdc1427cdb050dd205 Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Wed, 3 Jan 2024 11:26:51 +0000
Subject: [PATCH] Deploy Scripts:

- Removed wait loops while creating secrets for CockroachDB, NATS, or QuestDB
- Added backward compatible condition as NATS client port changed name from "client" to "nats"
---
 deploy/nats.sh |  4 ++++
 deploy/tfs.sh  | 21 ++++-----------------
 2 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/deploy/nats.sh b/deploy/nats.sh
index b730cec4a..418ef1a6f 100755
--- a/deploy/nats.sh
+++ b/deploy/nats.sh
@@ -81,6 +81,10 @@ function nats_deploy_single() {
     echo "NATS Port Mapping"
     echo ">>> Expose NATS Client port (4222->${NATS_EXT_PORT_CLIENT})"
     NATS_PORT_CLIENT=$(kubectl --namespace ${NATS_NAMESPACE} get service ${NATS_NAMESPACE} -o 'jsonpath={.spec.ports[?(@.name=="client")].port}')
+    if [ -z "$NATS_PORT_CLIENT" ]; then
+        # NATS charts updated and port name changed from "client" to "nats"; fix to support new name and enable backward compatibility
+        NATS_PORT_CLIENT=$(kubectl --namespace ${NATS_NAMESPACE} get service ${NATS_NAMESPACE} -o 'jsonpath={.spec.ports[?(@.name=="nats")].port}')
+    fi
     PATCH='{"data": {"'${NATS_EXT_PORT_CLIENT}'": "'${NATS_NAMESPACE}'/'${NATS_NAMESPACE}':'${NATS_PORT_CLIENT}'"}}'
     kubectl patch configmap nginx-ingress-tcp-microk8s-conf --namespace ingress --patch "${PATCH}"
 
diff --git a/deploy/tfs.sh b/deploy/tfs.sh
index d74097107..f6360eb20 100755
--- a/deploy/tfs.sh
+++ b/deploy/tfs.sh
@@ -137,11 +137,6 @@ printf "\n"
 
 echo "Create secret with CockroachDB data"
 CRDB_SQL_PORT=$(kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}')
-while [ -z "$CRDB_SQL_PORT" ]; do
-    printf "%c" "."
-    sleep 1
-    CRDB_SQL_PORT=$(kubectl --namespace ${CRDB_NAMESPACE} get service cockroachdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}')
-done
 kubectl create secret generic crdb-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \
     --from-literal=CRDB_NAMESPACE=${CRDB_NAMESPACE} \
     --from-literal=CRDB_SQL_PORT=${CRDB_SQL_PORT} \
@@ -153,11 +148,10 @@ printf "\n"
 
 echo "Create secret with NATS data"
 NATS_CLIENT_PORT=$(kubectl --namespace ${NATS_NAMESPACE} get service ${NATS_NAMESPACE} -o 'jsonpath={.spec.ports[?(@.name=="client")].port}')
-while [ -z "$NATS_CLIENT_PORT" ]; do
-    printf "%c" "."
-    sleep 1
-    NATS_CLIENT_PORT=$(kubectl --namespace ${NATS_NAMESPACE} get service ${NATS_NAMESPACE} -o 'jsonpath={.spec.ports[?(@.name=="client")].port}')
-done
+if [ -z "$NATS_CLIENT_PORT" ]; then
+    # NATS charts updated and port name changed from "client" to "nats"; fix to support new name and enable backward compatibility
+    NATS_CLIENT_PORT=$(kubectl --namespace ${NATS_NAMESPACE} get service ${NATS_NAMESPACE} -o 'jsonpath={.spec.ports[?(@.name=="nats")].port}')
+fi
 kubectl create secret generic nats-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \
     --from-literal=NATS_NAMESPACE=${NATS_NAMESPACE} \
     --from-literal=NATS_CLIENT_PORT=${NATS_CLIENT_PORT}
@@ -167,13 +161,6 @@ echo "Create secret with QuestDB data"
 QDB_HTTP_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="http")].port}')
 QDB_ILP_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="ilp")].port}')
 QDB_SQL_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}')
-while [ -z "$QDB_HTTP_PORT" ] || [ -z "$QDB_ILP_PORT" ] || [ -z "$QDB_SQL_PORT" ]; do
-    printf "%c" "."
-    sleep 1
-    QDB_HTTP_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="http")].port}')
-    QDB_ILP_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="ilp")].port}')
-    QDB_SQL_PORT=$(kubectl --namespace ${QDB_NAMESPACE} get service questdb-public -o 'jsonpath={.spec.ports[?(@.name=="sql")].port}')
-done
 METRICSDB_HOSTNAME="questdb-public.${QDB_NAMESPACE}.svc.cluster.local"
 kubectl create secret generic qdb-data --namespace ${TFS_K8S_NAMESPACE} --type='Opaque' \
     --from-literal=QDB_NAMESPACE=${QDB_NAMESPACE} \
-- 
GitLab