Deployment av en tjänst sker genom Argo CD. I Argo CD pekas manifest ut i ett git repository som beskriver för klustret hur tjänsten ska sättas upp. För att skilja test och produktion åt används samma git repo men separata brancher. Argo CD instansen i test sätts upp att peka på test branchen och instansen i produktion till prod branchen.
Exempel values.yaml test branch:
spring-boot-chart: appName: simulator-server appVersion: "1.0" namespace: unmasked-test replicaCount: 1 image: repository: "evil.sundsvall.se/utvecklingsfabriken" tag: "1.1_main_e6979798b5651897e3e297e96fab79e2bde1e5bb" <-----------
Exempel values.yaml prod branch:
spring-boot-chart: appName: simulator-server appVersion: "1.0" namespace: unmasked-test replicaCount: 1 image: repository: "evil.sundsvall.se/utvecklingsfabriken" tag: "1.0_main_e6979798b5651897e3e297e96fab79e2bde1e5xx" <-----------
När pipelinen körs skapas i sista steget en merge request mot test branchen där tag
uppdateras. När den mergas sker deployment mot test.
För att deploya en ny image i produktion görs en cherry pick av en commit från test branchen. Detta går att göra vi CLI eller i web-GUI.
Väljer en commit och klickar på Options → Cherry-pick
När commiten appliceras på prod branchen sker deployment mot produktion. Detta förutsätter att automatisk synkning är aktiverat i Argo CD. Annars behöver man även synka i Argo CD.