onl*_*ine 4 json yaml prometheus kubernetes-helm
例如,设置alertmanager.ingress.annotations为添加两个项目,这两个方法都不起作用:
$ helm install stable/prometheus \
--set alertmanager.ingress.enabled=true \
--set "alertmanager.ingress.annotations={alb.ingress.kubernetes.io/scheme: internet-facing, alb.ingress.kubernetes.io/tags: Environment=dev,Team=test}"
Error: YAML parse error on prometheus/templates/alertmanager-ingress.yaml: error unmarshaling JSON: json: cannot unmarshal array into Go struct field .annotations of type map[string]string
$ helm install stable/prometheus \
--set alertmanager.ingress.enabled=true \
--set "alertmanager.ingress.annotations={'alb.ingress.kubernetes.io/scheme': 'internet-facing', 'alb.ingress.kubernetes.io/tags': 'Environment=dev,Team=test'}"
Error: YAML parse error on prometheus/templates/alertmanager-ingress.yaml: error unmarshaling JSON: json: cannot unmarshal array into Go struct field .annotations of type map[string]string
Run Code Online (Sandbox Code Playgroud)
那怎么用呢?
Nic*_*lay 13
你想要实现以下(values.yaml从prometheus掌舵图切割):
alertmanager:
ingress:
## If true, alertmanager Ingress will be created
##
enabled: true
## alertmanager Ingress annotations
##
annotations: {
alb.ingress.kubernetes.io/scheme: internet-facing,
alb.ingress.kubernetes.io/tags: 'Environment=dev,Team=test'
}
Run Code Online (Sandbox Code Playgroud)
根据掌舵文档,结构:
alertmanager:
ingress:
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
Run Code Online (Sandbox Code Playgroud)
是
--set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/scheme"=internet-facing
Run Code Online (Sandbox Code Playgroud)
如果您想再添加一个注释,它将是另一个--set语句:
--set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/tags"="Environment=dev\,Team=test"
Run Code Online (Sandbox Code Playgroud)
还有一件事,name: "value1,value2"就是--set name=value1\,value2,这样Environment=dev,Team=test是"Environment=dev\,Team=test".
最后的helm命令是:
helm install stable/prometheus --set alertmanager.ingress.enabled=true --set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/scheme"=internet-facing --set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/tags"="Environment=dev\,Team=test"
Run Code Online (Sandbox Code Playgroud)
ps上面的命令失败,因为您还需要为alertmanager指定域名.正确的是:
helm install stable/prometheus --set alertmanager.ingress.enabled=true --set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/scheme"=internet-facing --set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/tags"="Environment=dev\,Team=test" --set alertmanager.ingress.hosts[0]=alertmanager.domain.com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5337 次 |
| 最近记录: |