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