dongzi3434 2017-10-12 21:21
浏览 877
已采纳

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

Helm _helpers.tpl?

Helm allows for the use of Go templating in resource files for Kubernetes.

A file named _helpers.tpl is usually used to define Go template helpers with this syntax:

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

Which you can then use in your *.yaml resource files like so:

{{ template "yourFnName" . }}

The Question

How can I use the helpers I define, in other helper definitions?

For example, what if I have a helper for the application name, and want to use that in the definition for a helper which determines the ingress host name?

I have tried calling helpers in other definitions a couple different ways. Given this basic helper function:

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

I have tried the following:

{{- 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 -}}

Is it possible to even do this? If so, how?

  • 写回答

2条回答 默认 最新

  • dounao1856 2017-10-31 14:41
    关注

    You should use Nested template definitions.

    In your particular case it is:

    {{- define "host" -}}
    {{ template "name" . }}.example.com
    {{- end -}}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器