Шаблон Helm не работает при привязке к configmap - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть файл, который будет привязан к configmap. После того, как я поместил в него функцию tpl, она перестает работать, когда в файл включены другие строки.

Я использую этот помощник tpl:

{{- define "call-nested" }}
{{- $dot := index . 0 }}
{{- $subchart := index . 1 | splitList "." }}
{{- $template := index . 2 }}
{{- $values := $dot.Values }}
{{- range $subchart }}
{{- $values = index $values . }}
{{- end }}
{{- include $template (dict "Chart" (dict "Name" (last $subchart)) "Values" $values "Release" $dot.Release "Capabilities" $dot.Capabilities) }}
{{- end }}

тестирование в some.yaml:

psqlhost:  {{include "call-nested" (list . "postgresql" "postgresql.fullname")}}
newlinekey: value

Хорошо работает, если some.yaml - это отдельный файл. Но как только я связываю это configmap, он выдает эту ошибку:

executing "mytestchart/templates/my-configmap.yaml" at <tpl (.Files.Glob "config/*").AsConfig .>: error calling tpl: Error during tpl function execution for "some.yaml:<br>\"name:  {{include \\\"call-nested\\\" (list . \\\"postgresql\\\" \\\"postgresql.fullname\\\")}}\\r\\nnewlinekey:\n  value\"\n": parse error in "mytestchart/templates/my-configmap.yaml": template: mytestchart/templates/my-configmap.yam:1: unexpected "\\" in operand

Как только я удаляю новую строку, она также будет хорошо работать.

edit: Configmap:

apiVersion: v1
kind: ConfigMap
metadata:
  name: somename
data:
{{ tpl (.Files.Glob "config/*").AsConfig .| indent 2 }}

1 Ответ

0 голосов
/ 16 апреля 2020

Ваш шаблон не отображается правильно. Чтобы это работало, вам нужно изменить следующее:

  1. Добавьте суффикс .tmpl к файлу, который вы хотите поместить в ConfigMap, например: some.yaml.tmpl .

  2. Установите для данных вашего ConfigMap значение: {{- tpl ((.Files.Glob "config/*.tmpl").AsConfig) . | indent 2 }}. Также добавьте отступ к этой строке.

Ваш ConfigMap будет выглядеть примерно так:

apiVersion: v1
kind: ConfigMap
metadata:
  name: somename
data:
  {{- tpl ((.Files.Glob "config/*.tmpl").AsConfig) . | indent 2 }}

Вы можете найти больше информации с некоторыми примерами здесь .

Пожалуйста, дайте мне знать, если это помогло.

...