Gitea webhook, Jenkins pipeline 설정은 이전 게시물 참고.
- 주어진 Helm 프로젝트 배포.
- ArgoCD가 해당 Helm 프로젝트 동기화.
- Helm 소스코드 수정시 동기화 확인.
Helm chart
- 만약 helm chart를 생성하지 않았다면 먼저 chart를 생성해야 하고 Repository를 등록해야 한다
- 현재 나는 microservice-demo/deploy/kubernetes/helm-chart 안에 chart가 있다.
ArgoCD Helm Repoitory 등록
- argocd에서 helm chart를 배포하기 위해서 Helm repository를 등록해야 한다.
- Settings -> Repositories -> CONNECT REPO 클릭.
- VIA HTTPS, TYPE과 Repository URL, Username, Password를 작성하고 CONNECT을 누른다.
- 이때 Username과 Password는 내 gitea Username과 Password를 작성한다.
- Repo 생성이 완료되었으면 Create application을 통해 앱을 생성한다.
- Application Name, Project Name, SYNC POLICY를 설정한다.
- 위에서 repo를 작성하였기 때문에 SOURCE는 자동으로 생성되어 있다.
- SOURCE에 Path는 내 helm chart가 있는 경로이다. 위에서 설명한 chart가 있는 path로 설정한다.
- Cluster URL과 Namespace를 설정한다.
- 이때 Namespace는 이 애플리케이션이 배포될 네임스페이스이다.
- 만약 잘 생성되었다면 Sync OK가 뜨게 된다.
ArgOCD Helm chart 배포
- 이제 배포를 위한 준비는 끝났다.
- 먼저 app-haho -> PARAMETERS을 클릭하여 ingress.host를 설정한다.
배포 완료
- 설정한 ingress.host로 접속한다.
ArgoCD Harbor image update
- 이제 배포를 완료하였으니 전에 빌드해서 Harbor repo에 push한 이미지를 가져와야 한다.
- 일단 Harbor에 가서 project name이랑 repo, tag를 확인한다.
- project name은 front-end-haho, repo는 haho, tag는 SNAPSHOT-61
- 가독성을 위해 변경하지 않은 코드는 생략했다.
- front-end 부분에서 이미지를 가져와
- 해당 harbor의 주소와, project name, repo, tag를 작성하고 커밋을 한다.
# Default values for sock-shop.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
registry: ''
java:
options: -Xms64m -Xmx128m -XX:PermSize=32m -XX:MaxPermSize=64m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom
istio:
enabled: false
ingress:
annotations:
kubernetes.io/ingress.class: nginx
labels: {}
host: 'sock-shop.oke.com' # FIXME:
tlsSecretName: ''
... 생략
frontend:
replicas: 1
image:
repo: harbor.okestro.io/front-end-haho/haho
tag: SNAPSHOT-61
resources:
limits:
cpu: 300m
memory: 1000Mi
requests:
cpu: 100m
memory: 300Mi
... 생략
배포 변경 확인
- Sync를 Auto로 설정하였기 때문에 자동으로 변경된다.
- 설정한 도커 이미지 대로 변경되어 배포된 것을 확인할 수 있다.
728x90
반응형