头盔包含模板

时间:2019-12-20 10:54:52

标签: kubernetes kubernetes-helm

请!是否可以将多个Helm模板压缩成一个模板,然后在部署文件中将其称为单行模板?

EG:

 {{- define "foo.deploy" -}} 
 value:
   {{- include "foo.1" . | nindent 6 }}
   {{- include "foo.2" . | nindent 6 }}
   {{- include "foo.3" . | nindent 6 }}

然后执行 {{-包括“ foo.deploy”。 }}

然后应包含foo.1,foo.2和foo.3以及它们各自的定义。

与从字面上写出所有三个不同的“包含”相对,特别是在您有负载的情况下。

非常感谢

谢谢

1 个答案:

答案 0 :(得分:0)

命名模板(有时称为部分模板或子模板)只是在文件内部定义的模板,并具有名称。我们将看到两种创建方式,以及几种不同的使用方式。 模板名称是全局的。结果,如果用相同的名称声明了两个模板,则最后一个将被使用。由于子图中的模板是与顶级模板一起编译的,因此最好使用图表特定的名称来命名模板。流行的命名约定是在每个已定义的模板前添加图表名称:{{define“ mychart.labels”}}。

有关命名模板的更多信息,您可以在这里找到:named-template

正确的配置文件应如下所示:

{{/* Generate basic labels */}}
{{- define "mychart.labels" }}
  labels:
    generator: helm
    date: {{ now | htmlDate }}
{{- end }}

在您的情况下,文件的一部分应如下所示:

{{- define "foo.deploy" -}} 
{{- include "foo.1" . | nindent 6 }}
{{- include "foo.2" . | nindent 6 }}
{{- include "foo.3" . | nindent 6 }}
{{ end }}