Во-первых, небольшой контекст: у меня есть 4 кластера Kubernetes, по одному для каждой среды (разработка, подготовка, тестирование, разработка). Каждый кластер имеет свой собственный файл values.yaml
со специфичной для env конфигурацией всех схем рулевого управления, которые мы написали.
Итак, когда наш конвейер CD развертывает mychart
в кластере develop
, он, по сути, выполняет следующее:
helm install -f base-values.yaml -f develop-values.yaml ./mychart.tgz
Теперь давайте предположим, что mychart
имеет файл requirements.yaml
, в котором диаграмма mongodb указана в качестве зависимости подкарты. Ссылки на таблицу Mongodb, например, .Values.mongodbRootPassword
. Когда mychart
включено в качестве под-диаграммы, я могу установить .Values.mongodb.mongodbRootPassword
в values.yaml
по умолчанию *1019*, чтобы изменить это значение.
Моя проблема в том, что, учитывая мой текущий конвейер CD, если я установлю .Values.mongodb.mongodbRootPassword
в develop-values.yaml
, он будет принят для всех экземпляров mongodb, которые развернуты в кластере develop
, а не только mychart
s.
Итак, мои вопросы:
- с использованием файлов
values.yaml
для каждой среды, как мне установить пароль root для mychart
mongodb в одном из кластерных values.yaml
файлов?
- это вообще возможно? Или мой нынешний подход к CD (файлы значений для среды) является анти-паттерном?
- если это невозможно или является анти-паттерном, как бы вы настроили значения отдельных диаграмм и подкарт руля для каждой среды?