我使用 Helm(和 ArgoCD)配置了 Alertmanager。 我需要插入 smtp_auth_password 值,但不是纯文本。
smtp_auth_username: 'apikey'
smtp_auth_password: $API_KEY
我怎样才能实现它?我听说过“外部 secret ”,但这应该是最简单的方法?
最佳答案
解决方案
如果您使用包含此警报管理器的prometheus-community/prometheus
chart作为依赖项,那么您可以执行以下操作:
在运行alertmanager pod的同一命名空间中创建 secret :
k create secret generic alertmanager-secrets \
--from-literal="opsgenie-api-key=YOUR-OPSGENIE-API-KEY" \
--from-literal="slack-api-url=https://hooks.slack.com/services/X03R2856W/A14T19TKEGM/...."
通过使用 extraSecretMounts 挂载该 secret
alertmanager:
enabled: true
service:
annotations:
prometheus.io/scrape: "true"
# contains secret values for opsgenie and slack receivers
extraSecretMounts:
- name: secret-files
mountPath: /etc/secrets
subPath: ""
secretName: alertmanager-secrets
readOnly: true
在您的接收器中使用它们:
receivers:
- name: slack-channel
slack_configs:
- channel: '#client-ccf-ccl-alarms'
api_url_file: /etc/secrets/slack-api-url <-------------------THIS
title: '{{ template "default.title" . }}'
text: '{{ template "default.description" . }}'
pretext: '{{ template "slack.pretext" . }}'
color: '{{ template "slack.color" . }}'
footer: '{{ template "slack.footer" . }}'
send_resolved: true
actions:
- type: button
text: "Query :mag:"
url: '{{ template "alert_query_url" . }}'
- type: button
text: "Silence :no_bell:"
url: '{{ template "alert_silencer_url" . }}'
- type: button
text: "Karma UI :mag:"
url: '{{ template "alert_karma_url" . }}'
- type: button
text: "Runbook :green_book:"
url: '{{ template "alert_runbook_url" . }}'
- type: button
text: "Grafana :chart_with_upwards_trend:"
url: '{{ template "alert_grafana_url" . }}'
- type: button
text: "KB :mag:"
url: '{{ template "alert_kb_url" . }}'
- name: opsgenie
opsgenie_configs:
- send_resolved: true
api_key_file: /etc/secrets/opsgenie-api-key <-------------------THIS
message: '{{ template "default.title" . }}'
description: '{{ template "default.description" . }}'
source: '{{ template "opsgenie.default.source" . }}'
priority: '{{ template "opsgenie.default.priority" . }}'
tags: '{{ template "opsgenie.default.tags" . }}'
如果您想使用 email_config 的电子邮件功能 然后只需使用相同的方法:
[ auth_password_file: <string> | default = global.smtp_auth_password_file ]
关于kubernetes - 如何在alertmanager配置文件中插入 secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74254241/