- 개발자가 git codo-repository의 test branch로 code를 Push 합니다.
- 사전에 등록해둔 git hook(Jenkins에 연결됨)을 통해 push가 감지되고 자동으로 Jenkins에서 codo-repository의 최신 버전을 checkout하여 새 docker container image를 build 하고 빌드가 완료되면 새 이미지를 container registry로 push 합니다.
- 파이프라인으로 연결된 update-manifest job을 통해 git manifest repository에 접근하여 yaml 파일 안에 docker-image의 version을 새 빌드번호로 업데이트합니다.
- argoCD는 git manifest repository를 감시하고 있다가 변경을 발견하고 yaml 파일과 container registry를 이용하여 대상 쿠버네티스 클러스터에 이미지를 배포합니다.
kubectl -n <k8s 네임스페이스명> create secret docker-registry <생성할 스크릿 이름> \
--docker-server=<레지스터리 url> --docker-username='<컨테이너 네임스페이스>/<사용자명>' \
--docker-password='<컨데이너 비밀번호>' --
이제 하나하나 따라가 봅시다.