이전 포스트에 이어서 GitHub management-repository 리포지토리를 이용해 ArgoCD 환경을 구성한다.
ArgoCD는 별도의 VM이 아닌 EKS 클러스터 내 POD로 구성될 예정이며, Kustomize를 기반으로 구성할 예정이다.
로컬 PC에서 Argo CD를 설치하기 위한 디렉터리 구조 및 스크립트는 아래와 같이 구성 했다.
resources:
- https://github.com/<GitHub 유저명>/management-repository//argo-cd?ref=main
# Namespace 생성
kubectl create namespace argocd
# ArgoCD 설치
kubectl kustomize ../manifests/| kubectl apply -n argocd -f -
# argocd-server의 type을 LoadBalancer로 변경
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
해당 스크립트를 실행하면 ArgoCD 관련 네임스페이스 및 POD가 구축 된다.
ArgoCD는 위와 같이 ELB 엔드포인트를 통해 접속 가능하며, 기본적으로 admin 계정이 생성돼있다.
다만 로그인 시 secret에 저장되어 있는 암호가 필요하므로 아래 명령어로 admin 계정의 암호를 확인할 수 있다
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
ArgoCD는 연동된 깃허브 레포지토리의 변동사항을 쿠버네티스에 적용시킬 수 있는 설정이 가능하다.
먼저 ArgoCD 콘솔에 접속하여 아래와 같이 레포지토리를 연동한다.
[ArgoCD 콘솔 > Settings > Repositories > Connect repo using SSH]