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).