diff --git a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet index 635f34eb66766e7c9b4dee4441178d3dddf89bd7..48ecc4a02523a874a8e07a7a3ab5e934c9ec5a1c 100644 --- a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet +++ b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet @@ -18,6 +18,23 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; global: { resolve_timeout: '5m', }, + inhibit_rules: [{ + source_match: { + severity: 'critical', + }, + target_match_re: { + severity: 'warning|info', + }, + equal: ['alertname'], + }, { + source_match: { + severity: 'warning', + }, + target_match_re: { + severity: 'info', + }, + equal: ['alertname'], + }], route: { group_by: ['namespace'], group_wait: '30s', @@ -48,7 +65,8 @@ local k = import 'ksonnet/ksonnet.beta.4/k.libsonnet'; local secret = k.core.v1.secret; if std.type($._config.alertmanager.config) == 'object' then - secret.new('alertmanager-' + $._config.alertmanager.name, { 'alertmanager.yaml': std.base64(std.manifestYamlDoc($._config.alertmanager.config)) }) + + secret.new('alertmanager-' + $._config.alertmanager.name, {}) + .withStringData({ 'alertmanager.yaml': std.manifestYamlDoc($._config.alertmanager.config) }) + secret.mixin.metadata.withNamespace($._config.namespace) else secret.new('alertmanager-' + $._config.alertmanager.name, { 'alertmanager.yaml': std.base64($._config.alertmanager.config) }) + diff --git a/manifests/alertmanager-secret.yaml b/manifests/alertmanager-secret.yaml index e9fb9f7d7abfdd6c7462f253c71a87f3cf9195a2..8ab686b985d1e4fc5963b1d71382e2aa570eef17 100644 --- a/manifests/alertmanager-secret.yaml +++ b/manifests/alertmanager-secret.yaml @@ -1,8 +1,37 @@ apiVersion: v1 -data: - alertmanager.yaml: Imdsb2JhbCI6CiAgInJlc29sdmVfdGltZW91dCI6ICI1bSIKInJlY2VpdmVycyI6Ci0gIm5hbWUiOiAibnVsbCIKInJvdXRlIjoKICAiZ3JvdXBfYnkiOgogIC0gIm5hbWVzcGFjZSIKICAiZ3JvdXBfaW50ZXJ2YWwiOiAiNW0iCiAgImdyb3VwX3dhaXQiOiAiMzBzIgogICJyZWNlaXZlciI6ICJudWxsIgogICJyZXBlYXRfaW50ZXJ2YWwiOiAiMTJoIgogICJyb3V0ZXMiOgogIC0gIm1hdGNoIjoKICAgICAgImFsZXJ0bmFtZSI6ICJXYXRjaGRvZyIKICAgICJyZWNlaXZlciI6ICJudWxsIg== +data: {} kind: Secret metadata: name: alertmanager-main namespace: monitoring +stringData: + alertmanager.yaml: |- + "global": + "resolve_timeout": "5m" + "inhibit_rules": + - "equal": + - "alertname" + "source_match": + "severity": "critical" + "target_match_re": + "severity": "warning|info" + - "equal": + - "alertname" + "source_match": + "severity": "warning" + "target_match_re": + "severity": "info" + "receivers": + - "name": "null" + "route": + "group_by": + - "namespace" + "group_interval": "5m" + "group_wait": "30s" + "receiver": "null" + "repeat_interval": "12h" + "routes": + - "match": + "alertname": "Watchdog" + "receiver": "null" type: Opaque