如何使用helm设置多个值?

时间:2018-01-18 07:57:29

标签: string shell kubernetes command-line-interface kubernetes-helm

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

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' s --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/blob/master/docs/using_helm.md#the-format-and-limitations-of---set

4 个答案:

答案 0 :(得分:5)

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

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

所以,在你的情况下,它就像这样

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

答案 1 :(得分:1)

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

field:
  - value1
  - value2
  - value3 

这将像这样在掌舵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"

答案 2 :(得分:0)

关于此评论How to set multiple values with helm?,我使用了引号,并且有效:

React-Select

答案 3 :(得分:0)

通过合并this更改,Helm现在支持将多个--set命令与helm install命令一起使用。

通过上面提到的链接:

  

经过手动测试,看起来很棒!

⇒  helm install --dry-run --debug docs/examples/alpine \
  --set foo=bar \
  --set bar=baz,baz=lurman \
  --set foo=banana

SERVER: "local4host:44134"
CHART PATH: /Users/mattbutcher/Code/Go/src/k8s.io/helm/docs/examples/alpine
NAME:   masked-monkey
REVISION: 1
RELEASED: Thu Jan 12 17:09:07 2017
CHART: alpine-0.1.0
USER-SUPPLIED VALUES:
bar: baz
baz: lurman
foo: banana

COMPUTED VALUES:
Name: my-alpine
bar: baz
baz: lurman
foo: banana
...
  

按预期,最后一个--set将取代第一个-

P.S:如果您不喜欢Helm,请升级您的Helm版本。 Helm-v3.0.1 对我来说非常合适。