helm - программно переопределить значения подчарта. yaml - PullRequest
3 голосов
/ 30 марта 2019

Я пишу рулевую диаграмму, которая использует диаграмму stable / redis в качестве подкарты.

Мне нужно переопределить имя класса хранения, используемое для обоих микросервисов в моей диаграмме и в диаграмме перерисовки.

Я использую шлем 2.12.3

Я хотел бы иметь возможность указать redis.master.persistence.storageClass в терминах шаблона, например,

storage:
  storageClasses:
    name: azurefile

redis:
  usePassword: false
  master:
    persistence:
      storageClass: {{ $.Values.storage.storageClasses.name }}

За исключением, насколько я понимаю, шаблоны не поддерживаются в values.yaml

Поскольку это общедоступная диаграмма, я не могу изменить ее, чтобы она зависела от глобального значения, как описано здесь в документации

Я решил использовать {{ $.Values.redis.master.persistence.storageClass }} в другом месте на моем графике, а не {{ $.Values.storage.storageClasses.name }}, но это будет:

  • Не скрывать сложности зависимостей моего графика
  • Не масштабируется, если я должен был добавить еще одну зависимость подкарты

В моем файле values.yaml есть:

storage:
  storageClasses:
    name: azurefile

redis:
  master:
    persistence:
      storageClass: azurefile

Я хотел бы указать одно значение в values.yaml, которое можно перезаписать во время развертывания диаграммы.

например. как это

helm install --set storage.storageClasses.name=foo mychart

вместо

helm install --set storage.storageClasses.name=foo --set redis.master.persistence.storageClass mychart

1 Ответ

0 голосов
/ 05 апреля 2019

Как вы правильно сказали, файлы значений helm - это обычные файлы yaml, которые не могут содержать никаких шаблонов.В вашем случае вам нужно будет использовать систему шаблонов для ваших файлов значений, что в основном означает, что вы также генерируете свои файлы значений на ходу.Я бы посоветовал взглянуть на helmfile .Это позволяет вам совместно использовать файл значений для нескольких диаграмм и сред приложений.

...