본문 바로가기
Engineering

Helm Chart 인덱스 파일과 패키지 생성 및 GitHub 페이지로 호스팅하기

by weq155 2023. 12. 8.
반응형

서론

Helm은 Kubernetes에서 애플리케이션을 관리하는 데 널리 사용되는 패키징 도구입니다.
이 포스트에서는 Helm 차트를 만들고, 차트 리포지토리를 관리하는 방법,
그리고 GitHub 페이지를 사용하여 차트 리포지토리를 호스팅하는 방법에 대해 알아보겠습니다.

 


Helm Chart 패키징

 

Helm Chart 생성

  1. Helm Chart는 Kubernetes 애플리케이션에 대한 모든 필요 파일을 포함하는 디렉토리입니다. 먼저 새로운 Helm 차트를 생성해봅시다:

  2. 이 명령어는 `${ChartName}`라는 이름의 새 차트를 생성합니다.
helm create ${ChartName}

 

차트 정보 수정

  • 생성된 차트의 `Chart.yaml` 파일을 열고 애플리케이션에 대한 정보를 수정합니다. 예를 들어, 버전, 설명, 홈페이지 URL 등을 적절히 설정합니다.

차트 패키징

  • 차트를 패키징하여 배포할 수 있는 형태로 만듭니다:
# Chart의 경로 설정하고 버전, 그리고 tgz 파일이 저장될 곳은 -d 옵션 뒤에 입력
helm package ${ChartDir} --version ${ChartVersion} -d ${PackageDir}
  • 이 명령은 `${ChartDir}` 디렉토리를 ${PackageDir}에 `.tgz` 파일로 압축합니다.

 


Helm 리포지토리 인덱스 파일 생성

 

인덱스 파일 생성

Helm 리포지토리에 대한 인덱스 파일을 생성합니다. 이 파일은 차트의 메타데이터를 포함합니다:

# 만약 다른경로에 index 폴더를 생성하고 싶다면 . 말고 경로 설정
helm repo index ./${Package Dir} # 위에서 -d ${Package Dir} 옵션을 줬다면 같은 경로에 저장하는 것이 좋음
  • 이 명령은 현재 디렉토리의 모든 차트에 대한 `index.yaml` 파일을 생성합니다.

 


GitHub 페이지로 Helm 리포지토리 호스팅

 

GitHub 리포지토리 생성

  • GitHub에 새로운 리포지토리를 생성하고, 로컬에 클론합니다.

차트와 인덱스 파일 업로드

  • 생성된 `.tgz` 차트 파일과 `index.yaml` 파일을 GitHub 리포지토리에 업로드하고 커밋합니다.

GitHub 페이지 활성화

  • 리포지토리 설정에서 GitHub 페이지를 활성화합니다. 이를 통해 리포지토리가 웹 호스팅되며, Helm 리포지토리로 사용할 수 있습니다.

브랜치와 디렉토리 설정하고 Save

 

 

Helm 리포지토리 추가

생성된 GitHub 페이지 URL을 사용하여 Helm 리포지토리를 추가합니다:

# 기본적으로 github.io 페이지를 생성하면 아래의 구조로 URL이 생성됨 만약 ${PackageDir}을 설정했다면 URL 뒤에 추가
helm repo add myrepo https://${GitUser}.github.io/${RepoName}/${PackageDir}
  • 이제 Helm을 통해 `myrepo`에서 차트를 검색하고 설치할 수 있습니다.

 


결론

Helm 차트를 만들고, 패키징하며, GitHub 페이지를 통해 공유하는 방법은 Helm을 사용하는 개발자들에게 유용합니다. 이를 통해 Kubernetes 애플리케이션의 배포 및 관리를 보다 쉽게 만들 수 있습니다.

 


 

이 포스트는 Helm 차트의 기본적인 패키징 방법과 GitHub 페이지를 통한 차트 호스팅 방법을 간략하게 설명합니다. 사용자의 요구에 따라 추가적인 내용이나 보다 상세한 설명을 추가할 수 있습니다.

반응형