Добавление новостных лент при определении коллекции - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь определить коллекцию (dict), и я хотел бы добавить новую строку для каждого определения (для удобства чтения), например:

{{ $deployment := dict 
"Release" .Release 
"Chart" .Chart 
"Values" .Values }}

Но когда я делаю это,helm отвечает на ошибку разбора:

Error: parse error in "XXX": template: XXX:2: unclosed action
Error: UPGRADE FAILED: parse error in "XXX": template: XXX:2: unclosed action

Есть ли способ в ХЕЛМ сделать это?

Ответы [ 2 ]

1 голос
/ 29 марта 2019

TLDR;

Невозможно объявить dict многострочным способом, как с оператором Perl с запятой .
Пожалуйста, проверьте ссылку из «Sprig: Шаблонные функции для шаблонов Go».

Вместо этого вы можете использовать этот хакерский способ для достижения аналогичного результата:

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

# values.yaml
  -- 
  global:
  someMap:
    coffee: robusta
    origin: Angola
    crema: yes
Определить вспомогательный шаблон в _helpers.tpl:

{{- define "mychart.labels.standard"}}
{{- $global := default (dict) .Values.global.someMap -}}
Release: {{ .Release.Name | quote }}
Chart: {{ .Chart.Name }}
Values:
{{- $global := default (dict) .Values.global.someMap -}} 
{{- range $key, $value := $global }}
  {{ $key }}: {{ $value }}
{{- end }}
{{- end -}}
Включить его в другой шаблон:

helm_data:
  {{- $global := default (dict) .Values.global -}}
  {{- range $key, $value := $global }}
    {{ $key }}: {{ $value }}
  {{- end }}
  {{ include "mychart.labels.standard" . | nindent 0 -}}
Визуализация для проверки результата (шаблон руля --name dict-chart.)

---
# Source: mychart/templates/data_type.yaml
helm_data:
    someMap: map[crema:true origin:Angola coffee:robusta]
  
Release: "dict-chart"
Chart: mychart
Values:
    coffee: robusta
    crema: true
    origin: Angol
1 голос
/ 29 марта 2019

Кажется, это невозможно сделать.Система шаблонов Хелма - это в основном система шаблонов Go.Как указано в документах Go, шаблонах :

За исключением необработанных строк, действия могут не охватывать новые строки, хотя комментарии могут.

...