1. Helm Chart를 버전 별로 배포가 가능하며, 버전 관리를 통해 롤백이 가능.
2. 변수 설정 및 변수 선언을 함으로서 여러 템플릿에 동시 적용 가능.
helm create "차트명"
Chart에 대한 이름, 버전, 설명 등이 정의된 파일.
(추후에 새로운 버전의 차트를 만들 때 version 수정(형식은 x.x.x)
변수로 쓰일 파일이이며 {{ .Values.image.tag }} 와 같이 사용 되므로 인덴테이션에 유의하여 작성 한다.
기본적으로 deployment, service 와 같이 배포 할 리소스를 helm의 template 문법으로 정의 한다.
helm lint "Chart.yaml 경로" //문법적 오류만 점검
helm template "Chart.yaml 경로" --dry-run // 미리보기로 배포하고자 하는 형태가 맞는지 확인
차트만 저장할 경로 생성
ex) mkdir charts_repo
HELM-CHARTS
- charts_repo (차트만 저장 될 경로)
- 차트경로
helm repo package "차트경로" -d "charts_repo"
// charts_repo 하위에 tgz 파일 생긴 것 확인
helm repo index "charts_repo" --url="원격 레포의 charts_repo 경로" //빗버킷은 API주소 사용
index.yaml에 urls 경로 잘 등록 되었는지 확인.
git add .
git commit -m "커밋메시지"
git push
Source Repository : 원격 레포지토리 chart_repo 경로
Destinations : 적용 할 클러스터 , 네임스페이스 등록
[저장]
[VIA HTTPS]
Type : helm
Name : 사용 할 레포이름
Project : 위에서 만든 프로젝트 등록
Repository URL : 원격 레포의 chats_repo 경로
Username : 저장소 소유자 이름
Password : APP_PASSWORD
[저장]
SYNC POLICY : Manual (수동) or Automatic (자동)
[Auto] 선택시 :
PRUNE RESOURCES 은 변경 사항에 따라 리소스를 업데이터할 때, 기존의 리소스를 삭제하고 새로운 리소스를 생성한다. Job 리소스처럼 매번 새로운 작업을 실행해야 하는 경우 이 옵션을 사용한다.
SELF HEAL 은 ArgoCD가 지속적으로 git repository의 설정값과 운영 환경의 값을 자동 Sync하도록 한다. (default timeout 5 seconds)
[SET DELETION FINALIZER]
계단식 삭제 기능으로 상위 앱이 삭제될 때 하위 앱과 해당 리소스가 모두 삭제된다.
SOURCE
Repository URL : 등록된 매니페스트 Repo 선택 (Git / Helm 등록된 타입으로 자동 선택된다.)
Chart : Repository에 추가된 Helm Chart를 선택한다.
Version : Helm Chart의 버전을 선택한다.
1. Chart.yaml
version: 0.0.1 -> 0.0.2 변경
[저장]
2. helm package "차트경로" -d "index.yaml 경로"
3. helm repo index "index.yaml 경로" --url="차트 저장 될 경로 주소"
4. index.yaml 파일 확인 (0.0.2 버전의 내용이 저장 됨)
5. git add .
git commit -m "커밋 메시지"
git push
6. ArgoCD application 클릭 -> 좌측 상단에 "App Details" 클릭 -> revision 변경 [저장]