Helm _helpers.tpl:在其他模板定义中调用已定义的模板

掌舵_helpers.tpl?

Helm允许在Kubernetes的资源文件中使用Go模板。

_helpers.tpl通常使用一个名为的文件通过以下语法定义Go模板助手:

{{- define "yourFnName" -}}

{{- printf "%s-%s" .Values.name .Values.version | trunc 63 -}}

{{- end -}}

然后可以在*.yaml资源文件中使用它,如下所示:

{{ template "yourFnName" . }}

问题

如何在其他帮助程序定义中使用定义的帮助程序?

例如,如果我有一个用于应用程序名称的助手,并想在定义入口主机名的助手的定义中使用该助手,该怎么办?

我尝试了几种其他方式来调用其他定义中的帮助器。鉴于此基本辅助功能:

{{- define "host" -}}

{{- printf "%.example.com" <Somehow get result of "name" helper here> -}}

{{- end -}}

我尝试了以下方法:

{{- printf "%.example.com" {{ template "name" . }} -}}

{{- printf "%.example.com" {{- template "name" . -}} -}}

{{- printf "%.example.com" ( template "name" . ) -}}

{{- printf "%.example.com" template "name" . -}}

# Separator

{{- $name := {{ template "environment" . }} -}}

{{- printf "%.example.com" $name -}}

# Separator

{{- $name := template "environment" . -}}

{{- printf "%.example.com" $name -}}

# Separator

{{- $name := environment -}}

{{- printf "%.example.com" $name -}}

有可能做到这一点吗?如果是这样,怎么办?

回答:

您应该使用嵌套模板定义。

在您的特定情况下是:

{{- define "host" -}}

{{ template "name" . }}.example.com

{{- end -}}

以上是 Helm _helpers.tpl:在其他模板定义中调用已定义的模板 的全部内容, 来源链接: utcz.com/qa/433877.html

回到顶部