|
|
|
@ -4,6 +4,17 @@
|
|
|
|
|
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
|
|
|
|
|
[dda.c4k-nextcloud.nextcloud :as cut]))
|
|
|
|
|
|
|
|
|
|
(deftest should-generate-secret
|
|
|
|
|
(is (= {:apiVersion "v1"
|
|
|
|
|
:kind "Secret"
|
|
|
|
|
:metadata {:name "cloud-secret"}
|
|
|
|
|
:type "Opaque"
|
|
|
|
|
:stringData
|
|
|
|
|
{:nextcloud-admin-user "Y2xvdWRhZG1pbg=="
|
|
|
|
|
:nextcloud-admin-password "Y2xvdWRwYXNzd29yZA=="}}
|
|
|
|
|
(cut/generate-secret {:nextcloud-admin-user "cloudadmin"
|
|
|
|
|
:nextcloud-admin-password "cloudpassword"}))))
|
|
|
|
|
|
|
|
|
|
(deftest should-generate-certificate
|
|
|
|
|
(is (= {:apiVersion "cert-manager.io/v1alpha2"
|
|
|
|
|
:kind "Certificate"
|
|
|
|
@ -17,7 +28,7 @@
|
|
|
|
|
(cut/generate-certificate {:fqdn "xx" :issuer :prod}))))
|
|
|
|
|
|
|
|
|
|
(deftest should-generate-ingress
|
|
|
|
|
(is (= {:apiVersion "extensions/v1beta1"
|
|
|
|
|
(is (= {:apiVersion "networking.k8s.io/v1"
|
|
|
|
|
:kind "Ingress"
|
|
|
|
|
:metadata
|
|
|
|
|
{:name "ingress-cloud"
|
|
|
|
@ -38,8 +49,10 @@
|
|
|
|
|
:http
|
|
|
|
|
{:paths
|
|
|
|
|
[{:path "/"
|
|
|
|
|
:pathType "Prefix"
|
|
|
|
|
:backend
|
|
|
|
|
{:serviceName "cloud-service", :servicePort 80}}]}}]}}
|
|
|
|
|
{:service
|
|
|
|
|
{:name "cloud-service", :port {:number 80}}}}]}}]}}
|
|
|
|
|
(cut/generate-ingress {:fqdn "xx"}))))
|
|
|
|
|
|
|
|
|
|
(deftest should-generate-persistent-volume
|
|
|
|
@ -69,18 +82,47 @@
|
|
|
|
|
:imagePullPolicy "IfNotPresent"
|
|
|
|
|
:ports [{:containerPort 80}]
|
|
|
|
|
:env
|
|
|
|
|
[{:name "NEXTCLOUD_ADMIN_USER_FILE", :value "/var/run/secrets/cloud-secrets/nextcloud-admin-user"}
|
|
|
|
|
{:name "NEXTCLOUD_ADMIN_PASSWORD_FILE", :value "/var/run/secrets/cloud-secrets/nextcloud-admin-password"}
|
|
|
|
|
[{:name "NEXTCLOUD_ADMIN_USER_FILE"
|
|
|
|
|
:value
|
|
|
|
|
"/var/run/secrets/cloud-secrets/nextcloud-admin-user"}
|
|
|
|
|
{:name "NEXTCLOUD_ADMIN_PASSWORD_FILE"
|
|
|
|
|
:value
|
|
|
|
|
"/var/run/secrets/cloud-secrets/nextcloud-admin-password"}
|
|
|
|
|
{:name "NEXTCLOUD_TRUSTED_DOMAINS", :value "xx"}
|
|
|
|
|
{:name "POSTGRES_USER_FILE", :value "/var/run/secrets/cloud-secrets/postgres-user"}
|
|
|
|
|
{:name "POSTGRES_PASSWORD_FILE", :value "/var/run/secrets/cloud-secrets/postgres-password"}
|
|
|
|
|
{:name "POSTGRES_DB_FILE", :value "/var/run/secrets/cloud-secrets/postgres-db"}
|
|
|
|
|
{:name "POSTGRES_HOST", :value "postgresql-service:5432"}]
|
|
|
|
|
{:name "POSTGRES_USER_FILE"
|
|
|
|
|
:value
|
|
|
|
|
"/var/run/secrets/postgres-secret/postgres-user"}
|
|
|
|
|
{:name "POSTGRES_PASSWORD_FILE"
|
|
|
|
|
:value
|
|
|
|
|
"/var/run/secrets/postgres-secret/postgres-password"}
|
|
|
|
|
{:name "POSTGRES_DB_FILE"
|
|
|
|
|
:value
|
|
|
|
|
"/var/run/configs/postgres-config/postgres-db"}
|
|
|
|
|
{:name "POSTGRES_HOST"
|
|
|
|
|
:value "postgresql-service:5432"}]
|
|
|
|
|
:volumeMounts
|
|
|
|
|
[{:name "cloud-data-volume", :mountPath "/var/www/html"}
|
|
|
|
|
{:name "cloud-secret-volume", :mountPath "/var/run/secrets/cloud-secrets", :readOnly true}]}]
|
|
|
|
|
[{:name "cloud-data-volume"
|
|
|
|
|
:mountPath "/var/www/html"}
|
|
|
|
|
{:name "cloud-secret-volume"
|
|
|
|
|
:mountPath "/var/run/secrets/cloud-secrets"
|
|
|
|
|
:readOnly true}
|
|
|
|
|
{:name "postgres-secret-volume"
|
|
|
|
|
:mountPath "/var/run/secrets/postgres-secret"
|
|
|
|
|
:readOnly true}
|
|
|
|
|
{:name "postgres-config-volume"
|
|
|
|
|
:mountPath "/var/run/configs/postgres-config"
|
|
|
|
|
:readOnly true}]}]
|
|
|
|
|
:volumes
|
|
|
|
|
[{:name "cloud-data-volume", :persistentVolumeClaim {:claimName "cloud-pvc"}}
|
|
|
|
|
{:name "cloud-secret-volume", :secret {:secretName "cloud-secret"}}
|
|
|
|
|
{:name "backup-secret-volume", :secret {:secretName "backup-secret"}}]}}}}
|
|
|
|
|
[{:name "cloud-data-volume"
|
|
|
|
|
:persistentVolumeClaim {:claimName "cloud-pvc"}}
|
|
|
|
|
{:name "cloud-secret-volume"
|
|
|
|
|
:secret {:secretName "cloud-secret"}}
|
|
|
|
|
{:name "postgres-secret-volume"
|
|
|
|
|
:secret {:secretName "postgres-secret"}}
|
|
|
|
|
{:name "postgres-config-volume"
|
|
|
|
|
:configMap
|
|
|
|
|
{:name "postgres-config"
|
|
|
|
|
:items [{:key "postgres-db", :path "postgres-db"}]}}
|
|
|
|
|
{:name "backup-secret-volume"
|
|
|
|
|
:secret {:secretName "backup-secret"}}]}}}}
|
|
|
|
|
(cut/generate-deployment {:fqdn "xx"}))))
|
|
|
|
|