Incerc sa lansez Două diferite diagrame Helm care au o dependență comună (o bază de date MySQL în acest caz).
Să luăm în considerare două diagrame diferite ale cârmei cu următoarea configurație în Chart.yaml
:
Serviciul A:
dependențe:
- nume: mysql
versiunea: ^8.0.20
depozit: https://charts.bitnami.com/bitnami
Serviciul B:
dependențe:
- nume: mysql
versiunea: ^8.0.20
depozit: https://charts.bitnami.com/bitnami
Chiar dacă ambele servicii sunt independente, ele partajează aceeași bază de date. Cu toate acestea, problema apare la inițierea implementării, deoarece aceasta va declanșa și două baze de date independente.
Ca alternativă, am încercat să urmăresc abordarea umbrelă la care se face referire Aici, prin definirea totul sub același graficul cârma părintelui cu o configurație similară cu aceasta:
Diagrama de cârmă pentru părinți:
dependențe:
- nume: service_a
versiunea: 0.1.0
depozit: repo_for_service_a
- nume: service_b
versiunea: 0.1.0
depozit: repo_for_service_b
Problema este că, deși aceeași bază de date este partajată ca dependență din nou, codul duplicat este creat pentru baza de date atunci când se încearcă implementarea, ceea ce duce la o stare de implementare eșuată.
Ca soluție, am profitat de Helm --post-renderer
steag, prin ded.
În ciuda faptului că funcționează, am căutat o soluție mai viabilă.