패키지 레지스트리의 Helm 차트

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Beta
caution

GitLab의 Helm 차트 레지스트리는 기능이 제한적이어서 프로덕션 환경에 사용하기에 준비되지 않았으며 개발 중입니다. 이 epic에서 나머지 작업 및 프로덕션 사용 준비에 대한 타임라인에 대해 자세히 설명하고 있습니다.

프로젝트의 패키지 레지스트리에 Helm 패키지를 게시하고, 필요할 때마다 해당 패키지를 설치하세요.

Helm 패키지 관리자 클라이언트가 사용하는 특정 API 엔드포인트에 대한 설명은 Helm API 문서를 참조하세요.

Helm 패키지 빌드

다음 주제에 대한 Helm 문서에서 자세히 알아보세요:

Helm 리포지터리 인증

Helm 리포지터리에 인증하려면 다음 중 하나가 필요합니다:

더 알아보기: 본 문서에서 직접 연결

패키지 게시

차트 또는 버전의 중복이 있는 Helm 차트를 게시할 수 있습니다. 중복이 있는 경우 GitLab은 항상 최신 버전의 차트를 반환합니다.

mychart-0.1.0.tgz를 원하는 채널로 업로드하려면 다음을 사용하세요:

  • curl:
curl --request POST \
     --form 'chart=@mychart-0.1.0.tgz' \
     --user <username>:<access_token> \
     https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/api/<channel>/charts
  • 또는 helm cm-push 플러그인:
helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
helm cm-push mychart-0.1.0.tgz project-1

더 알아보기: 본 문서에서 직접 연결

릴리스 채널

GitLab에서 Helm 차트를 채널에 게시할 수 있습니다. 채널은 Helm 차트 리포지터리를 구분하는 데 사용할 수 있는 방법입니다.

더 알아보기: 본 문서에서 직접 연결

CI/CD를 사용하여 Helm 패키지 게시

GitLab CI/CD를 통해 자동으로 Helm 패키지를 게시하려면 명령어에서 CI_JOB_TOKEN을 사용할 수 있습니다.

# 명령어 예시

더 알아보기: 본 문서에서 직접 연결

패키지 설치

최신 버전의 차트를 설치하려면 다음 명령을 사용하세요:

helm repo add --username <username> --password <access_token> project-1 https://gitlab.example.com/api/v4/projects/<project_id>/packages/helm/<channel>
helm install my-release project-1/mychart

더 알아보기: 본 문서에서 직접 연결

문제 해결

패키지 레지스트리에 업로드한 차트가 표시되지 않음

sidekiq log를 확인하여 관련 오류를 찾으세요. Validation failed: Version is invalid라는 오류가 표시되면 Chart.yaml 파일에 있는 버전이 Helm Chart 버전 지정 사항에 따르지 않았다는 것을 의미합니다. 오류를 해결하려면 올바른 버전 구문을 사용하고 차트를 다시 업로드하세요.

더 알아보기: 본 문서에서 직접 연결

helm push로 인해 오류 발생

Helm 3.7에서 helm-push 플러그인에 대한 중단 변경 사항이 도입되었습니다. Chart Museum 플러그인을 업데이트하여 helm cm-push를 사용하도록 업데이트하세요.