web-dev-qa-db-ja.com

--setを使用してPrometheusチャートで値を設定する方法は?

たとえば、set alertmanager.ingress.annotations 2つのアイテムを追加するには、これら2つの方法の両方が機能しません。

$ 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

それで、それをどのように使用するのですか?

5
online

次のことを達成したい(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'
    }

ヘルムドキュメント によると、構造は次のとおりです。

alertmanager:
  ingress:
    annotations:
      alb.ingress.kubernetes.io/scheme: internet-facing

です

--set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/scheme"=internet-facing

もう1つの注釈を追加する場合は、もう1つの--setステートメントになります。

--set alertmanager.ingress.annotations."alb\.ingress\.kubernetes\.io/tags"="Environment=dev\,Team=test"

そしてもう1つ、name: "value1,value2"--set name=value1\,value2なので、Environment=dev,Team=test"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のドメイン名も指定する必要があるため、上記のコマンドは失敗します。正しいものは次のとおりです。

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
15
Nickolay