当有多个 chart 需要共用一些配置时,就需要将共用的提取出来,单独组成一个 chart ,然后其他 chart 来引用它,这和写代码是相同的逻辑。
这篇文章仅写一下在这过程中需要注意的事项:
Chart.yaml 中需要包含如下信息:
name: name: auditlogd-service
type: library
version: 5.1.0
其中
templates 中文件名的注意事项:
templates 中定义的模版需要如下格式:
{{- define "auditlogd.sidecar.tpl" -}}
...
{{- end }}
{{- define "auditlogd.sidecar" -}}
{{- include "auditlogd.sidecar.tpl" . -}}
{{- end -}}
先定义一个 .tpl,再定义一个没有 .tpl 的模版
Chart.yaml 中要追加:
dependencies:
- name: auditlogd-service-common
repository: file://../../
version: 5.1.0
在 yaml 中使用上方定义的公共模版:
{{ include "auditlogd.sidecar" . }}
or
{{ template"auditlogd.sidecar" . }}
至于用哪种,这取决于 include 和 template 的用法
它两者都是将之前定义好的 模板 嵌入到文件中去;include 可以使用 管道 对数据做二次处理; template 不行。