使用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
知道逗号,
并检查下一个字符串作为关键。所以在这种情况下设置这样的字符串时不能使用?
helm install charts/mychart \
--set aws.subnets={subnet-123456,subnet-654321}
得到错误:
Error: This command needs 1 argument: chart name
helm install charts/mychart \
--set aws.subnets="subnet-123456\,subnet-654321"
根据https://github.com/kubernetes/helm/issues/1987#issuecomment-280497496,您可以使用花括号设置多个值,例如:
--set foo={a,b,c}
所以,在你的情况下,它会是这样的
--set aws.subnets={subnet-123456,subnet-654321}
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"