estou tentando lançardoisdiferentes gráficos Helm que compartilham uma dependência comum (um banco de dados MySQL neste caso).
Vamos considerar dois gráficos de leme diferentes com a seguinte configuração Chart.yaml
:
Serviço A:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
Serviço B:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
Embora ambos os serviços sejam independentes, eles compartilham o mesmo banco de dados. No entanto, o problema surge quando a implantação é iniciada, pois isso também acionará dois bancos de dados independentes.
Como alternativa, também tentei seguir a abordagem abrangente referenciadaaqui, definindo tudo sob o mesmográfico do leme paicom uma configuração semelhante a esta:
Gráfico do Helm pai:
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
O problema é que, mesmo que o mesmo banco de dados seja compartilhado como dependência mais uma vez, código duplicado é criado para o banco de dados ao tentar a implantação, o que resulta em um estado de implantação com falha. Como solução para isso, aproveitei a --post-renderer
flag Helm, atravésmorto. Apesar de funcionar, eu estava procurando uma solução mais viável.