diff --git a/src/main/cljc/dda/c4k_common/postgres.cljc b/src/main/cljc/dda/c4k_common/postgres.cljc index 98364d5..687b6e1 100644 --- a/src/main/cljc/dda/c4k_common/postgres.cljc +++ b/src/main/cljc/dda/c4k_common/postgres.cljc @@ -34,12 +34,12 @@ :pv-storage-size-gb 10 :pvc-storage-class-name "manual"})) - -(defn-spec generate-config map? +; REVIEW gec: This breaking change means, every call from outside to generate-config will mean something completely different. +(defn-spec generate-config-configmap map? [& config (s/? pg-config?)] (let [final-config (merge default-config (first config))] - (int/generate-config final-config))) + (int/generate-config-configmap final-config))) (defn-spec generate-deployment map? @@ -56,11 +56,11 @@ (int/generate-persistent-volume final-config))) -(defn-spec generate-pvc map? +(defn-spec generate-pvc map? [config pg-config?] (let [final-config (merge default-config - config)] - (int/generate-pvc final-config))) + config)] + (int/generate-pvc final-config))) (defn-spec generate-secret map? @@ -81,14 +81,32 @@ (int/generate-service final-config))) -(defn-spec generate seq? - [config pg-config? +(defn-spec ^{:deprecated "6.4.1"} generate seq? + "use generate-config and generate-auth instead" + [config pg-config? auth pg-auth?] (let [final-config (merge default-config config)] [(int/generate-secret final-config auth) (int/generate-persistent-volume final-config) - (int/generate-config final-config) + (int/generate-config-configmap final-config) (int/generate-pvc final-config) (int/generate-deployment final-config) (int/generate-service final-config)])) + +(defn-spec generate-config seq? + [config pg-config?] + (let [final-config (merge default-config + config)] + [(int/generate-persistent-volume final-config) + (int/generate-config-configmap final-config) + (int/generate-pvc final-config) + (int/generate-deployment final-config) + (int/generate-service final-config)])) + +(defn-spec generate-auth seq? + [config pg-config? + auth pg-auth?] + (let [final-config (merge default-config + config)] + [(int/generate-secret final-config auth)])) diff --git a/src/main/cljc/dda/c4k_common/postgres/postgres_internal.cljc b/src/main/cljc/dda/c4k_common/postgres/postgres_internal.cljc index ad4c253..48a456b 100644 --- a/src/main/cljc/dda/c4k_common/postgres/postgres_internal.cljc +++ b/src/main/cljc/dda/c4k_common/postgres/postgres_internal.cljc @@ -52,7 +52,17 @@ (def postgres-function (s/keys :opt-un [::deserializer ::optional])) -(defn-spec generate-config map? +(defn-spec generate-config-configmap map? + [config pg-config?] + (let [{:keys [postgres-size db-name namespace]} config] + (-> + (yaml/from-string (yaml/load-resource + (str "postgres/config-" (name postgres-size) ".yaml"))) + (assoc-in [:metadata :namespace] namespace) + (assoc-in [:data :postgres-db] db-name)))) + +(defn-spec ^{:deprecated "6.4.1"} generate-config map? + "use generate-config-configmap instead" [config pg-config?] (let [{:keys [postgres-size db-name namespace]} config] (-> diff --git a/src/test/cljc/dda/c4k_common/monitoring_test.cljc b/src/test/cljc/dda/c4k_common/monitoring_test.cljc index 6dc168c..e9fd302 100644 --- a/src/test/cljc/dda/c4k_common/monitoring_test.cljc +++ b/src/test/cljc/dda/c4k_common/monitoring_test.cljc @@ -5,6 +5,7 @@ [clojure.spec.test.alpha :as st] [dda.c4k-common.monitoring :as cut])) +(st/instrument `cut/generate) (st/instrument `cut/generate-config) (st/instrument `cut/generate-auth) @@ -18,6 +19,8 @@ (deftest should-generate + (is (= 17 + (count (cut/generate conf auth)))) (is (= 16 (count (cut/generate-config conf auth)))) (is (= 1 diff --git a/src/test/cljc/dda/c4k_common/postgres/postgres_internal_test.cljc b/src/test/cljc/dda/c4k_common/postgres/postgres_internal_test.cljc index 55116db..3e37fcc 100644 --- a/src/test/cljc/dda/c4k_common/postgres/postgres_internal_test.cljc +++ b/src/test/cljc/dda/c4k_common/postgres/postgres_internal_test.cljc @@ -5,18 +5,18 @@ [clojure.spec.test.alpha :as st] [dda.c4k-common.postgres.postgres-internal :as cut])) -(st/instrument `cut/generate-config) +(st/instrument `cut/generate-config-configmap) (st/instrument `cut/generate-deployment) (st/instrument `cut/generate-persistent-volume) (st/instrument `cut/generate-pvc) (st/instrument `cut/generate-secret) (st/instrument `cut/generate-service) -(deftest should-generate-config +(deftest should-generate-config-configmap (is (= {:name "postgres-config", :namespace "default" :labels {:app "postgres"}} - (:metadata (cut/generate-config {:postgres-image "postgres:13" + (:metadata (cut/generate-config-configmap {:postgres-image "postgres:13" :postgres-size :2gb :db-name "postgres" :postgres-data-volume-path "/var/postgres" @@ -26,7 +26,7 @@ (is (= {:name "postgres-config", :namespace "myapp" :labels {:app "postgres"}} - (:metadata (cut/generate-config {:postgres-image "postgres:13" + (:metadata (cut/generate-config-configmap {:postgres-image "postgres:13" :postgres-size :2gb :db-name "postgres" :postgres-data-volume-path "/var/postgres" @@ -36,7 +36,7 @@ (is (= {:postgres-db "postgres" :postgresql.conf "max_connections = 100\nwork_mem = 4MB\nshared_buffers = 512MB\n"} - (:data (cut/generate-config {:postgres-image "postgres:13" + (:data (cut/generate-config-configmap {:postgres-image "postgres:13" :postgres-size :2gb :db-name "postgres" :postgres-data-volume-path "/var/postgres" @@ -46,7 +46,7 @@ (is (= {:postgres-db "postgres" :postgresql.conf "max_connections = 700\nwork_mem = 3MB\nshared_buffers = 2048MB\n"} - (:data (cut/generate-config {:postgres-image "postgres:13" + (:data (cut/generate-config-configmap {:postgres-image "postgres:13" :postgres-size :8gb :db-name "postgres" :postgres-data-volume-path "/var/postgres" @@ -56,7 +56,7 @@ (is (= {:postgres-db "test" :postgresql.conf "max_connections = 100\nwork_mem = 4MB\nshared_buffers = 512MB\n"} - (:data (cut/generate-config {:postgres-image "postgres:13" + (:data (cut/generate-config-configmap {:postgres-image "postgres:13" :postgres-size :2gb :db-name "test" :postgres-data-volume-path "/var/postgres" diff --git a/src/test/cljc/dda/c4k_common/postgres_test.cljc b/src/test/cljc/dda/c4k_common/postgres_test.cljc index 236928a..a9c958e 100644 --- a/src/test/cljc/dda/c4k_common/postgres_test.cljc +++ b/src/test/cljc/dda/c4k_common/postgres_test.cljc @@ -5,16 +5,18 @@ [clojure.spec.test.alpha :as st] [dda.c4k-common.postgres :as cut])) -(st/instrument `cut/generate-config) +(st/instrument `cut/generate-config-configmap) (st/instrument `cut/generate-persistent-volume) (st/instrument `cut/generate-secret) (st/instrument `cut/generate) +(st/instrument `cut/generate-config) +(st/instrument `cut/generate-auth) -(deftest should-generate-config +(deftest should-generate-config-configmap (is (= {:postgres-db "postgres" :postgresql.conf "max_connections = 100\nwork_mem = 4MB\nshared_buffers = 512MB\n"} - (:data (cut/generate-config))))) + (:data (cut/generate-config-configmap))))) (deftest should-generate-persistent-volume (is (= {:kind "PersistentVolume" @@ -52,6 +54,12 @@ (deftest should-generate (is (= 6 - (count (cut/generate {} + (count (cut/generate {} {:postgres-db-user "user" - :postgres-db-password "password"}))))) \ No newline at end of file + :postgres-db-password "password"})))) + (is (= 5 + (count (cut/generate-config {})))) + (is (= 1 + (count (cut/generate-auth {} + {:postgres-db-user "user" + :postgres-db-password "password"}))))) \ No newline at end of file