я пытаюсь запустить два разные диаграммы Helm, которые имеют общую зависимость (в данном случае базу данных MySQL).
Давайте рассмотрим две разные диаграммы руля со следующей настройкой в Диаграмма.yaml
:
Сервис А:
зависимости:
- имя: mysql
версия: ^8.0.20
репозиторий: https://charts.bitnami.com/bitnami
Сервис Б:
зависимости:
- имя: mysql
версия: ^8.0.20
репозиторий: https://charts.bitnami.com/bitnami
Несмотря на то, что обе службы независимы, они используют одну и ту же базу данных. Однако проблема возникает, когда развертывание инициируется, так как это также приведет к запуску двух независимых баз данных.
В качестве альтернативы я также пытался следовать зонтичному подходу, на который ссылаются здесь, определив все под одним и тем же диаграмма родительского руля с настройкой, подобной этой:
Диаграмма родительского руля:
зависимости:
- имя: service_a
версия: 0.1.0
репозиторий: repo_for_service_a
- имя: service_b
версия: 0.1.0
репозиторий: repo_for_service_b
Проблема заключается в том, что, хотя одна и та же база данных снова используется как зависимость, дублирующийся код создается для базы данных при попытке развертывания, что приводит к состоянию неудачного развертывания.
В качестве решения я воспользовался Helm --post-рендерер
флаг, через дед.
Несмотря на то, что это работает, я искал более жизнеспособное решение.