我正在尝试安装带有 opsgenie 通知的 grafana helm 图表,如下所示
helm install stable/grafana -n grafana --namespace monitoring --set-string notifiers."notifiers.yaml"="notifiers:
- name: opsgenie-notifier
type: opsgenie
uid: notifier-1
settings:
apiKey: some-key
apiUrl: https://some-server/alerts"
当我检查配置映射时,我看到该值在开头设置了一个额外的管道 -->|-
apiVersion: v1
data:
notifiers.yaml: |
|-
notifiers:
- name: opsgenie-notifier
type: opsgenie
uid: notifier-1
settings:
apiKey: some-key
apiUrl: https://some-server/alerts
kind: ConfigMap
metadata:
creationTimestamp: "2019-08-27T00:32:40Z"
labels:
app: grafana
chart: grafana-3.5.10
heritage: Tiller
release: grafana
name: grafana
namespace: monitoring
检查源代码 - https://github.com/helm/charts/blob/master/stable/grafana/templates/configmap.yaml,我不知道为什么。下面的源代码应该逐字打印值,但它增加了一个额外的行 --> |-,导致 grafana 服务器崩溃,因为它无法读取配置。
{{- if .Values.notifiers }}
{{- range $key, $value := .Values.notifiers }}
{{ $key }}: |
{{ toYaml $value | indent 4 }}
{{- end -}}
{{- end -}}
我已经尝试过使用--set,--set-file和--set-string。它同样的行为。
实现此目的的简单方法是使用 values.yaml 文件,如下所示
notifiers:
notifiers.yaml:
notifiers:
- name: opsgenie-notifier
type: opsgenie
uid: notifier-1
settings:
apiKey: some-key
apiUrl: https://some-server/alerts
并通过安装为
helm install stable/grafana -n grafana --namespace monitoring --values values.yaml
您可以通过 --set/--set-string 标志进行操作,如下所示
helm install stable/grafana -n grafana --namespace monitoring
--set notifiers."notifiers.yaml".notifiers[0].name="opsgenie-notifier"
--set notifiers."notifiers.yaml".notifiers[0].type="opsgenie"
--set notifiers."notifiers.yaml".notifiers[0].uid="notifier-1"
--set notifiers."notifiers.yaml".notifiers[0].settings.apiKey="some-key"
--set notifiers."notifiers.yaml".notifiers[0].settings.apiUrl="https://some-server/alerts"