add first backup test
This commit is contained in:
parent
278b7350d9
commit
a9bc4c9063
3 changed files with 39 additions and 13 deletions
src
|
@ -1,27 +1,31 @@
|
|||
(ns dda.c4k-taiga.backup
|
||||
(:require
|
||||
[clojure.spec.alpha :as s]
|
||||
#?(:cljs [shadow.resource :as rc])
|
||||
#?(:clj [orchestra.core :refer [defn-spec]]
|
||||
:cljs [orchestra.core :refer-macros [defn-spec]])
|
||||
[dda.c4k-common.yaml :as yaml]
|
||||
[dda.c4k-common.base64 :as b64]
|
||||
[dda.c4k-common.common :as cm]
|
||||
[dda.c4k-common.predicate :as pd]))
|
||||
[dda.c4k-common.predicate :as p]
|
||||
#?(:cljs [dda.c4k-common.macros :refer-macros [inline-resources]])))
|
||||
|
||||
(s/def ::aws-access-key-id pd/bash-env-string?)
|
||||
(s/def ::aws-secret-access-key pd/bash-env-string?)
|
||||
(s/def ::restic-password pd/bash-env-string?)
|
||||
(s/def ::restic-repository pd/bash-env-string?)
|
||||
(s/def ::aws-access-key-id p/bash-env-string?)
|
||||
(s/def ::aws-secret-access-key p/bash-env-string?)
|
||||
(s/def ::restic-password p/bash-env-string?)
|
||||
(s/def ::restic-new-password p/bash-env-string?)
|
||||
(s/def ::restic-repository p/bash-env-string?)
|
||||
|
||||
(s/def ::config (s/keys :req-un [::restic-repository]))
|
||||
|
||||
(s/def ::auth (s/keys :req-un [::restic-password ::aws-access-key-id ::aws-secret-access-key]
|
||||
:opt-un [::restic-new-password]))
|
||||
|
||||
#?(:cljs
|
||||
(defmethod yaml/load-resource :backup [resource-name]
|
||||
(case resource-name
|
||||
"backup/config.yaml" (rc/inline "backup/config.yaml")
|
||||
"backup/cron.yaml" (rc/inline "backup/cron.yaml")
|
||||
"backup/secret.yaml" (rc/inline "backup/secret.yaml")
|
||||
"backup/backup-restore-deployment.yaml" (rc/inline "backup/backup-restore-deployment.yaml")
|
||||
(throw (js/Error. "Undefined Resource!")))))
|
||||
(get (inline-resources "backup") resource-name)))
|
||||
|
||||
(defn generate-config [my-conf]
|
||||
(defn-spec generate-config p/map-or-seq?
|
||||
[my-conf ::config]
|
||||
(let [{:keys [restic-repository]} my-conf]
|
||||
(->
|
||||
(yaml/load-as-edn "backup/config.yaml")
|
||||
|
|
|
@ -2,6 +2,7 @@ apiVersion: v1
|
|||
kind: ConfigMap
|
||||
metadata:
|
||||
name: backup-config
|
||||
namespace: taiga
|
||||
labels:
|
||||
app.kubernetes.io/name: backup
|
||||
app.kubernetes.io/part-of: taiga
|
||||
|
|
21
src/test/cljc/dda/c4k_taiga/backup_test.cljc
Normal file
21
src/test/cljc/dda/c4k_taiga/backup_test.cljc
Normal file
|
@ -0,0 +1,21 @@
|
|||
(ns dda.c4k-taiga.backup-test
|
||||
(:require
|
||||
#?(:clj [clojure.test :refer [deftest is are testing run-tests]]
|
||||
:cljs [cljs.test :refer-macros [deftest is are testing run-tests]])
|
||||
[clojure.spec.test.alpha :as st]
|
||||
[dda.c4k-taiga.backup :as cut]))
|
||||
|
||||
(st/instrument `cut/generate-secret)
|
||||
(st/instrument `cut/generate-config)
|
||||
(st/instrument `cut/generate-cron)
|
||||
|
||||
(deftest should-generate-config
|
||||
(is (= {:apiVersion "v1"
|
||||
:kind "ConfigMap"
|
||||
:metadata {:name "backup-config"
|
||||
:namespace "taiga"
|
||||
:labels {:app.kubernetes.io/name "backup"
|
||||
:app.kubernetes.io/part-of "taiga"}}
|
||||
:data
|
||||
{:restic-repository "s3:restic-repository"}}
|
||||
(cut/generate-config {:restic-repository "s3:restic-repository"}))))
|
Loading…
Add table
Reference in a new issue