helm入门3——模板语法详解案例2

{{- include "gindemo.labels" . | nindent 4 }}

逐步讲解

1. include "gindemo.labels" .
  • include:Helm 中的 include 函数用于引入和执行已经定义好的模板。在这里,"gindemo.labels" 是模板的名称,. 是当前上下文对象,通常包含当前的 .Values.Chart 等数据。

    • 模板名称"gindemo.labels" 指的是已经定义的模板块。这个模板块的内容可能是一些标签(labels)的定义。

    • 上下文 .include 的第二个参数 . 是传递的上下文对象,即当前模板中的上下文数据,这样可以把外部的上下文传递给模板 "gindemo.labels" 来生成动态内容。

    • 示例:假设 "gindemo.labels" 模板被定义为:

{{- define "gindemo.labels" -}}
app: {{ .Values.appName }}
version: {{ .Values.appVersion }}
{{- end }}
    • 当你调用 include "gindemo.labels" . 时,它会将 "gindemo.labels" 模板渲染的内容插入到调用点,并根据当前上下文 . 的值进行替换。

2. 管道符 | 的作用
  • 管道符 |:管道符是 Helm 模板语法中用于将一个函数的输出作为另一个函数的输入的操作符。它的作用是将左侧表达式的结果传递给右侧的函数处理

    在这段代码中,include "gindemo.labels" . 会首先渲染 "gindemo.labels" 模板,然后通过管道符 | 把渲染的结果传递给 nindent 4 这个函数进行进一步处理。

    • 过程include "gindemo.labels" . 生成了一段内容,管道符 | 把这段内容传给 nindent 4,接着 nindent 4 会处理并修改这段内容的格式。
3. nindent 4
  • nindent 是 Helm 提供的一个内置函数,用于为内容添加缩进,同时会在内容前面加一个换行符。nindent 4 表示在内容前添加 4 个空格的缩进。

    nindent 处理前后对比

  • 未使用 nindent 的内容可能是这样的:
app: my-app
version: 1.0.0

使用 nindent 4 后的内容:

    app: my-app
    version: 1.0.0
  • nindent 4 保证了生成的 YAML 文件在各个层级中的缩进正确,符合 YAML 格式要求。

4. {{- }}
  • {{--}}:这两个符号的作用是去除前后多余的空格或换行符。在这里,它们确保模板中没有多余的空白行,使生成的 YAML 文件更加紧凑。

总结

这段代码的整体含义是:

  1. include "gindemo.labels" .:调用并渲染名为 "gindemo.labels" 的模板,并传入当前上下文对象 .

  2. 管道符 |:将 include 函数渲染的输出内容通过管道符 | 传递给 nindent 4 函数。

  3. nindent 4:对输出的内容进行缩进,每行前加 4 个空格,确保生成的 YAML 文件结构正确。

  4. {{- }} :去除模板中的多余空白符和换行,保持文件的紧凑性。

最终效果是将 gindemo.labels 模板生成的内容,按照正确的缩进规则插入到当前 YAML 中。例如,假设 gindemo.labels 模板输出以下内容:

app: my-app
version: 1.0.0

那么最终生成的内容会是:

    app: my-app
    version: 1.0.0

这段代码的主要目的就是在模板中调用另一个模板,并保持正确的缩进格式,符合 YAML 的语法要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值