Skip to content

Commit fe3d87a

Browse files
authored
fix(base-cluster/monitoring): don't configure route without receiver (#1024)
1 parent 54a7cd7 commit fe3d87a

File tree

1 file changed

+32
-28
lines changed

1 file changed

+32
-28
lines changed

charts/base-cluster/templates/monitoring/kube-prometheus-stack/_alertmanager-config.yaml

+32-28
Original file line numberDiff line numberDiff line change
@@ -33,36 +33,40 @@ config:
3333
global:
3434
pagerduty_url: {{ .Values.monitoring.prometheus.alertmanager.receivers.pagerduty.url | required "You need to provide the `.Values.monitoring.promteheus.alertmanager.receivers.pagerduty.url`" | quote }}
3535
{{- end }}
36-
receivers:
37-
{{- if .Values.monitoring.prometheus.alertmanager.receivers.pagerduty.enabled }}
38-
- name: pagerduty
39-
pagerduty_configs:
40-
- routing_key: {{ .Values.monitoring.prometheus.alertmanager.receivers.pagerduty.integrationKey | required "You need to provide the `.Values.monitoring.prometheus.alertmanager.receivers.pagerduty.integrationKey`" }}
41-
send_resolved: true
42-
http_config:
43-
follow_redirects: true
44-
{{- end }}
45-
{{- if and .Values.monitoring.deadMansSwitch.enabled .Values.global.baseDomain .Values.global.clusterName }}
46-
- name: healthchecks.io
47-
webhook_configs:
48-
- url: {{ printf "https://hc-ping.com/%s/k8s-cluster-%s-%s-monitoring" .Values.monitoring.deadMansSwitch.pingKey (.Values.global.baseDomain | replace "." "-") .Values.global.clusterName }}
49-
send_resolved: false
50-
{{- end }}
51-
- name: "null"
52-
route:
53-
{{- if .Values.monitoring.prometheus.alertmanager.receivers.pagerduty.enabled }}
36+
{{- $receivers := dict "null" (dict) -}}
37+
{{- if .Values.monitoring.prometheus.alertmanager.receivers.pagerduty.enabled -}}
38+
{{- $receivers = set $receivers "pagerduty" (dict
39+
"pagerduty_configs" (list (dict
40+
"routing_key" (.Values.monitoring.prometheus.alertmanager.receivers.pagerduty.integrationKey | required "You need to provide the `.Values.monitoring.prometheus.alertmanager.receivers.pagerduty.integrationKey`")
41+
"send_resolved" true
42+
"http_config" (dict "follow_redirects" true)
43+
)
44+
)
45+
)
46+
-}}
47+
{{- end -}}
48+
{{- if and .Values.monitoring.deadMansSwitch.enabled .Values.global.baseDomain .Values.global.clusterName -}}
49+
{{- $receivers = set $receivers "healthchecks.io" (dict
50+
"webhook_configs" (list (dict
51+
"url" (printf "https://hc-ping.com/%s/k8s-cluster-%s-%s-monitoring" .Values.monitoring.deadMansSwitch.pingKey (.Values.global.baseDomain | replace "." "-") .Values.global.clusterName)
52+
"send_resolved" false
53+
)
54+
)
55+
)
56+
-}}
57+
{{- end -}}
58+
{{- $receiversList := list -}}
59+
{{- range $name, $receiver := $receivers -}}
60+
{{- $receiversList = append $receiversList (mustMerge (dict "name" $name) $receiver) -}}
61+
{{- end }}
62+
receivers: {{- $receiversList | toYaml | nindent 4 }}
63+
route: {{- if hasKey $receivers "pagerduty" }}
5464
receiver: pagerduty
5565
{{- end }}
56-
routes:
57-
{{- if .Values.monitoring.deadMansSwitch.enabled }}
58-
- match:
59-
alertname: Watchdog
60-
receiver: healthchecks.io
61-
group_interval: 1m
62-
repeat_interval: 1m
66+
{{- $routes := list (dict "match" (dict "alertname" "InfoInhibitor") "receiver" "null") -}}
67+
{{- if hasKey $receivers "healthchecks.io" -}}
68+
{{- $routes = append $routes (dict "match" (dict "alertname" "Watchdog") "receiver" "healthchecks.io" "group_interval" "1m" "repeat_interval" "1m") -}}
6369
{{- end }}
64-
- match:
65-
alertname: InfoInhibitor
66-
receiver: "null"
70+
routes: {{- $routes | toYaml | nindent 6 }}
6771
{{- end }}
6872
{{- end -}}

0 commit comments

Comments
 (0)