Spec and instrument generate functions
This commit is contained in:
parent
19682eec36
commit
16dd0c5828
2 changed files with 18 additions and 13 deletions
|
@ -44,7 +44,8 @@
|
||||||
"nextcloud/secret.yaml" (rc/inline "nextcloud/secret.yaml")
|
"nextcloud/secret.yaml" (rc/inline "nextcloud/secret.yaml")
|
||||||
(throw (js/Error. "Undefined Resource!")))))
|
(throw (js/Error. "Undefined Resource!")))))
|
||||||
|
|
||||||
(defn generate-certificate [config]
|
(defn-spec generate-certificate cp/map-or-seq?
|
||||||
|
[config config?]
|
||||||
(let [{:keys [fqdn issuer]} config
|
(let [{:keys [fqdn issuer]} config
|
||||||
letsencrypt-issuer issuer]
|
letsencrypt-issuer issuer]
|
||||||
(->
|
(->
|
||||||
|
@ -53,12 +54,14 @@
|
||||||
(assoc-in [:spec :dnsNames] [fqdn])
|
(assoc-in [:spec :dnsNames] [fqdn])
|
||||||
(assoc-in [:spec :issuerRef :name] letsencrypt-issuer))))
|
(assoc-in [:spec :issuerRef :name] letsencrypt-issuer))))
|
||||||
|
|
||||||
(defn generate-deployment [config]
|
(defn-spec generate-deployment cp/map-or-seq?
|
||||||
|
[config config?]
|
||||||
(let [{:keys [fqdn]} config]
|
(let [{:keys [fqdn]} config]
|
||||||
(-> (yaml/load-as-edn "nextcloud/deployment.yaml")
|
(-> (yaml/load-as-edn "nextcloud/deployment.yaml")
|
||||||
(cm/replace-all-matching-values-by-new-value "fqdn" fqdn))))
|
(cm/replace-all-matching-values-by-new-value "fqdn" fqdn))))
|
||||||
|
|
||||||
(defn generate-ingress [config]
|
(defn-spec generate-ingress cp/map-or-seq?
|
||||||
|
[config config?]
|
||||||
(let [{:keys [fqdn issuer]
|
(let [{:keys [fqdn issuer]
|
||||||
:or {issuer "staging"}} config
|
:or {issuer "staging"}} config
|
||||||
letsencrypt-issuer issuer]
|
letsencrypt-issuer issuer]
|
||||||
|
@ -78,7 +81,8 @@
|
||||||
(defn generate-service []
|
(defn generate-service []
|
||||||
(yaml/load-as-edn "nextcloud/service.yaml"))
|
(yaml/load-as-edn "nextcloud/service.yaml"))
|
||||||
|
|
||||||
(defn generate-secret [config]
|
(defn-spec generate-secret cp/map-or-seq?
|
||||||
|
[config config?]
|
||||||
(let [{:keys [nextcloud-admin-user nextcloud-admin-password]} config]
|
(let [{:keys [nextcloud-admin-user nextcloud-admin-password]} config]
|
||||||
(->
|
(->
|
||||||
(yaml/load-as-edn "nextcloud/secret.yaml")
|
(yaml/load-as-edn "nextcloud/secret.yaml")
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
:data
|
:data
|
||||||
{:nextcloud-admin-user "Y2xvdWRhZG1pbg=="
|
{:nextcloud-admin-user "Y2xvdWRhZG1pbg=="
|
||||||
:nextcloud-admin-password "Y2xvdWRwYXNzd29yZA=="}}
|
:nextcloud-admin-password "Y2xvdWRwYXNzd29yZA=="}}
|
||||||
(cut/generate-secret {:nextcloud-admin-user "cloudadmin"
|
(cut/generate-secret {:fqdn "somefqdn.de"
|
||||||
|
:nextcloud-admin-user "cloudadmin"
|
||||||
:nextcloud-admin-password "cloudpassword"}))))
|
:nextcloud-admin-password "cloudpassword"}))))
|
||||||
|
|
||||||
(deftest should-generate-certificate
|
(deftest should-generate-certificate
|
||||||
|
@ -43,11 +44,11 @@
|
||||||
{:secretName "cloud-cert"
|
{:secretName "cloud-cert"
|
||||||
:duration "2160h"
|
:duration "2160h"
|
||||||
:renewBefore "360h",
|
:renewBefore "360h",
|
||||||
:commonName "xx",
|
:commonName "somefqdn.de",
|
||||||
:dnsNames ["xx"]
|
:dnsNames ["somefqdn.de"]
|
||||||
:issuerRef
|
:issuerRef
|
||||||
{:name "prod", :kind "ClusterIssuer"}}}
|
{:name "prod", :kind "ClusterIssuer"}}}
|
||||||
(cut/generate-certificate {:fqdn "xx" :issuer "prod"}))))
|
(cut/generate-certificate {:fqdn "somefqdn.de" :issuer "prod"}))))
|
||||||
|
|
||||||
(deftest should-generate-ingress
|
(deftest should-generate-ingress
|
||||||
(is (= {:apiVersion "networking.k8s.io/v1"
|
(is (= {:apiVersion "networking.k8s.io/v1"
|
||||||
|
@ -64,9 +65,9 @@
|
||||||
:ingress.kubernetes.io/proxy-read-timeout "300"}
|
:ingress.kubernetes.io/proxy-read-timeout "300"}
|
||||||
:namespace "default"}
|
:namespace "default"}
|
||||||
:spec
|
:spec
|
||||||
{:tls [{:hosts ["xx"], :secretName "cloud-cert"}]
|
{:tls [{:hosts ["somefqdn.de"], :secretName "cloud-cert"}]
|
||||||
:rules
|
:rules
|
||||||
[{:host "xx"
|
[{:host "somefqdn.de"
|
||||||
:http
|
:http
|
||||||
{:paths
|
{:paths
|
||||||
[{:path "/"
|
[{:path "/"
|
||||||
|
@ -74,7 +75,7 @@
|
||||||
:backend
|
:backend
|
||||||
{:service
|
{:service
|
||||||
{:name "cloud-service", :port {:number 80}}}}]}}]}}
|
{:name "cloud-service", :port {:number 80}}}}]}}]}}
|
||||||
(cut/generate-ingress {:fqdn "xx"}))))
|
(cut/generate-ingress {:fqdn "somefqdn.de"}))))
|
||||||
|
|
||||||
(deftest should-generate-pvc
|
(deftest should-generate-pvc
|
||||||
(is (= {:apiVersion "v1"
|
(is (= {:apiVersion "v1"
|
||||||
|
@ -113,11 +114,11 @@
|
||||||
[{:name "NEXTCLOUD_ADMIN_USER", :valueFrom {:secretKeyRef {:name "cloud-secret", :key "nextcloud-admin-user"}}}
|
[{:name "NEXTCLOUD_ADMIN_USER", :valueFrom {:secretKeyRef {:name "cloud-secret", :key "nextcloud-admin-user"}}}
|
||||||
{:name "NEXTCLOUD_ADMIN_PASSWORD"
|
{:name "NEXTCLOUD_ADMIN_PASSWORD"
|
||||||
:valueFrom {:secretKeyRef {:name "cloud-secret", :key "nextcloud-admin-password"}}}
|
:valueFrom {:secretKeyRef {:name "cloud-secret", :key "nextcloud-admin-password"}}}
|
||||||
{:name "NEXTCLOUD_TRUSTED_DOMAINS", :value "xx"}
|
{:name "NEXTCLOUD_TRUSTED_DOMAINS", :value "somefqdn.de"}
|
||||||
{:name "POSTGRES_USER", :valueFrom {:secretKeyRef {:name "postgres-secret", :key "postgres-user"}}}
|
{:name "POSTGRES_USER", :valueFrom {:secretKeyRef {:name "postgres-secret", :key "postgres-user"}}}
|
||||||
{:name "POSTGRES_PASSWORD", :valueFrom {:secretKeyRef {:name "postgres-secret", :key "postgres-password"}}}
|
{:name "POSTGRES_PASSWORD", :valueFrom {:secretKeyRef {:name "postgres-secret", :key "postgres-password"}}}
|
||||||
{:name "POSTGRES_DB", :valueFrom {:configMapKeyRef {:name "postgres-config", :key "postgres-db"}}}
|
{:name "POSTGRES_DB", :valueFrom {:configMapKeyRef {:name "postgres-config", :key "postgres-db"}}}
|
||||||
{:name "POSTGRES_HOST", :value "postgresql-service:5432"}]
|
{:name "POSTGRES_HOST", :value "postgresql-service:5432"}]
|
||||||
:volumeMounts [{:name "cloud-data-volume", :mountPath "/var/www/html"}]}]
|
:volumeMounts [{:name "cloud-data-volume", :mountPath "/var/www/html"}]}]
|
||||||
:volumes [{:name "cloud-data-volume", :persistentVolumeClaim {:claimName "cloud-pvc"}}]}}}}
|
:volumes [{:name "cloud-data-volume", :persistentVolumeClaim {:claimName "cloud-pvc"}}]}}}}
|
||||||
(cut/generate-deployment {:fqdn "xx"}))))
|
(cut/generate-deployment {:fqdn "somefqdn.de"}))))
|
||||||
|
|
Loading…
Reference in a new issue