diff --git a/src/main/cljc/dda/c4k_taiga/backup.cljc b/src/main/cljc/dda/c4k_taiga/backup.cljc
index 3d8cba3..da77b15 100644
--- a/src/main/cljc/dda/c4k_taiga/backup.cljc
+++ b/src/main/cljc/dda/c4k_taiga/backup.cljc
@@ -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")
diff --git a/src/main/resources/backup/config.yaml b/src/main/resources/backup/config.yaml
index 36781e7..aaceaad 100644
--- a/src/main/resources/backup/config.yaml
+++ b/src/main/resources/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
diff --git a/src/test/cljc/dda/c4k_taiga/backup_test.cljc b/src/test/cljc/dda/c4k_taiga/backup_test.cljc
new file mode 100644
index 0000000..47703b2
--- /dev/null
+++ b/src/test/cljc/dda/c4k_taiga/backup_test.cljc
@@ -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"}))))
\ No newline at end of file