如何使用--set设置普罗米修斯图表的值? [英] How to use --set to set values with Prometheus chart?
问题描述
例如,设置alertmanager.ingress.annotations
以添加两个项目,这两种方法都不起作用:
For example, set alertmanager.ingress.annotations
to add two items, both of these two methods not work:
$ 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
那怎么用呢?
推荐答案
您要实现以下目标(从prometheus
舵图的values.yaml
切出):
You want to achieve the following (cut from values.yaml
from prometheus
helm chart):
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'
}
根据头盔文档,结构:>
According to helm documentation, the structure:
alertmanager:
ingress:
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
是
--set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/scheme"=internet-facing
如果您要添加一个附加注释,它将是另一个--set
语句:
If you want to add one more annotation, it will be one more --set
statement:
--set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/tags"="Environment=dev\,Team=test"
还有一件事,name: "value1,value2"
是--set name=value1\,value2
,所以Environment=dev,Team=test
是"Environment=dev\,Team=test"
.
And one more thing, name: "value1,value2"
is --set name=value1\,value2
, so Environment=dev,Team=test
is "Environment=dev\,Team=test"
.
最终的掌舵命令是:
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"
p.s.上面的命令失败,因为您还需要为Alertmanager指定域名. 正确的是:
p.s. Above command fails, because you need to specify domain name for alertmanager as well. The correct one is:
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
这篇关于如何使用--set设置普罗米修斯图表的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!