Использование вложенных значений, определенных в среде

#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 был указан первым, но это работает.