From 60186ee1725fab6cf5ae1e1eb9a08463d540ee30 Mon Sep 17 00:00:00 2001
From: Dominik Kaminski <kaminski@univention.de>
Date: Wed, 16 Aug 2023 10:52:35 +0200
Subject: [PATCH] fix(sovereign-workplace-jitsi): Fix patchJVB breaking loop
 and let status field be customized

---
 charts/sovereign-workplace-jitsi/templates/configmap.yaml | 7 ++++++-
 charts/sovereign-workplace-jitsi/values.yaml              | 5 +++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/charts/sovereign-workplace-jitsi/templates/configmap.yaml b/charts/sovereign-workplace-jitsi/templates/configmap.yaml
index 6a039d2..c3091a8 100644
--- a/charts/sovereign-workplace-jitsi/templates/configmap.yaml
+++ b/charts/sovereign-workplace-jitsi/templates/configmap.yaml
@@ -30,7 +30,7 @@ data:
     maxRetries=30
     until [ $counter -gt ${maxRetries} ]; do
     echo "Wait for LoadBalancer IP (${counter}/${maxRetries})"
-    ip=$(kubectl get svc jitsi-jvb -o jsonpath='{.status.loadBalancer.ingress[0].ip}');
+    ip=$(kubectl get svc jitsi-jvb -o jsonpath='{.status.loadBalancer.ingress[0].{{ .Values.patchJVB.configuration.loadbalancerStatusField }}' || true);
     if [ ${ip} ]; then
       break;
     else
@@ -38,6 +38,11 @@ data:
       sleep 5;
     fi
     done
+    if [ $counter -le 0 ]; then
+      echo "Reached retries limit, exiting..."
+      exit 1
+    fi;
+
     echo "Patching JVB to advertise IP: ${ip}"
     kubectl patch cm jitsi-jvb --type json --patch \
       "[{ \"op\": \"add\", \"path\": \"/data/JVB_ADVERTISE_IPS\", \"value\": \"${ip}\" },
diff --git a/charts/sovereign-workplace-jitsi/values.yaml b/charts/sovereign-workplace-jitsi/values.yaml
index 1ce4306..f24dedc 100644
--- a/charts/sovereign-workplace-jitsi/values.yaml
+++ b/charts/sovereign-workplace-jitsi/values.yaml
@@ -92,6 +92,11 @@ patchJVB:
     # your ingress gateway.
     staticLoadbalancerIP: ""
 
+    # -- Relevant for LoadBalancer deployment only.
+    # The IP/DNS of your load-balancer will be fetched from the status entry of service - here you can define which
+    # field should be taken.
+    loadbalancerStatusField: "ip"
+
   # Security Context.
   # Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
   containerSecurityContext:
-- 
GitLab