如何为 helm 安装设置注释

Gro*_*Src 5 go kubernetes-helm

我正在尝试安装图表stable/efs-provisioner,并且我想应用注释,以便在 datadog 中正确标记部署。

Datadog需要注释ad.datadoghq.com/tags: '{"env": "staging"}'

我尝试了以下各种咒语,但我不断收到以下错误。

$ helm install efs-provisioner stable/efs-provisioner \
  --set efsProvisioner.efsFileSystemId=fs-a1b2c3d4 \ 
  --set efsProvisioner.awsRegion=us-east-1 \
  --set annotations."ad\.datadoghq\.com/tags"="{\'env\': \'staging\'}"
Run Code Online (Sandbox Code Playgroud)

错误:

Error: YAML parse error on efs-provisioner/templates/storageclass.yaml: 
error unmarshaling JSON: while decoding JSON: 
json: cannot unmarshal array into Go struct field .metadata.annotations of type string
Run Code Online (Sandbox Code Playgroud)

Ami*_*pta 8

假设您希望输出如下所示:

$ helm template efs-provisioner stable/efs-provisioner <flags> \
  | grep -m 1 -C 4 datadog
    chart: efs-provisioner-0.10.0
    release: "efs-provisioner"
    heritage: "Helm"
  annotations:
    ad.datadoghq.com/tags: '{"env": "staging"}'
Run Code Online (Sandbox Code Playgroud)

您需要转义{and 并使用\"而不是\'

$ helm template efs-provisioner stable/efs-provisioner \
  --set efsProvisioner.efsFileSystemId=fs-a1b2c3d4 \
  --set efsProvisioner.awsRegion=us-east-1 \
  --set annotations."ad\.datadoghq\.com/tags"="\{\"env\": \"staging\"\}" 
Run Code Online (Sandbox Code Playgroud)