diff --git a/build.py b/build.py index 0ea62c5..781a199 100644 --- a/build.py +++ b/build.py @@ -160,7 +160,6 @@ def inst(project): check=True, ) package_native(project) - run( "sudo install -m=755 target/graalvm/" + project.name + " /usr/local/bin/" + project.name + "", shell=True, diff --git a/infrastructure/backup/image/Dockerfile b/infrastructure/backup/image/Dockerfile index 59a99c5..564b1ee 100644 --- a/infrastructure/backup/image/Dockerfile +++ b/infrastructure/backup/image/Dockerfile @@ -1,4 +1,4 @@ -FROM domaindrivenarchitecture/dda-backup:5.3.0 +FROM domaindrivenarchitecture/dda-backup:5.4.0 ADD resources /tmp RUN /tmp/install.bb diff --git a/infrastructure/backup/image/resources/backup.bb b/infrastructure/backup/image/resources/backup.bb index 1845393..2551205 100755 --- a/infrastructure/backup/image/resources/backup.bb +++ b/infrastructure/backup/image/resources/backup.bb @@ -5,6 +5,7 @@ '[dda.backup.config :as cfg] '[dda.backup.restic :as rc] '[dda.backup.postgresql :as pg] + '[dda.backup.monitoring :as mon] '[dda.backup.backup :as bak]) (def config (cfg/read-config "/usr/local/bin/config.edn")) @@ -22,6 +23,11 @@ [] (bak/backup-db! (:db-config config))) -(prepare!) -(restic-repo-init!) -(restic-backup!) +(try + (mon/backup-start-metrics! (:db-config config)) + (prepare!) + (restic-repo-init!) + (restic-backup!) + (mon/backup-success-metrics! (:db-config config)) + (catch Exception e + (mon/backup-fail-metrics! (:db-config config)))) diff --git a/infrastructure/backup/image/resources/config.edn b/infrastructure/backup/image/resources/config.edn index 722e129..3ba883f 100644 --- a/infrastructure/backup/image/resources/config.edn +++ b/infrastructure/backup/image/resources/config.edn @@ -1,5 +1,8 @@ -{:restic-repo {:password-file #env-or-file "RESTIC_PASSWORD_FILE" - :restic-repository #env-or-file "RESTIC_REPOSITORY"} +{:monitoring {:namespace "keycloak"} + + :restic-repo #merge [#ref [:monitoring] + {:password-file #env-or-file "RESTIC_PASSWORD_FILE" + :restic-repository #env-or-file "RESTIC_REPOSITORY"}] :db-config #merge [#ref [:restic-repo] {:backup-path "pg-database" @@ -12,4 +15,5 @@ :aws-config {:aws-access-key-id #env-or-file "AWS_ACCESS_KEY_ID" :aws-secret-access-key #env-or-file "AWS_SECRET_ACCESS_KEY"} - :dry-run {:dry-run true :debug true}} \ No newline at end of file + :dry-run {:dry-run true :debug true} + } \ No newline at end of file diff --git a/infrastructure/backup/image/resources/install.bb b/infrastructure/backup/image/resources/install.bb index 3f96494..301e714 100755 --- a/infrastructure/backup/image/resources/install.bb +++ b/infrastructure/backup/image/resources/install.bb @@ -14,4 +14,5 @@ (in/install! "list-snapshots.bb") (in/install! "change-password.bb") (in/install! "wait.bb") +(in/install! "monitoring.bb") (ub/cleanup-container!) \ No newline at end of file diff --git a/infrastructure/backup/image/resources/monitoring.bb b/infrastructure/backup/image/resources/monitoring.bb new file mode 100644 index 0000000..b963e93 --- /dev/null +++ b/infrastructure/backup/image/resources/monitoring.bb @@ -0,0 +1,11 @@ +#!/usr/bin/env bb + +(require + '[dda.backup.monitoring :as mon]) + +(def config {:metrics {:kube_job_status_active 0 + :kube_job_status_failed 1 + :kube_job_status_succeeded 0 + :kube_job_status_start_time (/ (System/currentTimeMillis) 1000)}}) + +(mon/send-metrics! config) \ No newline at end of file diff --git a/project.clj b/project.clj index e6a8ff2..bf199dd 100644 --- a/project.clj +++ b/project.clj @@ -4,8 +4,8 @@ :license {:name "Apache License, Version 2.0" :url "https://www.apache.org/licenses/LICENSE-2.0.html"} :dependencies [[org.clojure/clojure "1.12.0"] - [org.clojure/tools.reader "1.5.1"] - [org.domaindrivenarchitecture/c4k-common-clj "9.0.1"]] + [org.clojure/tools.reader "1.5.2"] + [org.domaindrivenarchitecture/c4k-common-clj "10.0.0"]] :target-path "target/%s/" :source-paths ["src/main/cljc" "src/main/clj"] diff --git a/shadow-cljs.edn b/shadow-cljs.edn index 18a18fb..234c1ab 100644 --- a/shadow-cljs.edn +++ b/shadow-cljs.edn @@ -4,7 +4,7 @@ "src/test/cljc" "src/test/cljs" "src/test/resources"] - :dependencies [[org.domaindrivenarchitecture/c4k-common-cljs "9.0.1"] + :dependencies [[org.domaindrivenarchitecture/c4k-common-cljs "10.0.0"] [hickory "0.7.1"]] :builds {:frontend {:target :browser :modules {:main {:init-fn dda.c4k-keycloak.browser/init}} diff --git a/src/main/cljc/dda/c4k_keycloak/keycloak.cljc b/src/main/cljc/dda/c4k_keycloak/keycloak.cljc index 71ed3d8..57193c3 100644 --- a/src/main/cljc/dda/c4k_keycloak/keycloak.cljc +++ b/src/main/cljc/dda/c4k_keycloak/keycloak.cljc @@ -8,7 +8,8 @@ [dda.c4k-common.common :as cm] [dda.c4k-common.base64 :as b64] [dda.c4k-common.ingress :as ing] - [dda.c4k-common.predicate :as cp])) + [dda.c4k-common.predicate :as cp] + [dda.c4k-common.namespace :as ns])) (s/def ::fqdn cp/fqdn-string?) (s/def ::issuer cp/letsencrypt-issuer?) @@ -35,9 +36,7 @@ (defn-spec generate-configmap cp/map-or-seq? [config config?] (let [{:keys [namespace]} config] - (-> - (yaml/load-as-edn "keycloak/configmap.yaml") - (cm/replace-all-matching "NAMESPACE" namespace)))) + (ns/load-and-adjust-namespace "keycloak/configmap.yaml" namespace))) (defn-spec generate-service-headless cp/map-or-seq? [config config?] diff --git a/src/test/cljc/dda/c4k_keycloak/core_test.cljc b/src/test/cljc/dda/c4k_keycloak/core_test.cljc index 3b54199..9e95f43 100644 --- a/src/test/cljc/dda/c4k_keycloak/core_test.cljc +++ b/src/test/cljc/dda/c4k_keycloak/core_test.cljc @@ -22,7 +22,7 @@ (is (not (s/valid? cut/auth? (yaml/load-as-edn "keycloak-test/invalid-auth.yaml"))))) (deftest test-whole-generation - (is (= 29 + (is (= 32 (count (cut/config-objects (yaml/load-as-edn "keycloak-test/valid-config.yaml")))))