【发布时间】:2022-08-11 21:18:35
【问题描述】:
我正在从kube-prometheus-stack helm 图表部署一个监视堆栈,并且我正在尝试配置 alertmanager 以便它具有我在 Slack 通道中发出警报的自定义配置。
pod 中的配置是从/etc/alertmanager/config/alertmanager.yaml 加载的。
从 pod 描述中,该文件是从自动生成的 secret 中加载的:
...
volumeMounts:
- mountPath: /etc/alertmanager/config
name: config-volume
...
volumes:
- name: config-volume
secret:
defaultMode: 420
secretName: alertmanager-prometheus-community-kube-alertmanager-generated
如果我检查秘密,它包含在alertmanager.config 的默认值中找到的默认配置,我打算覆盖它。
如果我将以下配置传递给 alertmanager 以重新安装图表,它不会创建 alertmanager pod:
alertmanager:
config:
global:
resolve_timeout: 5m
route:
group_by: [\'job\', \'alertname\', \'priority\']
group_wait: 10s
group_interval: 1m
routes:
- match:
alertname: Watchdog
receiver: \'null\'
- receiver: \'slack-notifications\'
continue: true
receivers:
- name: \'slack-notifications\'
slack-configs:
- slack_api_url: <url here>
title: \'{{ .Status }} ({{ .Alerts.Firing | len }}): {{ .GroupLabels.SortedPairs.Values | join \" \" }}\'
text: \'<!channel> {{ .CommonAnnotations.summary }}\'
channel: \'#mychannel\'
首先,如果我没有在values.yaml 中传递任何配置,则成功创建了alertmanager pod。
如何正确覆盖 alertmanager 的配置,以便将带有我的自定义配置的正确文件安装到 /etc/alertmanger/config/alertmanager.yaml 中?
标签: kubernetes kubernetes-helm prometheus-alertmanager kube-prometheus-stack