From 7498ff42eadd63ed8fb8ae1c2fec6b358a0eb3b8 Mon Sep 17 00:00:00 2001 From: Michael Jerger <michael.jerger@meissa-gmbh.de> Date: Thu, 9 Jan 2025 15:34:02 +0100 Subject: [PATCH] add grafana to provs --- src/dda/build/provs.clj | 4 +++- src/dda/build/provs/domain.clj | 13 ++++++++++--- test/dda/build/provs/domain_test.clj | 7 ++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/dda/build/provs.clj b/src/dda/build/provs.clj index 5374d8e..fbe6d9d 100644 --- a/src/dda/build/provs.clj +++ b/src/dda/build/provs.clj @@ -18,7 +18,9 @@ (s/def ::provs (s/merge ::c4k/c4k (s/keys :req-un [::domain/email] - :opt-un [::domain/echo ::domain/k3s-output-filename ::domain/k3s-provision-user]))) + :opt-un [::domain/echo ::domain/k3s-output-filename ::domain/k3s-provision-user + ::domain/k3s-grafana-user ::domain/k3s-grafana-token + ::domain/k3s-hcloudApiToken ::domain/k3s-encryptionPassphrase]))) (defn-spec run-provs-server! nil? [devops ::provs diff --git a/src/dda/build/provs/domain.clj b/src/dda/build/provs/domain.clj index eb77ada..2003f33 100644 --- a/src/dda/build/provs/domain.clj +++ b/src/dda/build/provs/domain.clj @@ -18,10 +18,12 @@ (s/def ::k3s-provision-user pred/bash-env-string?) (s/def ::k3s-hcloudApiToken string?) (s/def ::k3s-encryptionPassphrase string?) +(s/def ::k3s-grafana-user string?) +(s/def ::k3s-grafana-token string?) (s/def ::config (s/merge ::c4k-d/config (s/keys :req-un [::email ::echo ::k3s-output-filename ::k3s-auth-input ::k3s-provision-user] - :opt-un [::k3s-hcloudApiToken ::k3s-encryptionPassphrase]))) + :opt-un [::k3s-hcloudApiToken ::k3s-encryptionPassphrase ::k3s-grafana-user ::k3s-grafana-token]))) (s/def ::node (s/keys :req-un [::ipv4 ::ipv6])) @@ -58,7 +60,7 @@ (defn-spec create-k3s-config ::server-config [config ::config tf-out ::td/tf-out] - (let [{:keys [stage email echo]} config + (let [{:keys [stage email echo name module]} config letsencrypt-endpoint (if (= stage "prod") "prod" "staging") values (:value (:out tf-out)) {:keys [fqdn ipv4 ipv6]} values] @@ -75,4 +77,9 @@ {:hcloudApiToken {:source "PLAIN" :parameter (:k3s-hcloudApiToken config)} :encryptionPassphrase {:source "PLAIN" - :parameter (:k3s-encryptionPassphrase config)}}})))) + :parameter (:k3s-encryptionPassphrase config)}}}) + (when (and (contains? config :k3s-grafana-token) + (contains? config :k3s-grafana-user)) + {:grafana {:user (:k3s-grafana-user config) + :password {:source "PLAIN", :parameter (:k3s-grafana-token config)} + :cluster (str name "-" module)}})))) diff --git a/test/dda/build/provs/domain_test.clj b/test/dda/build/provs/domain_test.clj index 8b6e4b7..df4d28c 100644 --- a/test/dda/build/provs/domain_test.clj +++ b/test/dda/build/provs/domain_test.clj @@ -33,6 +33,9 @@ :node {:ipv4 "91.107.220.172", :ipv6 "2a01:4f8:c17:86c6::1"}, :certmanager {:email "test@test.t", :letsencryptEndpoint "staging"}, :echo false, + :grafana {:user "grafana-user" + :password {:source "PLAIN", :parameter "grafana-token"} + :cluster "dda-backup-"} :hetzner {:hcloudApiToken {:source "PLAIN", :parameter "hcloud-token"}, :encryptionPassphrase {:source "PLAIN", :parameter "passphrase"}}} @@ -50,6 +53,8 @@ :k3s-provision-user "root" :k3s-hcloudApiToken "hcloud-token" :k3s-encryptionPassphrase "passphrase" + :k3s-grafana-user "grafana-user" + :k3s-grafana-token "grafana-token" :c4k-config-input "config.yaml" :c4k-auth-input "auth.yaml" :c4k-output "out.yaml" @@ -64,7 +69,7 @@ (is (= {:fqdn "cloud.test.meissa.de", :node {:ipv4 "91.107.220.172", :ipv6 "2a01:4f8:c17:86c6::1"}, :certmanager {:email "test@test.t", :letsencryptEndpoint "staging"}, - :echo false,} + :echo false} (cut/create-k3s-config {:name "dda-backup" :project-root-path "../.."