我是掌舵人和掌舵模板语言的新手。我的_helper.tpl中包含以下内容:
{{/*
Get couchdb password
*/}}
{{- define "couchdb.password" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "'@refsec/couchdb-%s/adminPassword'" $name -}}
{{- end -}}
{{/*
Get couchdb username
*/}}
{{- define "couchdb.username" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "'@refsec/couchdb-%s/adminUsername'" $name -}}
{{- end -}}
但是这段代码有问题。重复!!如您所见,此行重复了2次:{{- $name := default .Chart.Name .Values.nameOverride -}}
我可以为这些情况定义一个全局变量a并反复使用它吗?
答案 0 :(得分:2)
原则上,您可以仅为那一行定义模板
{{- define "couchdb.chart.name" -}}
{{- default .Chart.Name .Values.nameOverride -}}
{{- end -}}
但是调用它的语法实际上并不短
{{- define "couchdb.password" -}}
{{- $name := include "couchdb.chart.name" . -}}
{{- printf "'@refsec/couchdb-%s/adminPassword'" $name -}}
{{- end -}}
{{- define "couchdb.username" -}}
{{- printf "'@refsec/couchdb-%s/adminUsername'" (include "couchdb.chart.name" .) -}}
{{- end -}}
我很确定Go文本/模板语言没有您在此处建议的形式的全局变量。 documentation描述了变量的语法和调用,但包含了一些隐晦的注释
模板调用不会从调用点继承变量。
而且我认为从阅读其他上下文来看,“全局范围”没有“主模板”那么重要。
无论如何,我从未在Helm图表中看到过全局变量,甚至您在问题中显示的形式的变量也有点不寻常。