add grafana to provs

This commit is contained in:
Michael Jerger 2025-01-09 15:34:02 +01:00
parent ff881848c6
commit 7498ff42ea
3 changed files with 19 additions and 5 deletions
src/dda/build
test/dda/build/provs

View file

@ -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

View file

@ -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)}}))))

View file

@ -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 "../.."