diff --git a/src/main/cljc/dda/c4k_taiga/taiga.cljc b/src/main/cljc/dda/c4k_taiga/taiga.cljc index ba8dfb7..9dd1450 100644 --- a/src/main/cljc/dda/c4k_taiga/taiga.cljc +++ b/src/main/cljc/dda/c4k_taiga/taiga.cljc @@ -1,35 +1,16 @@ (ns dda.c4k-taiga.taiga (:require [clojure.spec.alpha :as s] - #?(:cljs [shadow.resource :as rc]) #?(:clj [orchestra.core :refer [defn-spec]] :cljs [orchestra.core :refer-macros [defn-spec]]) - #?(:clj [clojure.edn :as edn] - :cljs [cljs.reader :as edn]) [dda.c4k-common.yaml :as yaml] - [dda.c4k-common.common :as cm] - [dda.c4k-common.base64 :as b64] - [dda.c4k-common.predicate :as cp] - [dda.c4k-common.monitoring :as mon] - [dda.c4k-common.postgres :as postgres] [dda.c4k-common.ingress :as ing] - [clojure.string :as str] - #?(:cljs [dda.c4k-common.macros :refer-macros [inline-resources]]))) + [dda.c4k-common.base64 :as b64] + [dda.c4k-common.predicate :as p] + [dda.c4k-common.common :as cm] + #?(:cljs [dda.c4k-common.macros :refer-macros [inline-resources]]))) - -(def config-defaults {:issuer "staging" - :storage-class-name "local-path" - :pv-storage-size-gb "5" ;; ToDo: check sensible defaults - :storage-media-size "5" - :storage-static-size "5" - :storage-async-rabbitmq-size "5" - :storage-events-rabbitmq-size "5" - :public-register-enabled "false" - :enable-telemetry "false"}) - -(s/def ::mon-cfg ::mon/mon-cfg) -(s/def ::mon-auth ::mon/mon-auth) -(s/def ::taiga-secret-key cp/bash-env-string?) +(s/def ::taiga-secret-key p/bash-env-string?) (s/def ::mailer-user string?) (s/def ::mailer-pw string?) (s/def ::django-superuser-username string?) @@ -39,9 +20,9 @@ (s/def ::rabbitmq-pw string?) (s/def ::rabbitmq-erlang-cookie string?) -(s/def ::issuer cp/letsencrypt-issuer?) -(s/def ::fqdn cp/fqdn-string?) -(s/def ::public-register-enabled string?) ;; ToDo maybe check for boolean string +(s/def ::issuer p/letsencrypt-issuer?) +(s/def ::fqdn p/fqdn-string?) +(s/def ::public-register-enabled string?) (s/def ::enable-telemetry string?) (s/def ::storage-class-name string?) (s/def ::storage-media-size pos?) @@ -49,37 +30,34 @@ (s/def ::storage-async-rabbitmq-size pos?) (s/def ::storage-events-rabbitmq-size pos?) -(def auth? (s/keys :req-un [::postgres/postgres-db-user - ::postgres/postgres-db-password - ::taiga-secret-key - ::mailer-pw - ::mailer-user - ::django-superuser-email - ::django-superuser-password - ::django-superuser-username - ::rabbitmq-erlang-cookie - ::rabbitmq-pw - ::rabbitmq-user] - :opt-un [::mon-auth])) +(s/def ::auth (s/keys :req-un [::taiga-secret-key + ::mailer-pw + ::mailer-user + ::django-superuser-email + ::django-superuser-password + ::django-superuser-username + ::rabbitmq-erlang-cookie + ::rabbitmq-pw + ::rabbitmq-user] + :opt-un [::mon-auth])) -(def config? (s/keys :req-un [::fqdn] - :opt-un [::issuer - ::storage-class-name - ::storage-media-size - ::storage-static-size - ::storage-async-rabbitmq-size - ::storage-events-rabbitmq-size - ::postgres/pv-storage-size-gb - ::public-register-enabled - ::enable-telemetry - ::mon-cfg])) +(s/def ::config (s/keys :req-un [::fqdn] + :opt-un [::issuer + ::storage-class-name + ::storage-media-size + ::storage-static-size + ::storage-async-rabbitmq-size + ::storage-events-rabbitmq-size + ::public-register-enabled + ::enable-telemetry + ::mon-cfg])) #?(:cljs (defmethod yaml/load-resource :taiga [resource-name] (get (inline-resources "taiga") resource-name))) -(defn-spec generate-ingress-and-cert cp/map-or-seq? - [config config?] +(defn-spec generate-ingress-and-cert p/map-or-seq? + [config ::config] (let [{:keys [fqdn]} config] (ing/generate-ingress-and-cert (merge @@ -88,85 +66,85 @@ :fqdns [fqdn]} config)))) -(defn-spec generate-async-deployment cp/map-or-seq? [] +(defn-spec generate-async-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/async-deployment.yaml")) -(defn-spec generate-async-service cp/map-or-seq? [] +(defn-spec generate-async-service p/map-or-seq? [] (yaml/load-as-edn "taiga/async-service.yaml")) -(defn-spec generate-async-rabbitmq-deployment cp/map-or-seq? [] +(defn-spec generate-async-rabbitmq-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/async-rabbitmq-deployment.yaml")) -(defn-spec generate-events-rabbitmq-service cp/map-or-seq? [] +(defn-spec generate-events-rabbitmq-service p/map-or-seq? [] (yaml/load-as-edn "taiga/events-rabbitmq-service.yaml")) -(defn-spec generate-async-rabbitmq-service cp/map-or-seq? [] +(defn-spec generate-async-rabbitmq-service p/map-or-seq? [] (yaml/load-as-edn "taiga/async-rabbitmq-service.yaml")) -(defn-spec generate-back-deployment cp/map-or-seq? [] +(defn-spec generate-back-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/back-deployment.yaml")) -(defn-spec generate-back-service cp/map-or-seq? [] +(defn-spec generate-back-service p/map-or-seq? [] (yaml/load-as-edn "taiga/back-service.yaml")) -(defn-spec generate-events-rabbitmq-deployment cp/map-or-seq? [] +(defn-spec generate-events-rabbitmq-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/events-rabbitmq-deployment.yaml")) -(defn-spec generate-events-deployment cp/map-or-seq? [] +(defn-spec generate-events-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/events-deployment.yaml")) -(defn-spec generate-events-service cp/map-or-seq? [] +(defn-spec generate-events-service p/map-or-seq? [] (yaml/load-as-edn "taiga/events-service.yaml")) -(defn-spec generate-front-deployment cp/map-or-seq? [] +(defn-spec generate-front-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/front-deployment.yaml")) -(defn-spec generate-front-service cp/map-or-seq? [] +(defn-spec generate-front-service p/map-or-seq? [] (yaml/load-as-edn "taiga/front-service.yaml")) -(defn-spec generate-gateway-configmap cp/map-or-seq? [] +(defn-spec generate-gateway-configmap p/map-or-seq? [] (yaml/load-as-edn "taiga/gateway-configmap.yaml")) -(defn-spec generate-gateway-deployment cp/map-or-seq? [] +(defn-spec generate-gateway-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/gateway-deployment.yaml")) -(defn-spec generate-gateway-service cp/map-or-seq? [] +(defn-spec generate-gateway-service p/map-or-seq? [] (yaml/load-as-edn "taiga/gateway-service.yaml")) -(defn-spec generate-protected-deployment cp/map-or-seq? [] +(defn-spec generate-protected-deployment p/map-or-seq? [] (yaml/load-as-edn "taiga/protected-deployment.yaml")) -(defn-spec generate-protected-service cp/map-or-seq? [] +(defn-spec generate-protected-service p/map-or-seq? [] (yaml/load-as-edn "taiga/protected-service.yaml")) -(defn-spec generate-configmap cp/map-or-seq? - [config config?] - (let [{:keys [fqdn enable-telemetry public-register-enabled]} (merge config-defaults config)] - (-> (yaml/load-as-edn "taiga/configmap.yaml") +(defn-spec generate-configmap p/map-or-seq? + [config ::config] + (let [{:keys [fqdn enable-telemetry public-register-enabled]} config] + (-> (yaml/load-as-edn "taiga/configmap.yaml") (cm/replace-key-value :TAIGA_SITES_DOMAIN fqdn) (cm/replace-key-value :TAIGA_URL (str "https://" fqdn)) (cm/replace-key-value :TAIGA_WEBSOCKETS_URL (str "wss://" fqdn)) (cm/replace-key-value :ENABLE_TELEMETRY enable-telemetry) (cm/replace-key-value :PUBLIC_REGISTER_ENABLED public-register-enabled)))) -(defn-spec generate-pvc-taiga-media-data cp/map-or-seq? - [config config?] - (let [{:keys [storage-class-name storage-media-size]} (merge config-defaults config)] +(defn-spec generate-pvc-taiga-media-data p/map-or-seq? + [config ::config] + (let [{:keys [storage-class-name storage-media-size]} config] (-> (yaml/load-as-edn "taiga/pvc-taiga-media-data.yaml") (assoc-in [:spec :storageClassName] storage-class-name) (assoc-in [:spec :resources :requests :storage] (str storage-media-size "Gi"))))) -(defn-spec generate-pvc-taiga-static-data cp/map-or-seq? - [config config?] - (let [{:keys [storage-class-name storage-static-size]} (merge config-defaults config)] +(defn-spec generate-pvc-taiga-static-data p/map-or-seq? + [config ::config] + (let [{:keys [storage-class-name storage-static-size]} config] (-> (yaml/load-as-edn "taiga/pvc-taiga-static-data.yaml") (assoc-in [:spec :storageClassName] storage-class-name) (assoc-in [:spec :resources :requests :storage] (str storage-static-size "Gi"))))) -(defn-spec generate-secret cp/map-or-seq? - [auth auth?] +(defn-spec generate-secret p/map-or-seq? + [auth ::auth] (let [{:keys [taiga-secret-key mailer-user mailer-pw rabbitmq-user rabbitmq-pw rabbitmq-erlang-cookie @@ -183,18 +161,18 @@ (cm/replace-key-value :DJANGO_SUPERUSER_PASSWORD (b64/encode django-superuser-password)) (cm/replace-key-value :DJANGO_SUPERUSER_EMAIL (b64/encode django-superuser-email))))) -(defn-spec generate-rabbitmq-pvc-async cp/map-or-seq? - [config config?] - (let [{:keys [storage-class-name storage-async-rabbitmq-size]} (merge config-defaults config)] +(defn-spec generate-rabbitmq-pvc-async p/map-or-seq? + [config ::config] + (let [{:keys [storage-class-name storage-async-rabbitmq-size]} config] (-> (yaml/load-as-edn "taiga/rabbitmq-pvc-async.yaml") (assoc-in [:spec :storageClassName] storage-class-name) (assoc-in [:spec :resources :requests :storage] (str storage-async-rabbitmq-size "Gi"))))) -(defn-spec generate-rabbitmq-pvc-events cp/map-or-seq? - [config config?] - (let [{:keys [storage-class-name storage-events-rabbitmq-size]} (merge config-defaults config)] - (-> +(defn-spec generate-rabbitmq-pvc-events p/map-or-seq? + [config ::config] + (let [{:keys [storage-class-name storage-events-rabbitmq-size]} config] + (-> (yaml/load-as-edn "taiga/rabbitmq-pvc-events.yaml") (assoc-in [:spec :storageClassName] storage-class-name) (assoc-in [:spec :resources :requests :storage] (str storage-events-rabbitmq-size "Gi"))))) diff --git a/src/main/resources/taiga/async-deployment.yaml b/src/main/resources/taiga/async-deployment.yaml index 686ed72..cd60e05 100644 --- a/src/main/resources/taiga/async-deployment.yaml +++ b/src/main/resources/taiga/async-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-async-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-async diff --git a/src/main/resources/taiga/async-rabbitmq-deployment.yaml b/src/main/resources/taiga/async-rabbitmq-deployment.yaml index 0fab2e5..67f20c6 100644 --- a/src/main/resources/taiga/async-rabbitmq-deployment.yaml +++ b/src/main/resources/taiga/async-rabbitmq-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-async-rabbitmq-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-async-rabbitmq diff --git a/src/main/resources/taiga/async-rabbitmq-service.yaml b/src/main/resources/taiga/async-rabbitmq-service.yaml index dc8a1e1..ea541dd 100644 --- a/src/main/resources/taiga/async-rabbitmq-service.yaml +++ b/src/main/resources/taiga/async-rabbitmq-service.yaml @@ -2,6 +2,7 @@ kind: Service apiVersion: v1 metadata: name: taiga-async-rabbitmq + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-async-rabbitmq diff --git a/src/main/resources/taiga/async-service.yaml b/src/main/resources/taiga/async-service.yaml index f24f84a..14a9445 100644 --- a/src/main/resources/taiga/async-service.yaml +++ b/src/main/resources/taiga/async-service.yaml @@ -2,6 +2,7 @@ kind: Service apiVersion: v1 metadata: name: taiga-async + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-async diff --git a/src/main/resources/taiga/back-deployment.yaml b/src/main/resources/taiga/back-deployment.yaml index 96b994f..fc5fdf9 100644 --- a/src/main/resources/taiga/back-deployment.yaml +++ b/src/main/resources/taiga/back-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-back-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-back diff --git a/src/main/resources/taiga/back-service.yaml b/src/main/resources/taiga/back-service.yaml index b6f9d75..7004faf 100644 --- a/src/main/resources/taiga/back-service.yaml +++ b/src/main/resources/taiga/back-service.yaml @@ -2,10 +2,10 @@ kind: Service apiVersion: v1 metadata: name: taiga-back + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-back - namespace: default spec: type: ClusterIP selector: diff --git a/src/main/resources/taiga/configmap.yaml b/src/main/resources/taiga/configmap.yaml index 425ac94..03fc1bd 100644 --- a/src/main/resources/taiga/configmap.yaml +++ b/src/main/resources/taiga/configmap.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: taiga-configmap - namespace: default + namespace: taiga data: # These environment variables will be used by taiga-back and taiga-async. # Database settings handled in deployment diff --git a/src/main/resources/taiga/events-deployment.yaml b/src/main/resources/taiga/events-deployment.yaml index 824f2ba..178810f 100644 --- a/src/main/resources/taiga/events-deployment.yaml +++ b/src/main/resources/taiga/events-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-events-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-events diff --git a/src/main/resources/taiga/events-rabbitmq-deployment.yaml b/src/main/resources/taiga/events-rabbitmq-deployment.yaml index bb78f80..3c52d75 100644 --- a/src/main/resources/taiga/events-rabbitmq-deployment.yaml +++ b/src/main/resources/taiga/events-rabbitmq-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-events-rabbitmq-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-events-rabbitmq diff --git a/src/main/resources/taiga/events-rabbitmq-service.yaml b/src/main/resources/taiga/events-rabbitmq-service.yaml index 2f542fc..7acc766 100644 --- a/src/main/resources/taiga/events-rabbitmq-service.yaml +++ b/src/main/resources/taiga/events-rabbitmq-service.yaml @@ -2,6 +2,7 @@ kind: Service apiVersion: v1 metadata: name: taiga-events-rabbitmq + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-events-rabbitmq diff --git a/src/main/resources/taiga/events-service.yaml b/src/main/resources/taiga/events-service.yaml index 4ec0f51..d3b3ab3 100644 --- a/src/main/resources/taiga/events-service.yaml +++ b/src/main/resources/taiga/events-service.yaml @@ -2,10 +2,10 @@ kind: Service apiVersion: v1 metadata: name: taiga-events + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-events - namespace: default spec: type: ClusterIP selector: diff --git a/src/main/resources/taiga/front-deployment.yaml b/src/main/resources/taiga/front-deployment.yaml index 08424d8..56574b6 100644 --- a/src/main/resources/taiga/front-deployment.yaml +++ b/src/main/resources/taiga/front-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-front-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-front diff --git a/src/main/resources/taiga/front-service.yaml b/src/main/resources/taiga/front-service.yaml index d586429..341847c 100644 --- a/src/main/resources/taiga/front-service.yaml +++ b/src/main/resources/taiga/front-service.yaml @@ -2,10 +2,10 @@ kind: Service apiVersion: v1 metadata: name: taiga-front + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-front - namespace: default spec: type: ClusterIP selector: diff --git a/src/main/resources/taiga/gateway-configmap.yaml b/src/main/resources/taiga/gateway-configmap.yaml index 7ae184d..a5b1483 100644 --- a/src/main/resources/taiga/gateway-configmap.yaml +++ b/src/main/resources/taiga/gateway-configmap.yaml @@ -2,6 +2,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: taiga-gateway-configmap + namespace: taiga data: default.conf: | server { diff --git a/src/main/resources/taiga/gateway-deployment.yaml b/src/main/resources/taiga/gateway-deployment.yaml index b6c1beb..c8abe80 100644 --- a/src/main/resources/taiga/gateway-deployment.yaml +++ b/src/main/resources/taiga/gateway-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-gateway-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-gateway diff --git a/src/main/resources/taiga/gateway-service.yaml b/src/main/resources/taiga/gateway-service.yaml index 441dedf..9203edf 100644 --- a/src/main/resources/taiga/gateway-service.yaml +++ b/src/main/resources/taiga/gateway-service.yaml @@ -2,10 +2,10 @@ kind: Service apiVersion: v1 metadata: name: taiga-gateway + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-gateway - namespace: default spec: type: ClusterIP selector: diff --git a/src/main/resources/taiga/protected-deployment.yaml b/src/main/resources/taiga/protected-deployment.yaml index 729de1e..01f78a7 100644 --- a/src/main/resources/taiga/protected-deployment.yaml +++ b/src/main/resources/taiga/protected-deployment.yaml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: taiga-protected-deployment + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-protected diff --git a/src/main/resources/taiga/protected-service.yaml b/src/main/resources/taiga/protected-service.yaml index 6f448ac..3a24d1e 100644 --- a/src/main/resources/taiga/protected-service.yaml +++ b/src/main/resources/taiga/protected-service.yaml @@ -2,10 +2,10 @@ kind: Service apiVersion: v1 metadata: name: taiga-protected + namespace: taiga labels: app.kubernetes.part-of: c4k-taiga app.kubernetes.io/component: taiga-protected - namespace: default spec: type: ClusterIP selector: diff --git a/src/main/resources/taiga/pvc-taiga-media-data.yaml b/src/main/resources/taiga/pvc-taiga-media-data.yaml index 65b1867..e67748e 100644 --- a/src/main/resources/taiga/pvc-taiga-media-data.yaml +++ b/src/main/resources/taiga/pvc-taiga-media-data.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: taiga-media-data - namespace: default + namespace: taiga labels: app: taiga app.kubernetes.part-of: taiga diff --git a/src/main/resources/taiga/pvc-taiga-static-data.yaml b/src/main/resources/taiga/pvc-taiga-static-data.yaml index 3663d24..f315d4d 100644 --- a/src/main/resources/taiga/pvc-taiga-static-data.yaml +++ b/src/main/resources/taiga/pvc-taiga-static-data.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: taiga-static-data - namespace: default + namespace: taiga labels: app: taiga app.kubernetes.part-of: taiga diff --git a/src/main/resources/taiga/rabbitmq-pvc-async.yaml b/src/main/resources/taiga/rabbitmq-pvc-async.yaml index 52d745a..a0aa7cf 100644 --- a/src/main/resources/taiga/rabbitmq-pvc-async.yaml +++ b/src/main/resources/taiga/rabbitmq-pvc-async.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: taiga-async-rabbitmq-data - namespace: default + namespace: taiga labels: app: taiga app.kubernetes.part-of: taiga diff --git a/src/main/resources/taiga/rabbitmq-pvc-events.yaml b/src/main/resources/taiga/rabbitmq-pvc-events.yaml index 7ce880e..0ece03d 100644 --- a/src/main/resources/taiga/rabbitmq-pvc-events.yaml +++ b/src/main/resources/taiga/rabbitmq-pvc-events.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: taiga-events-rabbitmq-data - namespace: default + namespace: taiga labels: app: taiga app.kubernetes.part-of: taiga diff --git a/src/main/resources/taiga/secret.yaml b/src/main/resources/taiga/secret.yaml index 785444b..22dfdb2 100644 --- a/src/main/resources/taiga/secret.yaml +++ b/src/main/resources/taiga/secret.yaml @@ -2,6 +2,7 @@ apiVersion: v1 kind: Secret metadata: name: taiga-secret + namespace: taiga labels: app.kubernetes.part-of: taiga data: diff --git a/src/test/cljc/dda/c4k_taiga/taiga_test.cljc b/src/test/cljc/dda/c4k_taiga/taiga_test.cljc index bbb1980..edda554 100644 --- a/src/test/cljc/dda/c4k_taiga/taiga_test.cljc +++ b/src/test/cljc/dda/c4k_taiga/taiga_test.cljc @@ -1,23 +1,26 @@ (ns dda.c4k-taiga.taiga-test (:require - #?(:cljs [shadow.resource :as rc]) + #?(:cljs [dda.c4k-common.macros :refer-macros [inline-resources]]) #?(:clj [clojure.test :refer [deftest is are testing run-tests]] :cljs [cljs.test :refer-macros [deftest is are testing run-tests]]) - [clojure.spec.alpha :as s] + [clojure.spec.test.alpha :as st] [dda.c4k-common.yaml :as yaml] [dda.c4k-taiga.taiga :as cut])) +(st/instrument `cut/generate-configmap) +(st/instrument `cut/generate-pvc-taiga-media-data) +(st/instrument `cut/generate-rabbitmq-pvc-async) +(st/instrument `cut/generate-rabbitmq-pvc-events) +(st/instrument `cut/generate-secret) + #?(:cljs - (defmethod yaml/load-resource :taiga-test [resource-name] - (case resource-name - "taiga-test/valid-config.yaml" (rc/inline "taiga-test/valid-config.yaml") - "taiga-test/valid-auth.yaml" (rc/inline "taiga-test/valid-auth.yaml") - (throw (js/Error. "Undefined Resource!"))))) + (defmethod yaml/load-resource :nextcloud-test [resource-name] + (get (inline-resources "nextcloud-test") resource-name))) (deftest should-generate-configmap (is (= {:apiVersion "v1", :kind "ConfigMap", - :metadata {:name "taiga-configmap", :namespace "default"}, + :metadata {:name "taiga-configmap", :namespace "taiga"}, :data {:ENABLE_TELEMETRY "false", :TAIGA_SITES_SCHEME "https", @@ -39,20 +42,18 @@ :kind "PersistentVolumeClaim", :metadata {:name "taiga-media-data", - :namespace "default", + :namespace "taiga" :labels {:app "taiga", :app.kubernetes.part-of "taiga"}}, :spec {:storageClassName "local-path", :accessModes ["ReadWriteOnce"], :resources {:requests {:storage "2Gi"}}}} - (cut/generate-pvc-taiga-media-data (yaml/load-as-edn "taiga-test/valid-config.yaml"))))) - -(deftest should-generate-pvc-taiga-static-data + (cut/generate-pvc-taiga-media-data (yaml/load-as-edn "taiga-test/valid-config.yaml")))) (is (= {:apiVersion "v1", :kind "PersistentVolumeClaim", :metadata {:name "taiga-static-data", - :namespace "default", + :namespace "taiga" :labels {:app "taiga", :app.kubernetes.part-of "taiga"}}, :spec {:storageClassName "local-path", @@ -65,20 +66,20 @@ :kind "PersistentVolumeClaim", :metadata {:name "taiga-async-rabbitmq-data", - :namespace "default", + :namespace "taiga" :labels {:app "taiga", :app.kubernetes.part-of "taiga"}}, :spec {:storageClassName "local-path", :accessModes ["ReadWriteOnce"], :resources {:requests {:storage "4Gi"}}}} - (cut/generate-rabbitmq-pvc-async(yaml/load-as-edn "taiga-test/valid-config.yaml"))))) + (cut/generate-rabbitmq-pvc-async (yaml/load-as-edn "taiga-test/valid-config.yaml"))))) (deftest should-generate-rabbitmq-pvc-events (is (= {:apiVersion "v1", :kind "PersistentVolumeClaim", :metadata {:name "taiga-events-rabbitmq-data", - :namespace "default", + :namespace "taiga" :labels {:app "taiga", :app.kubernetes.part-of "taiga"}}, :spec {:storageClassName "local-path", @@ -90,7 +91,7 @@ (is (= {:apiVersion "v1", :kind "Secret", :metadata - {:name "taiga-secret", :labels {:app.kubernetes.part-of "taiga"}}, + {:name "taiga-secret", :namespace "taiga" :labels {:app.kubernetes.part-of "taiga"}}, :data {:TAIGA_SECRET_KEY "c29tZS1rZXk=", :EMAIL_HOST_USER "bWFpbGVyLXVzZXI=",