#kubernetes-helm #helmfile
#kubernetes-helm #helmfile
Вопрос:
У меня есть следующий файл helmfile
releases:
- name: whoami-mn
namespace: whoami-mn-{{ .Environment.Name }}
chart: tons/whoami-mn
version: {{ .Values.chartVersions.whoami }}
installed: {{ .Values.installed }}
values:
- env/{{ .Environment.Name }}-values.yaml
environments:
dev:
values:
- installed: true
- chartVersions:
whoami: 0.3.0
otherApp: 0.2.0
prod:
values:
- installed: true
- chartVersions:
whoami: 0.2.0
otherApp: 0.1.0
Но при запуске helmfile -e dev template
я получаю следующую ошибку
in ./helmfile.yaml: error during helmfile.yaml.part.0 parsing: template: stringTemplate:5:23: executing "stringTemplate" at <.Values.chartVersions.whoami>: map has no entry for key "chartVersions"
Я могу сделать что-то вроде следующего
environments:
dev:
values:
- installed: true
- chartVersionWhoami: 0.3.0
Это работает, но я бы предпочел, чтобы все версии диаграммы были сгруппированы по родительскому ключу. Есть предложения о том, как заставить первое работать?
ОБНОВЛЕНИЕ: работает следующее
...
version: {{ (index .Values "chartVersions").whoamiMn }}
...
С помощью среды, определенной следующим образом
environments:
dev:
values:
- installed: true
- chartVersions:
whoamiMn: 0.3.0
Но я действительно чувствую, что моя первая попытка тоже должна сработать!
Комментарии:
1. вы пробовали с
index
функцией:{{index .Values.chartVersions "whoami"}}
?2. @AnnaSlastnikova — Я действительно сделал! Результат тот же
3. хм, я подозреваю, что это ограничение файла helm, есть аналогичная проблема github.com/roboll/helmfile/issues/1418 возможно, стоит увеличить его или создать другой
4. Работает ли явное указание среды
helmfile -e dev template
?5. @AnnaSlastnikova — Похоже на то, спасибо за участие
Ответ №1:
После экспериментов и дальнейшего обсуждения здесь. Я понял, что могу исправить эту проблему, просто перечислив my environments
перед my releases
. С моей педантичной точки зрения, я был бы признателен, если бы мой releases
был указан первым, но это работает.