From c5cec0bfd5fa230c608ae97b0e5390831f40fee7 Mon Sep 17 00:00:00 2001
From: Michael Jerger <michael.jerger@meissa-gmbh.de>
Date: Thu, 13 Feb 2025 16:27:30 +0100
Subject: [PATCH] remodel components

---
 .gitignore                               |  1 +
 src/main/cljc/dda/c4k_jitsi/core.cljc    | 43 +++++++++++++-----------
 src/main/cljc/dda/c4k_jitsi/jitsi.cljc   |  8 +++++
 src/main/resources/jitsi/prosody-sa.yaml |  9 +++++
 4 files changed, 41 insertions(+), 20 deletions(-)
 create mode 100644 src/main/resources/jitsi/prosody-sa.yaml

diff --git a/.gitignore b/.gitignore
index 89da7e2..bb41ea4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,3 +28,4 @@ auth.edn
 config.edn
 out.yaml
 .eastwood
+tmp/
diff --git a/src/main/cljc/dda/c4k_jitsi/core.cljc b/src/main/cljc/dda/c4k_jitsi/core.cljc
index 86def86..e5ba9f4 100644
--- a/src/main/cljc/dda/c4k_jitsi/core.cljc
+++ b/src/main/cljc/dda/c4k_jitsi/core.cljc
@@ -10,7 +10,8 @@
    [dda.c4k-jitsi.jitsi :as jitsi]
    [dda.c4k-common.namespace :as ns]))
 
-(def config-defaults {:issuer "staging", :namespace "jitsi"})
+(def config-defaults {:issuer "staging", 
+                      :namespace "jitsi"})
 
 (s/def ::mon-cfg ::mon/mon-cfg)
 (s/def ::mon-auth ::mon/mon-auth)
@@ -26,25 +27,27 @@
 
 (defn-spec config-objects cp/map-or-seq?
   [config config?]
-  (map yaml/to-string
-       (filter
-        #(not (nil? %))
-        (cm/concat-vec
-         (ns/generate config)
-         [(jitsi/generate-jvb-service config)
-          (jitsi/generate-web-service config)
-          (jitsi/generate-etherpad-service config)
-          (jitsi/generate-excalidraw-backend-service config)
-          (jitsi/generate-modelector-service config)
-          (jitsi/generate-deployment config)
-          (jitsi/generate-excalidraw-deployment config)
-          (jitsi/generate-modelector-deployment config)]
-         (jitsi/generate-ingress-web config)
-         (jitsi/generate-ingress-etherpad config)
-         (jitsi/generate-ingress-excalidraw-backend config)
-         (jitsi/generate-ingress-modelector config)
-         (when (:contains? config :mon-cfg)
-           (mon/generate-config))))))
+  (let [resolved-config (merge config-defaults config)]
+    (map yaml/to-string
+         (filter
+          #(not (nil? %))
+          (cm/concat-vec
+           (ns/generate resolved-config)
+           (jitsi/prosody resolved-config)
+          ;;  [(jitsi/generate-jvb-service config)
+          ;;   (jitsi/generate-web-service config)
+          ;;   (jitsi/generate-etherpad-service config)
+          ;;   (jitsi/generate-excalidraw-backend-service config)
+          ;;   (jitsi/generate-modelector-service config)
+          ;;   (jitsi/generate-deployment config)
+          ;;   (jitsi/generate-excalidraw-deployment config)
+          ;;   (jitsi/generate-modelector-deployment config)]
+          ;;  (jitsi/generate-ingress-web config)
+          ;;  (jitsi/generate-ingress-etherpad config)
+          ;;  (jitsi/generate-ingress-excalidraw-backend config)
+          ;;  (jitsi/generate-ingress-modelector config)
+           (when (:contains? resolved-config :mon-cfg)
+             (mon/generate-config)))))))
 
 (defn-spec auth-objects cp/map-or-seq?
   [config config?
diff --git a/src/main/cljc/dda/c4k_jitsi/jitsi.cljc b/src/main/cljc/dda/c4k_jitsi/jitsi.cljc
index 941d675..a0c23f8 100644
--- a/src/main/cljc/dda/c4k_jitsi/jitsi.cljc
+++ b/src/main/cljc/dda/c4k_jitsi/jitsi.cljc
@@ -137,3 +137,11 @@
     (->
      (yaml/load-as-edn "jitsi/modelector-deployment.yaml")
      (cm/replace-all-matching "NAMESPACE" namespace))))
+
+(defn-spec prosody cp/map-or-seq?
+  [config config?]
+  (let [{:keys [fqdn namespace]} config]
+    [(->
+      (yaml/load-as-edn "jitsi/prosody-sa.yaml")
+      (cm/replace-all-matching "NAMESPACE" namespace))]))
+
diff --git a/src/main/resources/jitsi/prosody-sa.yaml b/src/main/resources/jitsi/prosody-sa.yaml
new file mode 100644
index 0000000..d9d3922
--- /dev/null
+++ b/src/main/resources/jitsi/prosody-sa.yaml
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: prosody
+  namespace: NAMESPACE
+  labels:
+    helm.sh/chart: prosody-1.4.1
+    app.kubernetes.io/name: prosody
+    app.kubernetes.io/version: "stable-9646"
\ No newline at end of file