
Estoy intentando lanzardosdiferentes gráficos de Helm que comparten una dependencia común (una base de datos MySQL en este caso).
Consideremos dos gráficos de timón diferentes con la siguiente configuración en Chart.yaml
:
Servicio A:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
Servicio B:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
Aunque ambos servicios son independientes, comparten la misma base de datos. Sin embargo, el problema surge cuando se inicia la implementación, ya que esto también activará dos bases de datos independientes.
Como alternativa, también he intentado seguir el enfoque general al que se hace referenciaaquí, definiendo todo bajo el mismotabla de timón para padrescon una configuración similar a esta:
Cuadro de timón principal:
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
El problema es que, aunque la misma base de datos se comparte nuevamente como dependencia, se crea código duplicado para la base de datos al intentar la implementación, lo que resulta en un estado de implementación fallido. Como solución, aproveché Helm --post-renderer
flag, a través demuerto. A pesar de que esto funciona, estaba buscando una solución más viable.