Создайте и передайте значение с помощью вспомогательной функции helm из файла развертывания или службы Yaml - PullRequest
0 голосов
/ 12 апреля 2020

Я пытался реализовать развертывание Helm Kubernetes, используя таблицу helm. Я бы дал динамическое имя развертывания, приложения и службы, используя имя выпуска helm.

Я реализовал следующий подход, который помогает мне создать динамическое c имя на основе файла helm.

Запишите приведенный ниже метод внутри _helper.tpl

{{- define "sample-chart-getServiceName" -}}
{{- $arg1 := index . "arg1" -}}
{{- $fullName := include "sample-chart.fullname" . -}}
{{- printf "%s-%s" $fullName $arg1 -}}
{{- end -}} 

и ниже способы вызова функции внутри файла yaml

name: {{ include "sample-chart-getServiceName" (dict "arg1" "service") }}

1 Ответ

2 голосов
/ 12 апреля 2020

Шаблон Helm принимает один параметр, и он назначается специальной переменной .. В вашем примере вы пытаетесь использовать . в качестве параметра, содержащего имя службы, а также контекст верхнего уровня для передачи в нижестоящий шаблон sample-chart.fullname.

Чтобы обойти это, вы можете упакуйте два параметра в список:

{{ include "sample-chart-getServiceName" (list . (dict "arg1" "service")) }}
{{- define "sample-chart-getServiceName" -}}
{{- $top := index . 0 -}}
{{- $arg1 := index . 1 "arg1" -}}
{{- $fullName := include "sample-chart.fullname" $top -}}
...

Или, если вы намеревались передать несколько значений по имени, включите контекст верхнего уровня в качестве одного из этих параметров

{{ include "sample-chart-getServiceName" (dict "top" . "arg1" "service") }}
{{- $top := index . "top" -}}
{{- $arg1 := index . "arg1" -}}
...