Ich versuche zu startenzweiverschiedene Helm-Diagramme, die eine gemeinsame Abhängigkeit aufweisen (in diesem Fall eine MySQL-Datenbank).
Betrachten wir zwei verschiedene Helm-Charts mit dem folgenden Setup in Chart.yaml
:
Dienst A:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
Dienst B:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
Obwohl beide Dienste unabhängig sind, teilen sie sich dieselbe Datenbank. Das Problem entsteht jedoch beim Start der Bereitstellung, da dadurch ebenfalls zwei unabhängige Datenbanken ausgelöst werden.
Als Alternative habe ich auch versucht, den Umbrella-Ansatz zu verfolgen, auf den verwiesen wirdHier, indem man alles unter derselbenübergeordnetes Steuerdiagrammmit einem Setup ähnlich diesem:
Übergeordnetes Helmdiagramm:
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
Das Problem besteht darin, dass, obwohl dieselbe Datenbank erneut als Abhängigkeit verwendet wird, beim Versuch der Bereitstellung doppelter Code für die Datenbank erstellt wird, was zu einem fehlgeschlagenen Bereitstellungsstatus führt. Als Lösung dafür habe ich das Helm- --post-renderer
Flag genutzt, durchded. Obwohl dies funktioniert, suchte ich nach einer praktikableren Lösung.