U mnie wygląda to tak:
caly zestaw mikroserwisów jest skonfigurowany jako Helm chart
nazywamy branche używając konwencji: feature/X/jakis_opis
gdzie X to id zadania ze ździry
CI zajmuje się m.in budowaniem obrazów dockerowych i wrzucaniem ich do Nexusa
Mamy osobne repo do deploymentu który buduje środowisko na podstawie chartu Helm. W tym repo branchujemy tak samo jak na innych feature branchach tyle że nie dajemy żadnych zmian jeśli sam chart nie ulega zmianie. Po jednrazowym wypushowaniu na jenkinsie tworzy się job, który może być potem odpalany dowolną ilość razy.
Ten job buduje środowisko na bazie tego co ma w charcie. Jeśli znajdzie w nexusie jakieś obrazy mające label odpowiadający identyfikatorowi zadania to używa obrazu zbudowanego na feature branchu. Jeśli nie ma takiego to bierze najnowszy obraz zbudowany z mastera.
Wszystko to jest deployowane na k8s do osobnego namespace (1 branch - 1 namespace)
Oprócz tego ten job zajmuje się konfiguracją SqlServera (ten mamy poza k8s) tworząc wszystkie potrzebne bazy z odpowiednim postfixem (którym jest numer zadania)