Deployment i olika miljöer

Deployment av en tjänst sker genom Argo CD. I Argo CD pekas manifest ut i ett git repository, vilket beskriver för klustret hur tjänsten ska sättas upp. För att skilja test och produktion åt används samma git repository 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, i annat fall behöver man även synka i Argo CD).