web-dev-qa-db-ja.com

ヘルムで複数の値を設定する方法は?

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

11
online

https://github.com/kubernetes/helm/issues/1987#issuecomment-280497496 によると、中括弧を使用して複数の値を設定します。例:

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

だから、あなたの場合は次のようになります

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

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これが上記の提案を提供する理由です

使用できる文字には制限もあります ドキュメントによる

バックスラッシュを使用して、文字をエスケープできます。 --set name="value1\,value2" となります:

name: "value1,value2"
3
Marc

このコメントに関して ヘルムで複数の値を設定する方法? 私は引用符を使用し、これはうまくいきました:

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