사내 개발 시 많은 회사들이 Image Registry로 ECR이나 Harbor 또는 Nexus를 많이 사용한다.
Harbor는 컨테이너 이미지뿐만 아니라 Helm Repository로도 사용할 수 있다.
이번 글에는 해당 과정을 알아볼 것이다.
Helm Chart 제작
간단하게 프로젝트를 만들고, 이를 tgz파일로 패키징 하는 작업을 할 것이다.
# helm 차트의 새 프로젝트 생성
helm create test
위 명령어를 실행하면 test라는 디렉터리가 생기고, 내부에는 아래 사진과 같은 구조로 생성된다.
test라는 디렉토리로 이동해서 아래의 명령어를 실행하면 존재하는 파일을 압축하여 tgz파일로 패키징 해준다.
# test 디렉토리로 이동
cd test
# helm 차트 패키징
helm package .
사진으로 보는 것처럼 생성된 test-0.1.0.tgz 파일은 harbor로 push 되는 실제 Helm의 차트 파일이다.
Harbor Project 생성
구축한 하버에서 프로젝트를 생성해 준다.
※ 과거에는 Repository의 용도를 컨테이너 이미지나 헬름 차트로 지정하는 설정이 있었으나, 현재는 따로 존재하지 않고 컨테이너 이미지나 헬름 차트를 둘 다 올릴 수 있다.
Helm Login 및 Push
프로젝트를 생성했으면, CLI에서 해당 Harbor Registry로 로그인하고, 생성된 헬름 차트 파일(tgz)을 Push 하면 끝이다.
로그인을 할 때에는, Harbor에 존재하는 계정으로 로그인하면 된다.
# Registry에 login
helm registry login <Harbor Registry 도메인>
# Http 사용 또는 Self-Signed TLS 이용 시
helm registry login <Harbor Registry 도메인> --insecure
Username과 Password를 입력하고 로그인이 성공하면, 아래와 같이 출력된다.
이 다음은 헬름 차트를 Registry로 Push해주는 것이다.
# Harbor로 헬름 차트를 push
helm push test-0.1.0.tgz oci://<Harbor Registry 도메인>/test
# Http 사용 또는 Self-Signed TLS 이용 시
helm push test-0.1.0.tgz oci://<Harbor Registry 도메인>/test --insecure-skip-tls-verify
성공적으로 차트가 Push 되면, 하버에서 올라간 차트를 확인할 수 있다.
아래처럼 세부 내용도 확인할 수 있다.