O helm cli não parece suportar um valor que contenha uma vírgula no sinalizador definido para instalação ou atualização.
$ helm install --set greeting='hello, world' .
Error: failed parsing --set data: key " world" has no value
Parece que o analisador está tentando procurar chaves adicionais se encontrar uma vírgula no valor. Tentei várias estratégias de citação ou escape e todas parecem ter o mesmo problema.
$ helm install --set greeting="hello, world" .
Error: failed parsing --set data: key " world" has no value
$ helm install --set "greeting=hello, world" .
Error: failed parsing --set data: key " world" has no value
$ helm install --set greeting=hello,\ world .
Error: failed parsing --set data: key " world" has no value
A solução alternativa é usar um arquivo de valor em vez do sinalizador definido, mas para o meu caso de uso de passar arquivos de configuração para o configmaps, é mais fácil e mais limpo gerenciar os arquivos de configuração separadamente e colocá-los em um sinalizador definido do que armazená-los em um invólucro yaml ou construa esse invólucro instantaneamente.
Funciona bem para mim com \,
.
><> helm template chart/draftd/ --set image.tag="hello\, world" | grep hello
image: "microsoft/draft:hello, world"
Isso é observado na documentação em https://docs.helm.sh/using_helm/#the -format-and-limit-of-set, então vou encerrar isso como resolvido. Abra novamente se essa correção não funcionar para você. Obrigado!
Hmm, eu poderia jurar que tentei escapar da vírgula, mas acabei de voltar para a versão 2.4.0 e funcionou em todas elas. Eu estava claramente enganado, meu erro.
Se alguém mais descobrir isso pelo Google como eu, o link atualizado para os documentos de --set
no Helm 2 é: https://v2.helm.sh/docs/using_helm/#the -format-and -limitações-de-conjunto
Comentários muito úteis
Funciona bem para mim com
\,
.