You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
Clojure
42 lines
1.3 KiB
Clojure
(ns dda.c4k-jitsi.core
|
|
(:require
|
|
[clojure.spec.alpha :as s]
|
|
#?(:clj [orchestra.core :refer [defn-spec]]
|
|
:cljs [orchestra.core :refer-macros [defn-spec]])
|
|
[dda.c4k-common.common :as cm]
|
|
[dda.c4k-common.predicate :as cp]
|
|
[dda.c4k-common.monitoring :as mon]
|
|
[dda.c4k-common.yaml :as yaml]
|
|
[dda.c4k-jitsi.jitsi :as jitsi]))
|
|
|
|
(def config-defaults {:issuer "staging"})
|
|
|
|
(s/def ::mon-cfg mon/config?)
|
|
(s/def ::mon-auth mon/auth?)
|
|
|
|
(def config? (s/keys :req-un [::jitsi/fqdn]
|
|
:opt-un [::jitsi/issuer
|
|
::mon-cfg]))
|
|
|
|
(def auth? (s/keys :req-un [::jitsi/jvb-auth-password
|
|
::jitsi/jicofo-auth-password
|
|
::jitsi/jicofo-component-secret]
|
|
:opt-un [::mon-auth]))
|
|
|
|
(defn-spec k8s-objects cp/map-or-seq?
|
|
[config config?
|
|
auth auth?]
|
|
(map yaml/to-string
|
|
(filter
|
|
#(not (nil? %))
|
|
(cm/concat-vec
|
|
[(jitsi/generate-secret-jitsi auth)
|
|
(jitsi/generate-jvb-service)
|
|
(jitsi/generate-web-service)
|
|
(jitsi/generate-etherpad-service)
|
|
(jitsi/generate-deployment config)]
|
|
(jitsi/generate-ingress-web config)
|
|
(jitsi/generate-ingress-etherpad config)
|
|
(when (:contains? config :mon-cfg)
|
|
(mon/generate (:mon-cfg config) (:mon-auth auth)))))))
|