Utilisez helm
install peut définir une valeur lors de l'installation d'un graphique comme:
helm install --set favoriteDrink=slurm ./mychart
Maintenant, voulez définir une valeur comme:
helm install --set aws.subnets="subnet-123456, subnet-654321" ./mychart
Mais a échoué:
Error: failed parsing --set data: key " subnet-654321" has no value
Il semble que helm
soit --set
connaître la virgule ,
et vérifiez la chaîne suivante comme clé. Vous ne pouvez donc pas l'utiliser dans ce cas lorsque vous définissez une telle chaîne?
helm install charts/mychart \
--set aws.subnets={subnet-123456,subnet-654321}
Vous avez une erreur:
Error: This command needs 1 argument: chart name
helm install charts/mychart \
--set aws.subnets="subnet-123456\,subnet-654321"
Selon https://github.com/kubernetes/helm/issues/1987#issuecomment-280497496 , vous définissez plusieurs valeurs à l'aide d'accolades, par exemple:
--set foo={a,b,c}
Donc, dans votre cas, ce serait comme ça
--set aws.subnets={subnet-123456,subnet-654321}
Le format CLI et les limitations peuvent varier en fonction de ce qui serait attendu dans une version YAML. Par exemple, si le manifeste YAML nécessite que fields
soit rempli avec une liste de valeurs, le YAML ressemblera à ceci:
field:
- value1
- value2
- value3
Cela serait exprimé dans la CLI de la barre comme si
--set field[0]=value1 --set field[1]=value2 --set field[2]=value3
La documentation fait également référence à --set field={value1,value2,value3}
travail. Dans certains cas, cela se traduit par Error: This command needs 1 argument: chart name
c'est pourquoi je fais la suggestion ci-dessus
Il existe également des limitations quant aux caractères pouvant être utilisés selon la documentation :
Vous pouvez utiliser une barre oblique inverse pour échapper aux personnages;
--set name="value1\,value2"
va devenir:name: "value1,value2"
Concernant ce commentaire Comment définir plusieurs valeurs avec Helm? J'ai utilisé des guillemets et cela a fonctionné:
--set aws.subnets="{subnet-123456,subnet-654321}"