Поделиться зависимостью между диаграммами управления

Поделиться зависимостью между диаграммами управления

Я пытаюсь запуститьдваразличные диаграммы 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, черездед. Несмотря на то, что это работает, я искал более жизнеспособное решение.

Связанный контент