diff --git a/src/main/cljc/dda/c4k_common/postgres.cljc b/src/main/cljc/dda/c4k_common/postgres.cljc index 79d534f..2615b15 100644 --- a/src/main/cljc/dda/c4k_common/postgres.cljc +++ b/src/main/cljc/dda/c4k_common/postgres.cljc @@ -23,9 +23,9 @@ (s/def ::postgres-size postgres-size?) (s/def ::db-name cp/bash-env-string?) (defn pg-config? [input] - (s/keys :un-opt [::postgres-size ::db-name ::postgres-data-volume-path])) + (s/keys :opt-un [::postgres-size ::db-name ::postgres-data-volume-path])) (defn pg-auth? [input] - (s/keys :un-opt [::postgres-db-user ::postgres-db-password])) + (s/keys :opt-un [::postgres-db-user ::postgres-db-password])) (def postgres-function (s/keys :opt-un [::deserializer ::optional])) @@ -44,18 +44,20 @@ (throw (js/Error. "Undefined Resource!"))))) (defn-spec generate-config cp/map-or-seq? - [& args pg-config?] + [& config (s/? pg-config?)] (let [{:keys [postgres-size db-name] :or {postgres-size :2gb - db-name "postgres"}} args] + db-name "postgres"}} (first config)] (-> - (yaml/from-string (yaml/load-resource (str "postgres/config-" (name postgres-size) ".yaml"))) + (yaml/from-string (yaml/load-resource + (str "postgres/config-" (name postgres-size) ".yaml"))) (assoc-in [:data :postgres-db] db-name)))) + (defn-spec generate-deployment cp/map-or-seq? - [& args postgres-image?] + [& config (s/? pg-config?)] (let [{:keys [postgres-image] - :or {postgres-image "postgres:13"}} args] + :or {postgres-image "postgres:13"}} (first config)] (-> (yaml/from-string (yaml/load-resource "postgres/deployment.yaml")) (assoc-in [:spec :template :spec :containers 0 :image] postgres-image)))) @@ -72,7 +74,7 @@ (yaml/from-string (yaml/load-resource "postgres/pvc.yaml"))) (defn-spec generate-secret cp/map-or-seq? - [my-auth pg-auth?] + [my-auth any?] (let [{:keys [postgres-db-user postgres-db-password]} my-auth] (-> (yaml/from-string (yaml/load-resource "postgres/secret.yaml")) diff --git a/src/test/clj/dda/c4k_common/yaml_test.clj b/src/test/clj/dda/c4k_common/yaml_test.clj index 87be0ac..9a8f8bb 100644 --- a/src/test/clj/dda/c4k_common/yaml_test.clj +++ b/src/test/clj/dda/c4k_common/yaml_test.clj @@ -1,8 +1,10 @@ (ns dda.c4k-common.yaml-test (:require [clojure.test :refer [deftest is are testing run-tests]] - [dda.c4k-common.yaml :as cut] - [orchestra.spec.test :as st])) + [orchestra.spec.test :as st] + [dda.c4k-common.yaml :as cut])) + +(st/instrument) (deftest should-dispatch-by-resource-name (is (= :clj @@ -47,5 +49,3 @@ {:serviceName "another_keycloak" :servicePort 8081}}]}}]}} (cut/from-string (cut/load-resource "test/ingress_test.yaml"))))) - -(st/instrument) diff --git a/src/test/cljc/dda/c4k_common/postgres_test.cljc b/src/test/cljc/dda/c4k_common/postgres_test.cljc index 967476e..79bbf11 100644 --- a/src/test/cljc/dda/c4k_common/postgres_test.cljc +++ b/src/test/cljc/dda/c4k_common/postgres_test.cljc @@ -2,8 +2,11 @@ (:require #?(:clj [clojure.test :refer [deftest is are testing run-tests]] :cljs [cljs.test :refer-macros [deftest is are testing run-tests]]) + [orchestra.spec.test :as st] [dda.c4k-common.postgres :as cut])) +(st/instrument) + (deftest should-generate-config (is (= {:postgres-db "postgres" :postgresql.conf @@ -12,11 +15,11 @@ (is (= {:postgres-db "postgres" :postgresql.conf "max_connections = 700\nwork_mem = 3MB\nshared_buffers = 2048MB\n"} - (:data (cut/generate-config :postgres-size :8gb)))) + (:data (cut/generate-config {:postgres-size :8gb})))) (is (= {:postgres-db "test" :postgresql.conf "max_connections = 100\nwork_mem = 4MB\nshared_buffers = 512MB\n"} - (:data (cut/generate-config :db-name "test")))) + (:data (cut/generate-config {:db-name "test"})))) ) (deftest should-generate-persistent-volume @@ -64,5 +67,5 @@ :readOnly true} {:name "postgre-data-volume" :mountPath "/var/lib/postgresql/data"}]}] - (get-in (cut/generate-deployment :postgres-image "postgres:14") + (get-in (cut/generate-deployment {:postgres-image "postgres:14"}) [:spec :template :spec :containers]))))