## ArgoCD 버전 갱신 가이드 ArgoCD Helm Chart의 버전의 갱신할 경우 작업의 시작은 항상 main에서 이루어져야 한다. - 서비스 카탈로그 git 다운로드 ``` $ git clone https://github.com/paasup/service-catalog.git ``` - 작업 브랜치로 체크아웃 ``` $ git checkout -b update-argocd/7.8.0 ``` - argo-cd 차트 다운로드 ``` sh # charts 디렉토리로 이동 cd ~/dip-catalog/charts # helm repo 추가 helm repo add argo https://argoproj.github.io/argo-helm helm repo update # helm 차트 조회 helm search repo argo/argo-cd # helm 차트 다운로드 helm pull argo/argo-cd --version=10.4.0 ``` ## 배포 검증 렌더가 되는 것으로는 부족하다. 실제로 뜨고 API 가 응답하는지 확인한다. ```sh # 차트 기본값으로 검증 bash scripts/deploy-test/deploy-test-argo-cd.sh /tmp/argocd-deploy-test-out # 실제 배포에 쓸 values 로 검증 (admin 비밀번호를 승계하는 경우 로그인까지 확인) VALUES_FILE=/path/to/argocd-values.yaml ADMIN_PASSWORD=<평문 비밀번호> \ bash scripts/deploy-test/deploy-test-argo-cd.sh /tmp/argocd-deploy-test-out ``` 최소한 다음을 통과해야 한다. 1. Deployment 6종 + StatefulSet 1종 롤아웃 완료 2. `argocd-cmd-params-cm` 의 `controller.resource.health.persist` 가 `true` 3. `/api/version` 이 차트 `appVersion` 과 일치 4. `ADMIN_PASSWORD` 지정 시 `/api/v1/session` 로그인 성공 > 스크립트는 `crds.install=false` 로 설치한다. CRD 3종은 클러스터 전역이고 운영 릴리스가 > 소유하고 있어, 그대로 설치하면 Helm 이 ownership 충돌로 거부한다. 그래서 **CRD 가 이미 > 있는 클러스터에서만** 동작하며 스크립트가 사전에 확인한다. Ingress 도 항상 끈다 — > 운영과 같은 host 로 뜨면 트래픽을 가로챈다. - 갱신작업 진행후 commit ``` $ git add . $ git commit -m "update argocd/7.8.0 {TAG_NAME}" ``` - main 브랜치에 체크아웃 후 merge ``` $ git checkout main $ git merge update-argocd/7.8.0 ``` - git에 push 후 작업 브랜치 삭제 ``` $ git push -u origin main $ git branch -d update-argocd/7.8.0 ``` - git tag 추가 후 push ``` $ git tag argocd/7.8.0 $ git push origin argocd/7.8.0 ```