如何使用helm设置多个值?

问题描述 投票:8回答:2

使用helm install可以在安装图表时设置值,如:

helm install --set favoriteDrink=slurm ./mychart

现在想要设置如下值:

helm install --set aws.subnets="subnet-123456, subnet-654321" ./mychart

但失败了:

Error: failed parsing --set data: key " subnet-654321" has no value

似乎helm--set知道逗号,并检查下一个字符串作为关键。所以在这种情况下设置这样的字符串时不能使用?


Tested this way

helm install charts/mychart \
    --set aws.subnets={subnet-123456,subnet-654321}

得到错误:

Error: This command needs 1 argument: chart name

This way works

helm install charts/mychart \
    --set aws.subnets="subnet-123456\,subnet-654321"

参考

https://github.com/kubernetes/helm/blob/master/docs/using_helm.md#the-format-and-limitations-of---set

string shell kubernetes command-line-interface kubernetes-helm
2个回答
6
投票

根据https://github.com/kubernetes/helm/issues/1987#issuecomment-280497496,您可以使用花括号设置多个值,例如:

--set foo={a,b,c}

所以,在你的情况下,它会是这样的

--set aws.subnets={subnet-123456,subnet-654321}

1
投票

CLI格式和限制可能会有所不同,具体取决于YAML版本的预期。例如,如果YAML清单要求使用值列表填充fields,则YAML将如下所示:

field:
  - value1
  - value2
  - value3 

这将在helm CLI中表达,如此

--set field[0]=value1 --set field[1]=value2 --set field[2]=value3

文档还提到--set field={value1,value2,value3}工作。在某些情况下导致Error: This command needs 1 argument: chart name这就是我提供上述建议的原因

per the documentation使用的字符也有限制:

您可以使用反斜杠来逃避角色; --set name="value1\,value2"将成为:

name: "value1,value2"
© www.soinside.com 2019 - 2024. All rights reserved.