From a88a904e121eb9745430f48492d23efc41593a22 Mon Sep 17 00:00:00 2001 From: Jay Phillips Date: Wed, 24 Jun 2026 17:26:45 +0000 Subject: [PATCH] Configure Alertmanager email alerts --- apps/monitoring/alertmanager-email-app.yaml | 23 +++++++ .../alertmanager-secret.yaml | 64 +++++++++++++++++++ .../alertmanager-email/kustomization.yaml | 7 ++ .../alertmanager-email/test-alert.yaml | 19 ++++++ 4 files changed, 113 insertions(+) create mode 100644 apps/monitoring/alertmanager-email-app.yaml create mode 100644 apps/monitoring/alertmanager-email/alertmanager-secret.yaml create mode 100644 apps/monitoring/alertmanager-email/kustomization.yaml create mode 100644 apps/monitoring/alertmanager-email/test-alert.yaml diff --git a/apps/monitoring/alertmanager-email-app.yaml b/apps/monitoring/alertmanager-email-app.yaml new file mode 100644 index 0000000..fc49804 --- /dev/null +++ b/apps/monitoring/alertmanager-email-app.yaml @@ -0,0 +1,23 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: alertmanager-email + namespace: argocd +spec: + project: default + + source: + repoURL: http://git.home.lan/jay/k8s-gitops.git + targetRevision: HEAD + path: apps/monitoring/alertmanager-email + + destination: + server: https://kubernetes.default.svc + namespace: monitoring + + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=false diff --git a/apps/monitoring/alertmanager-email/alertmanager-secret.yaml b/apps/monitoring/alertmanager-email/alertmanager-secret.yaml new file mode 100644 index 0000000..c029bd6 --- /dev/null +++ b/apps/monitoring/alertmanager-email/alertmanager-secret.yaml @@ -0,0 +1,64 @@ +apiVersion: v1 +kind: Secret +metadata: + name: alertmanager-monitoring-kube-prometheus-alertmanager + namespace: monitoring +type: Opaque +stringData: + alertmanager.yaml: | + global: + resolve_timeout: 5m + smtp_smarthost: 'mail.home.lan:25' + smtp_from: 'alertmanager@home.lan' + smtp_hello: 'kubernetes.home.lan' + smtp_require_tls: false + + route: + receiver: jay-email + group_by: + - namespace + - alertname + - severity + group_wait: 30s + group_interval: 5m + repeat_interval: 4h + routes: + - receiver: "null" + matchers: + - alertname = "Watchdog" + + receivers: + - name: "null" + + - name: jay-email + email_configs: + - to: 'jay@home.lan' + send_resolved: true + headers: + From: 'Kubernetes Alertmanager ' + To: 'Jay ' + Subject: '[Kubernetes] {{ .Status | toUpper }}: {{ .CommonLabels.alertname }}' + + inhibit_rules: + - source_matchers: + - severity = critical + target_matchers: + - severity = warning + equal: + - namespace + - alertname + + - source_matchers: + - severity = warning + target_matchers: + - severity = info + equal: + - namespace + - alertname + + - source_matchers: + - alertname = InfoInhibitor + target_matchers: + - severity = info + equal: + - namespace diff --git a/apps/monitoring/alertmanager-email/kustomization.yaml b/apps/monitoring/alertmanager-email/kustomization.yaml new file mode 100644 index 0000000..7af7c38 --- /dev/null +++ b/apps/monitoring/alertmanager-email/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - alertmanager-secret.yaml + - test-alert.yaml + - alertmanager-email diff --git a/apps/monitoring/alertmanager-email/test-alert.yaml b/apps/monitoring/alertmanager-email/test-alert.yaml new file mode 100644 index 0000000..75fb7f7 --- /dev/null +++ b/apps/monitoring/alertmanager-email/test-alert.yaml @@ -0,0 +1,19 @@ +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + name: alertmanager-email-test + namespace: monitoring + labels: + release: monitoring +spec: + groups: + - name: jay-email-test.rules + rules: + - alert: JayEmailTest + expr: vector(1) + for: 1m + labels: + severity: warning + annotations: + summary: "Kubernetes email alert test" + description: "This is a temporary test alert from Alertmanager to jay@home.lan."