如何通过CLI命令行覆盖Helm配置中的环境变量
问题根因
你在values.yaml中定义的env是数组(列表)类型,但使用--set env.WORD=tree的语法是将env作为映射(Map)类型操作,两者类型不匹配,因此触发类型转换报错。
正确解决方案
方案1:通过数组下标修改指定环境变量(推荐)
你的WORD环境变量是env数组的第1个元素(数组下标从0开始计数),直接修改对应下标的value字段即可:
helm install deployment2 mychartname --values=.helm/deployment/values.yaml --set env[0].value=tree
方案2:重定义整个env数组
如果需要调整环境变量的配置结构,可以直接赋值整个数组的所有元素:
helm install deployment2 mychartname --values=.helm/deployment/values.yaml --set env[0].name=WORD,env[0].value=tree
如果有多个环境变量,依次按下标递增配置即可,示例:
--set env[0].name=WORD,env[0].value=tree,env[1].name=OTHER_VAR,env[1].value=test
注意事项
如果环境变量的取值包含特殊字符(空格、逗号、花括号等),需要用单/双引号包裹取值,避免解析异常。
内容的提问来源于stack exchange,提问作者Bravo
相关产品推荐
相关产品推荐

