diff --git a/project.clj b/project.clj index 29c6c19..6c7da2e 100644 --- a/project.clj +++ b/project.clj @@ -5,7 +5,7 @@ :url "https://www.apache.org/licenses/LICENSE-2.0.html"} :dependencies [[org.clojure/clojure "1.10.3"] [org.clojure/tools.reader "1.3.6"] - [org.domaindrivenarchitecture/c4k-common-clj "1.0.0"] + [org.domaindrivenarchitecture/c4k-common-clj "1.1.0-SNAPSHOT"] [hickory "0.7.1"]] :target-path "target/%s/" :source-paths ["src/main/cljc" diff --git a/shadow-cljs.edn b/shadow-cljs.edn index f80082a..de12eba 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -4,7 +4,7 @@ "src/test/cljc" "src/test/cljs" "src/test/resources"] - :dependencies [[org.domaindrivenarchitecture/c4k-common-cljs "1.0.0"] + :dependencies [[org.domaindrivenarchitecture/c4k-common-cljs "1.1.0-SNAPSHOT"] [hickory "0.7.1"]] :builds {:frontend {:target :browser :modules {:main {:init-fn dda.c4k-shynet.browser/init}} diff --git a/src/main/cljc/dda/c4k_shynet/core.cljc b/src/main/cljc/dda/c4k_shynet/core.cljc index 9cf940d..7bf818c 100644 --- a/src/main/cljc/dda/c4k_shynet/core.cljc +++ b/src/main/cljc/dda/c4k_shynet/core.cljc @@ -4,6 +4,7 @@ [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.yaml :as yaml] [dda.c4k-common.postgres :as postgres] [dda.c4k-shynet.shynet :as shynet])) @@ -17,24 +18,25 @@ ::postgres/postgres-db-user ::postgres/postgres-db-password])) (defn k8s-objects [config] - (into - [] - (concat - [(yaml/to-string (postgres/generate-config {:postgres-size :2gb :db-name "shynet"})) - (yaml/to-string (postgres/generate-secret config))] - (when (contains? config :postgres-data-volume-path) - [(yaml/to-string (postgres/generate-persistent-volume (select-keys config [:postgres-data-volume-path])))]) - [(yaml/to-string (postgres/generate-pvc)) - (yaml/to-string (postgres/generate-deployment {:postgres-image "postgres:14"})) - (yaml/to-string (postgres/generate-service)) - (yaml/to-string (shynet/generate-secret config)) - (yaml/to-string (shynet/generate-webserver-deployment)) - (yaml/to-string (shynet/generate-celeryworker-deployment)) - (yaml/to-string (shynet/generate-ingress config)) - (yaml/to-string (shynet/generate-certificate config)) - (yaml/to-string (shynet/generate-service-redis)) - (yaml/to-string (shynet/generate-service-webserver)) - (yaml/to-string (shynet/generate-statefulset))]))) + (let [storage-class (if (contains? config :postgres-data-volume-path) :manual :local-path)] + (cm/concat-vec + [(yaml/to-string (postgres/generate-config {:postgres-size :2gb :db-name "shynet"})) + (yaml/to-string (postgres/generate-secret config))] + (when (contains? config :postgres-data-volume-path) + [(yaml/to-string (postgres/generate-persistent-volume (select-keys config [:postgres-data-volume-path :pv-storage-size-gb])))]) + [(yaml/to-string (postgres/generate-pvc {:pv-storage-size-gb 20 + :pvc-storage-class-name storage-class})) + (yaml/to-string (postgres/generate-deployment {:postgres-image "postgres:14" + :postgres-size :2gb})) + (yaml/to-string (postgres/generate-service)) + (yaml/to-string (shynet/generate-secret config)) + (yaml/to-string (shynet/generate-webserver-deployment)) + (yaml/to-string (shynet/generate-celeryworker-deployment)) + (yaml/to-string (shynet/generate-ingress config)) + (yaml/to-string (shynet/generate-certificate config)) + (yaml/to-string (shynet/generate-service-redis)) + (yaml/to-string (shynet/generate-service-webserver)) + (yaml/to-string (shynet/generate-statefulset))]))) (defn-spec generate any? [my-config config?