如何在头盔安装中通过--set参数传递prometheus.io/scrape值

时间:2019-08-10 20:27:12

标签: kubernetes-helm

使用https://github.com/helm/charts/tree/master/stable/elasticsearch-exporter并尝试通过--set参数传递下面的部分,但到目前为止还算不上成功。

podAnnotations: 
  prometheus.io/scrape: "true"
  prometheus.io/port: "9108"

到目前为止,我尝试使用helm install --name prometheus-elasticsearch-exporter stable/elasticsearch-exporter

--set podAnnotations."prometheus.io/scrape"=true,podAnnotations."prometheus.io/port"=9108

--set podAnnotations[0]."prometheus.io/scrape"=true,podAnnotations[0]."prometheus.io/port"=9108

--set podAnnotations."prometheus\.io\/scrape"=true,podAnnotations."prometheus\.io\/port"=9108

--set podAnnotations={"prometheus.io/scrape":true,"prometheus.io/port":9108}

--set podAnnotations={"prometheus.io/scrape"=true\,"prometheus.io/port"=9108}

不幸的是,这些都不起作用。

更多详细信息,请访问here

1 个答案:

答案 0 :(得分:3)

尝试以下操作:

--set-string podAnnotations."prometheus\.io/scrape"=true \
--set-string podAnnotations."prometheus\.io/port"=9108

您需要正确地转义注释键字符串,如链接文档中所述:

  

同样,您也可以转义点序列,当图表使用toYaml函数解析注释,标签和节点选择器时,这可能会派上用场。 --set nodeSelector."kubernetes\.io/role"=master的语法变为

nodeSelector:
  kubernetes.io/role: master

您应该使用set-string而不是set,因为您希望注释值是字符串而不是布尔值true和数字9018

这是我使用这些标志的结果:

$ helm template . \
  --set-string podAnnotations."prometheus\.io/scrape"=true \
  --set-string podAnnotations."prometheus\.io/port"=9108 \
  | grep -C 5 annotations
  template:
    metadata:
      labels:
        app: elasticsearch-exporter
        release: "release-name"
      annotations:
        prometheus.io/port: "9108"
        prometheus.io/scrape: "true"

    spec:
      restartPolicy: Always