You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过--set向Helm传递JSON配置变量避免被解析为数组

问题原因

Helm 的 --set 参数默认具备自动类型解析能力,会将外层包裹大括号的内容识别为字典/数组结构而非原始字符串,因此你传入的JSON字符串会被提前解析成键值对结构,最终渲染时就出现了被转为数组格式的错误。
你现有的ConfigMap模板逻辑没有问题,quote过滤器的用法是正确的。

解决方法

  • 方案1:使用--set-string强制传入字符串类型(最推荐)
    --set-string是Helm专门提供的、强制将参数值识别为纯字符串的参数,不会触发自动结构解析,直接修改部署命令即可:

    helm upgrade my-app --install --set-string envVars.CREDS='{"key":"val"}'
    
  • 方案2:通过values文件传递配置
    如果使用自定义values文件部署,直接在values.yaml中把JSON值定义为字符串即可,不会触发自动解析:

    # values.yaml 示例内容
    envVars:
      CREDS: '{"key":"val"}'
    

    部署时直接指定values文件:

    helm upgrade my-app --install -f values.yaml
    
  • 方案3:转义大括号强制识别为字符串
    如果必须使用--set参数,可以转义JSON外层的大括号,避免被Helm识别为结构定义:

    helm upgrade my-app --install --set envVars.CREDS='\{\"key\":\"val\"\}'
    

内容的提问来源于stack exchange,提问作者itaied

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 07:15:06