product-composite-service CI/Cd 파이프라인 설정

1. 파이프라인에서 사용할 ArgoCD Admin 암호 Secrets Manager에 저장

cd ~/environment/eks-workshop/cloud9

# 파이프라인에서 참조할 ArgoCD 암호를 AWS Secrets Manager에 저장합니다.
# ArgoCD Admin 암호는 `테라폼을 통한 아마존 EKS 프로비저닝` 단계에서 설정한 암호를 사용합니다.
./set-argocd-admin-password-secrets-manager.sh "Abraca00#1" product-composite-service-ci-argocd-admin-password

2. product-composite-service Helm Chart 의존성 빌드

product-composite-service 마이크로서비스 Helm Chart의 의존성을 빌드하여 이후 ArgoCD 애플리케이션을 생성할 수 있도록 준비합니다. 이 작업은 초기에 한번만 수행하면 되고 이후에는 빌드 파이프라인이 Helm 리포지터리를 변경하면 ArgoCD에 의해 자동으로 Sync되게 됩니다.

# 작업을 도와주는 어플리케이션 Makefile 경로로 이동합니다.
cd ~/environment/eks-workshop/microservices-cicd-pipeline/product-composite-service

# Helm 의존성을 업데이트합니다.
make helm-dep-up-all ENV=prod

# Helm 의존성을 업데이트한 템플릿 결과를 확인합니다.
make helm-template-env ENV=prod

3. product-composite-serviceHelm 리포지터리 설정

3. ArgoCD 애플리케이션 설정

  1. ArgoCD 접속에 필요한 정보릃 확인하고 접속합니다.

테라폼을 통해서 이미 배포한 EKS 클러스터에는 ArgCD가 설치되어 있으며, 또한 AWS ELB (Elastic Load Balancer)를 통하여 외부에서 접속할 수 있습니다.

아래와 같이 ArgoCD 접속에 필요한 URL을 확인합니다.

확인한 접속 주소와 앞서 미리 설정한 패스워드를 사용하여 ArgoCD Web UI에 접속해 봅니다. ArgoCD UI

  1. ArgoCD가 GitOps 배포 (Helm) 리포지터리에 접속할 수 있도록 IAM 사용자 및 Git Credentials을 생성하고 메모해 둡니다 (CLI 사용).

  1. ArgoCD 애플리케이션을 생성합니다.

  • 로그인 이후에 좌측의 Settings 메뉴를 클릭한 뒤 Repositories 항목을 클릭합니다. ArgoCD Repository Settings

  • Connect Repo 버튼을 클릭하고 MethodVIA HTTPS, Project는 default를 입력합니다.

  • Repository URL에는 앞서 확인한 배포 CodeCommit Repository의 HTTPS 주소를 (혹은 아래 명령으로 다시 확인 가능합니다), UsernamePassword에는 메모해 둔 정보를 입력합니다.

ArgoCD Repository Connect ArgoCD Repository Connect

  • Application 텝에서 NewApp버튼을 클릭합니다. Application Name 에는 product-composite-service를, Projectdefault를 입력합니다. Sync Policy에는 "Manual"을, Repository URL에는 앞서 설정한 배포 리포지터리를, PATH에는 environment/prod-env을 각각 입력합니다. Destination 섹션의 Cluster URL에는 https://kubernetes.default.svc, Namespace에는 hands-on를 입력하고 상단의 Create를 클릭합니다. ArgoCD Riches App

(참고) Application 생성 시 화면 하단에 Helm Setting 값들이 정상적으로 표시되는지 확인합니다.

  1. 이렇게 ArgoCD에서 어플리케이션을 생성하기만 하고 Sync 하지 않은 채로 두어도 됩니다. ArgoCD 파이프라인이 이후에 Sync를 수행하게 됩니다.

4. product-composite-service 빌드 및 켄테이너 이미지 전달

  1. 이제 어플리케이션의 빌드 및 전달 파이프라인이 시작될 수 있도록 애플리케이션 소스를 소스 리포지터리에 연결하고 푸시합니다.

  1. 빌드 파이프라인이 성공적으로 수행되는지 확인합니다.

진행자의 안내를 받아 파이프라인의 각 단계를 둘러보면서 어떤 작업이 수행되는지 확인합니다.

Last updated