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

如何通过helm template --set命令设置内嵌YAML中的值?

问题解答

不行,仅靠helm template --set命令没法直接实现这个需求。核心原因是:你的temp.yaml是作为多行字符串(通过|-标记)嵌入在Helm模板的config字段下的,它本质是一个字符串值,不是Helm能识别的嵌套YAML结构。--set只能操作模板里结构化的YAML节点,没法穿透到字符串内部修改其中的内容。

要实现动态设置server的值,推荐两种靠谱方案:

  • 方案一:把temp.yaml改成结构化配置
    把原本的内嵌字符串拆成Helm的嵌套字段,这样就能用--set直接修改:

    config:
      temp.yaml:
        instances:
          - server: {{ .Values.serverUrl }}
            port: 443
    

    对应的--set命令:

    helm template --set serverUrl=server_url ./your-chart
    
  • 方案二:在字符串里用Helm变量占位
    保留内嵌字符串的形式,但把server的值换成Helm模板变量,再通过--set给变量传值:

    config:
      temp.yaml: |-
        instances:
          - server: {{ .Values.serverUrl }}
            port: 443
    

    同样用这条命令传值:

    helm template --set serverUrl=server_url ./your-chart
    

这两种方法都能满足你的需求,比硬怼--set修改字符串内容要靠谱得多。

内容的提问来源于stack exchange,提问作者MEHMET MERT BEZIRGAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:45:23