Глобальные переменные в языке шаблонов шлема, чтобы избежать повторения - PullRequest
0 голосов
/ 04 октября 2019

Я новичок в языке шаблонов helm и helm. В моем _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 -}}

Но есть проблема с этим фрагментом кода. REPETTION !! Как видите, эта строка повторяется 2 раза: {{- $name := default .Chart.Name .Values.nameOverride -}}

Могу ли я определить глобальную переменную для этих случаевa и использовать ее снова и снова без повторения?

1 Ответ

2 голосов
/ 05 октября 2019

В принципе, вы можете определить шаблон только для этой одной строки

{{- 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 не имеет глобальных переменных в форме, которую вы предлагаете здесь. Документация описывает синтаксис и вызов переменной, но содержит слегка загадочную заметку

Вызов шаблона не наследует переменные с точки своего вызова.

и я думаю, что при прочтении другого контекста существует не столько "глобальная область видимости", сколько "основной шаблон".

В любом случае, я никогда не видел глобальную переменную в диаграмме Хелма и даже переменныев форме, которую вы показываете в вопросе, немного необычно.

...