diff --git a/hosts/spore/secrets/slack-bot-token.age b/hosts/spore/secrets/slack-bot-token.age new file mode 100644 index 00000000..24da8557 --- /dev/null +++ b/hosts/spore/secrets/slack-bot-token.age @@ -0,0 +1,8 @@ +age-encryption.org/v1 +-> ssh-ed25519 2AxgaQ oKkoEjYcgXktA9sNVH5mXQhVJ4HzeLsIR1ZrZ37CNkE +WIi/YJAQmjM8gWUx2uQXKWi+I78cOC3+tr863YJIbM4 +-> ssh-ed25519 3EWhnQ P/dtWfDXzTku43X2CUDppuD4HPVNbzpyT/R7zXrNlz8 +1Xn1iNl1ZpSQjV8SGgN5Vm5FkIwmXK5fhwZ7zPIakVk +--- 5VZabemaH3g5yvwDDJjRnjmPKmRNKVUeeImQgeW0FL0 +a]d΂3CVY* +NE8` wYjUe;χL)J&~UYEQyT \ No newline at end of file diff --git a/hosts/spore/services/grafana.nix b/hosts/spore/services/grafana.nix index b385036c..3afa475f 100644 --- a/hosts/spore/services/grafana.nix +++ b/hosts/spore/services/grafana.nix @@ -3,6 +3,13 @@ pkgs, ... }: { + age.secrets.slack-bot-token = { + file = ./../secrets/slack-bot-token.age; + mode = "440"; + owner = "grafana"; + group = "grafana"; + }; + age.secrets.grafana-client-secret = { file = ./../secrets/grafana-client-secret.age; mode = "440"; @@ -55,6 +62,9 @@ admin_email = "corey@zx.dev"; secret_key = "$__file{${config.age.secrets.grafana-secret-key.path}}"; }; + unified_alerting = { + resolve_timeout = "1m"; + }; }; provision = { enable = true; @@ -65,6 +75,26 @@ disableDeletion = true; } ]; + alerting.contactPoints.settings.contactPoints = [ + { + name = "slack"; + receivers = [ + { + uid = "slack"; + type = "slack"; + settings = { + token = "$__file{${config.age.secrets.slack-bot-token.path}}"; + recipient = "#updates"; + username = "Grafana"; + icon_emoji = ":grafana:"; + title = ''{{ if .Alerts.Firing }}[FIRING] {{ .GroupLabels.alertname }}{{ else }}[RESOLVED] {{ .GroupLabels.alertname }}{{ end }}''; + text = '' {{ range .Alerts }}• {{ .Labels.alertname }}: {{ .Annotations.summary }} + {{ end }}''; + }; + } + ]; + } + ]; datasources.settings.datasources = [ { name = "Prometheus"; diff --git a/lib/secrets/spore.nix b/lib/secrets/spore.nix index c1814d85..7c414e3b 100644 --- a/lib/secrets/spore.nix +++ b/lib/secrets/spore.nix @@ -5,6 +5,7 @@ in { "hosts/spore/secrets/homepage-env.age".publicKeys = keys; "hosts/spore/secrets/grafana-client-secret.age".publicKeys = keys; "hosts/spore/secrets/grafana-secret-key.age".publicKeys = keys; + "hosts/spore/secrets/slack-bot-token.age".publicKeys = keys; "hosts/spore/secrets/mastodon-s3-env.age".publicKeys = keys; "hosts/spore/secrets/mastodon-secret-key-base.age".publicKeys = keys; "hosts/spore/secrets/mastodon-vapid-public-key.age".publicKeys = keys;