kubernetes - Helm 包含模板

标签 kubernetes kubernetes-helm

拜托!是否可以将多个 Helm 模板压缩为一个,然后在部署文件中将其作为单行引用?

EG:

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

然后执行 {{- include "foo.deploy"。 }} 在单独的部署文件中。

其中应该包含 foo.1、foo.2 和 foo.3 以及它们各自的定义。

而不是逐字写出所有三个不同的“包含”,尤其是在您有负载的情况下。

非常感谢,

谢谢

最佳答案

命名模板(有时称为部分模板或子模板)只是在文件内部定义并给出名称的模板。我们将看到两种创建它们的方法,以及几种不同的使用它们的方法。 模板名称是全局的。因此,如果使用相同的名称声明两个模板,则最后出现的模板将被使用。由于子图表中的模板是与顶级模板一起编译的,因此最好使用图表特定的名称来命名模板。流行的命名约定是在每个定义的模板前加上图表名称的前缀:{{ 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 }}

关于kubernetes - Helm 包含模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59424060/

相关文章:

google-compute-engine - Kubernetes 作业是否有 'max-retries'?

kubernetes - 列出为服务提供服务的 pod

kubernetes-helm - 在 Go 模板中使用 include inside range (helm)

docker - 如何在 Kubernetes pod 中运行 docker 镜像?

docker - Microk8s 无法从私有(private)注册表中拉取

azure - 无法使用 Azure Devops 在 Kubernetes 上运行 VSTS 代理

kubernetes - Helm 3 图表安装错误 : error validating data: apiVersion not set

kubernetes-helm - helm 模板/目录中 yaml 的执行顺序是什么?

kubernetes - 如何在Grafana Helm 图中配置自定义LDAP?

kubernetes - 从私有(private)注册表中提取时自动使用 secret