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

如何在Helm Chart中将命名模板用作YAML列表元素?

问题描述

现有如下Helm命名模板:

{{- define "mytemplate" -}}
name: foo
value: bar
details: baz
{{- end -}}

希望将其作为evenmore列表的元素,生成如下YAML结构:

some:
  more:
    evenmore:
      - name: foo
        value: bar
        details: baz

尝试过直接将mytemplate定义为列表元素,但无法和其他命名模板使用merge函数;用list函数会导致列表元素变成多行字符串或缩进不匹配,询问是否有无需修改原命名模板的实现方法。

解决方案

可以通过在列表项的缩进层级中调用include函数配合nindent来实现,完全不需要修改原模板。

示例代码如下:

some:
  more:
    evenmore:
      - {{ include "mytemplate" . | nindent 8 }}

具体说明:

  • include "mytemplate" . 会直接渲染你定义好的mytemplate内容
  • nindent 8 会把渲染出的每一行内容都缩进8个空格,刚好匹配列表项-之后的层级要求,确保生成的YAML结构缩进正确,不会变成多行字符串,也能正常和其他模板使用merge函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:23:17