当前位置: 首页 > 工具软件 > tpl > 使用案例 >

helm 中共享 tpl 写法

南宫俊逸
2023-12-01

当有多个 chart 需要共用一些配置时,就需要将共用的提取出来,单独组成一个 chart ,然后其他 chart 来引用它,这和写代码是相同的逻辑。

这篇文章仅写一下在这过程中需要注意的事项:

写 chart:

Chart.yaml 中需要包含如下信息:

name: name: auditlogd-service

type: library

version: 5.1.0

其中

  • name 的值,可以随便写,之后需要用到它。
  • type 的值需要是 library
  • version 版本号,也可以随便写,但之后这个数字是要递增的

templates 中文件名的注意事项:

  • templates 中的文件可以是 yaml 结尾,也可以是 tpl 结尾
  • templates 中的文件必须以 _ 开头,例如 _config.yaml
  • _helpers.tpl 一般放在 templates/lib 文件夹下

templates  中定义的模版需要如下格式:

{{- define "auditlogd.sidecar.tpl" -}}

   ...

{{- end }}

 

{{- define "auditlogd.sidecar" -}}

{{- include "auditlogd.sidecar.tpl" . -}}

{{- end -}}

先定义一个 .tpl,再定义一个没有 .tpl 的模版

用 chart:

Chart.yaml 中要追加:

dependencies:

  - name: auditlogd-service-common

    repository: file://../../

    version: 5.1.0
  • dependencies 中的 name 需要与 上方的 name 一致
  • dependencies 中的 repository 需要制定 上方的 chart 所在位置
  • dependencies 中的 version 需要与上方的 version 一致

在 yaml 中使用上方定义的公共模版:

{{ include "auditlogd.sidecar" . }}

or

{{ template"auditlogd.sidecar" . }}

至于用哪种,这取决于 include 和 template 的用法

它两者都是将之前定义好的 模板 嵌入到文件中去;include 可以使用 管道 对数据做二次处理; template 不行。

 类似资料: