introduce size dependand postgres-sizings
This commit is contained in:
parent
1b4502b316
commit
a0ce804499
8 changed files with 58 additions and 6 deletions
|
@ -1,4 +1,4 @@
|
|||
(defproject org.domaindrivenarchitecture/c4k-common-cljs "0.2.11-SNAPSHOT"
|
||||
(defproject org.domaindrivenarchitecture/c4k-common-cljs "0.3.0-SNAPSHOT"
|
||||
:description "Contains predicates and tools for c4k"
|
||||
:url "https://domaindrivenarchitecture.org"
|
||||
:license {:name "Apache License, Version 2.0"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
(defproject org.domaindrivenarchitecture/c4k-common-clj "0.2.11-SNAPSHOT"
|
||||
(defproject org.domaindrivenarchitecture/c4k-common-clj "0.3.0-SNAPSHOT"
|
||||
:description "Contains predicates and tools for c4k"
|
||||
:url "https://domaindrivenarchitecture.org"
|
||||
:license {:name "Apache License, Version 2.0"
|
||||
|
|
|
@ -6,14 +6,22 @@
|
|||
[dda.c4k-common.base64 :as b64]
|
||||
[dda.c4k-common.common :as cm]))
|
||||
|
||||
(defn postgres-size?
|
||||
[input]
|
||||
(contains? #{:2gb :4gb :8gb :16gb} input))
|
||||
|
||||
(s/def ::postgres-db-user cm/bash-env-string?)
|
||||
(s/def ::postgres-db-password cm/bash-env-string?)
|
||||
(s/def ::postgres-data-volume-path string?)
|
||||
(s/def ::postgres-size postgres-size?)
|
||||
|
||||
#?(:cljs
|
||||
(defmethod yaml/load-resource :postgres [resource-name]
|
||||
(case resource-name
|
||||
"postgres/config.yaml" (rc/inline "postgres/config.yaml")
|
||||
"postgres/config-2gb.yaml" (rc/inline "postgres/config-2gb.yaml")
|
||||
"postgres/config-4gb.yaml" (rc/inline "postgres/config-4gb.yaml")
|
||||
"postgres/config-8gb.yaml" (rc/inline "postgres/config-8gb.yaml")
|
||||
"postgres/config-16gb.yaml" (rc/inline "postgres/config-16gb.yaml")
|
||||
"postgres/deployment.yaml" (rc/inline "postgres/deployment.yaml")
|
||||
"postgres/persistent-volume.yaml" (rc/inline "postgres/persistent-volume.yaml")
|
||||
"postgres/pvc.yaml" (rc/inline "postgres/pvc.yaml")
|
||||
|
@ -21,8 +29,10 @@
|
|||
"postgres/service.yaml" (rc/inline "postgres/service.yaml")
|
||||
(throw (js/Error. "Undefined Resource!")))))
|
||||
|
||||
(defn generate-config []
|
||||
(yaml/from-string (yaml/load-resource "postgres/config.yaml")))
|
||||
(defn generate-config [& args]
|
||||
(let [{:keys [postgres-size]
|
||||
:or {postgres-size :2gb}} args]
|
||||
(yaml/from-string (yaml/load-resource (str "postgres/config-" (name postgres-size) ".yaml")))))
|
||||
|
||||
(defn generate-deployment []
|
||||
(yaml/from-string (yaml/load-resource "postgres/deployment.yaml")))
|
||||
|
|
|
@ -5,7 +5,7 @@ metadata:
|
|||
labels:
|
||||
app: postgres
|
||||
data:
|
||||
postgres-db: jira
|
||||
postgresql.conf: |
|
||||
max_connections = 1000
|
||||
work_mem = 4MB
|
||||
shared_buffers = 512MB
|
11
src/main/resources/postgres/config-2gb.yaml
Normal file
11
src/main/resources/postgres/config-2gb.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: postgres-config
|
||||
labels:
|
||||
app: postgres
|
||||
data:
|
||||
postgresql.conf: |
|
||||
max_connections = 100
|
||||
work_mem = 4MB
|
||||
shared_buffers = 128MB
|
11
src/main/resources/postgres/config-4gb.yaml
Normal file
11
src/main/resources/postgres/config-4gb.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: postgres-config
|
||||
labels:
|
||||
app: postgres
|
||||
data:
|
||||
postgresql.conf: |
|
||||
max_connections = 500
|
||||
work_mem = 2MB
|
||||
shared_buffers = 256MB
|
11
src/main/resources/postgres/config-8gb.yaml
Normal file
11
src/main/resources/postgres/config-8gb.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: postgres-config
|
||||
labels:
|
||||
app: postgres
|
||||
data:
|
||||
postgresql.conf: |
|
||||
max_connections = 700
|
||||
work_mem = 3MB
|
||||
shared_buffers = 512MB
|
|
@ -4,6 +4,15 @@
|
|||
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
|
||||
[dda.c4k-common.postgres :as cut]))
|
||||
|
||||
(deftest should-generate-config
|
||||
(is (= {:postgresql.conf
|
||||
"max_connections = 100\nwork_mem = 4MB\nshared_buffers = 128MB\n"}
|
||||
(:data (cut/generate-config))))
|
||||
(is (= {:postgresql.conf
|
||||
"max_connections = 700\nwork_mem = 3MB\nshared_buffers = 512MB\n"}
|
||||
(:data (cut/generate-config :postgres-size :8gb))))
|
||||
)
|
||||
|
||||
(deftest should-generate-persistent-volume
|
||||
(is (= {:kind "PersistentVolume"
|
||||
:apiVersion "v1"
|
||||
|
|
Loading…
Reference in a new issue