Функция Helm tpl для визуализации файла не работает

#kubernetes-helm #helmfile

Вопрос:

Я пытаюсь отобразить файл с помощью функции tpl. Я извлекаю содержимое файла с помощью файлов.Get, который отлично работает, пока я не использую на нем функцию tpl.

Мой входной файл-это:

 apiVersion: autoscaling/v2beta2
 

Мой шаблон шлема-это:

 {{- $files := .Files }}
{{- tpl ($files.Get "files/autoscaling.yaml" ) . -}}
 

Мне пришлось использовать $files, потому что это выдало бы ошибку:

в <.Files.Get>: не удается оценить файлы полей в интерфейсе типа {}

Вывод, который я вижу при запуске шаблона helm, выглядит следующим образом

 Error: template: subchart-demoapp/templates/sub-deployments.yaml:5:47: executing "subchart-demoapp/templates/sub-deployments.yaml" at <.>: wrong type for value; expected chartutil.Values; got string
helm.go:84: [debug] template: subchart-demoapp/templates/sub-deployments.yaml:5:47: executing "subchart-demoapp/templates/sub-deployments.yaml" at <.>: wrong type for value; expected chartutil.Values; got string
 

Моя версия руля такова:

 version.BuildInfo{Version:"v3.2.1", GitCommit:"fe51cd1e31e6a202cba7dead9552a6d418ded79a", GitTreeState:"clean", GoVersion:"go1.13.10"}
 

Спасибо за любую помощь.

Ответ №1:

Понял это. tpl функция, используемая в range блоке, нуждается в контексте верхнего уровня в качестве второго аргумента. Ссылка: Проблема со Штурвалом

Заменил на . , $ и он работает так, как ожидалось.