diff --git a/src/main/cljc/dda/c4k_common/postgres.cljc b/src/main/cljc/dda/c4k_common/postgres.cljc index 1a736cf..99a9cad 100644 --- a/src/main/cljc/dda/c4k_common/postgres.cljc +++ b/src/main/cljc/dda/c4k_common/postgres.cljc @@ -1,14 +1,8 @@ (ns dda.c4k-common.postgres (:require [clojure.spec.alpha :as s] - #?(:cljs [shadow.resource :as rc]) #?(:clj [orchestra.core :refer [defn-spec]] :cljs [orchestra.core :refer-macros [defn-spec]]) - #?(:cljs [dda.c4k-common.macros :refer-macros [inline-resources]]) - [dda.c4k-common.yaml :as yaml] - [dda.c4k-common.base64 :as b64] - [dda.c4k-common.predicate :as cp] - [dda.c4k-common.common :as cm] [dda.c4k-common.postgres.postgres-internal :as int])) (def postgres-size? int/postgres-size?) @@ -75,3 +69,16 @@ (defn-spec generate-service map? [] (int/generate-service)) + + +(defn-spec generate seq? + [config pg-config? + auth pg-auth?] + (let [final-config (merge default-config + config)] + [(int/generate-secret auth) + (int/generate-persistent-volume final-config) + (int/generate-config final-config) + (int/generate-pvc final-config) + (int/generate-deployment final-config) + (int/generate-service)])) 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 0fde44c..89bdbb0 100644 --- a/src/main/cljc/dda/c4k_common/postgres/postgres_internal.cljc +++ b/src/main/cljc/dda/c4k_common/postgres/postgres_internal.cljc @@ -30,7 +30,7 @@ (s/keys :req-un [::postgres-size ::db-name ::postgres-data-volume-path ::pvc-storage-class-name ::pv-storage-size-gb])) (def pg-auth? - (s/keys :opt-un [::postgres-db-user ::postgres-db-password])) + (s/keys :req-un [::postgres-db-user ::postgres-db-password])) (def postgres-function (s/keys :opt-un [::deserializer ::optional])) diff --git a/src/test/cljc/dda/c4k_common/postgres_test.cljc b/src/test/cljc/dda/c4k_common/postgres_test.cljc index 6ee7c7e..b5fffda 100644 --- a/src/test/cljc/dda/c4k_common/postgres_test.cljc +++ b/src/test/cljc/dda/c4k_common/postgres_test.cljc @@ -38,4 +38,11 @@ {:storageClassName "manual" :accessModes ["ReadWriteOnce"] :resources {:requests {:storage "10Gi"}}}} - (cut/generate-pvc {})))) \ No newline at end of file + (cut/generate-pvc {})))) + + +(deftest should-generate + (is (= 6 + (count (cut/generate {} + {:postgres-db-user "user" + :postgres-db-password "password"}))))) \ No newline at end of file