#kubernetes-helm
#kubernetes-helm
Вопрос:
Я пытаюсь включить карту, которая определена в файле _helper.tpl, но не могу. Я получаю сообщение об ошибке «at: range не может выполнить итерацию» (ничего больше).
значения.yaml
services:
- serviceX
- serviceY
_helpers.tpl
{{/*
Define the mapping values
*/}}
{{- define "associated.resources" }}
{{- $resourceMapping := dict "serviceX" "config1" "serviceY" "config2" "serviceZ" "config5" -}}
{{- end }}
configmap.yaml
...
{{- $resourcesMap := include "associated.resources" . }}
{{- range $k, $v := $resourcesMap }}
{{- if (has $k $.Values.services) }}
- $v
{{- end }}
{{- end }}
Я действительно не знаю, как установить карту и включить ее затем в мой файл configmap. Поддерживает ли метод include тип карты? Кажется, что он возвращает только строку.
Спасибо
Ответ №1:
Перемещение всей логики в __helpers.tpl может решить проблему.
__helpers.tmp
{{/*
Define the mapping values
*/}}
{{- define "associated.resources" }}
{{- $resourceMapping := dict "serviceX" "config1" "serviceY" "config2" "serviceZ" "config5" -}}
{{- range $k, $v := $resourceMapping }}
{{- if (has $k $.Values.services) }}
- {{ $v }}
{{- end }}
{{- end }}
{{- end }}
configmap.yaml
{{- include "associated.resources" . | indent 6 }}
Комментарии:
1. Спасибо. Вы правы. Лучше изменить логику, чтобы решить мою проблему.