패키지 레지스트리의 Helm 차트
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
프로젝트의 패키지 레지스트리에 Helm 패키지를 게시합니다. Helm 패키지 관리자 클라이언트가 사용하는 특정 API 엔드포인트 문서는 Helm API 문서를 참조하세요. 다음 주제에 대한 Helm 문서에서 자세히 알아보세요:
프로젝트의 패키지 레지스트리에 Helm 패키지를 게시합니다. 그런 다음 의존성으로 사용해야 할 때마다 패키지를 설치합니다.
Helm 패키지 관리자 클라이언트가 사용하는 특정 API 엔드포인트 문서는 Helm API 문서를 참조하세요.
Helm 패키지 빌드#
다음 주제에 대한 Helm 문서에서 자세히 알아보세요:
Helm 리포지터리 인증#
Helm 리포지터리에 인증하려면 다음 중 하나가 필요합니다:
api범위로 설정된 개인 액세스 토큰.read_package_registry,write_package_registry또는 두 가지 모두의 범위로 설정된 배포 토큰.- CI/CD job 토큰.
패키지 게시#
중복된 이름이나 버전의 Helm 차트를 게시할 수 있습니다. 중복이 존재하는 경우 GitLab은 항상 최신 버전의 차트를 반환합니다.
빌드된 차트는 curl 또는 helm cm-push를 사용하여 원하는 채널에 업로드할 수 있습니다:
-
curl을 사용하는 경우:curl --fail-with-body --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<username>: GitLab 사용자 이름 또는 배포 토큰 사용자 이름.<access_token>: 개인 액세스 토큰 또는 배포 토큰.<project_id>: 프로젝트 ID(42와 같이) 또는 프로젝트의 URL 인코딩된 경로(group%2Fproject와 같이).<channel>: 채널 이름(stable과 같이).
-
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<username>: GitLab 사용자 이름 또는 배포 토큰 사용자 이름.<access_token>: 개인 액세스 토큰 또는 배포 토큰.<project_id>: 프로젝트 ID(42와 같이).<channel>: 채널 이름(stable과 같이).
릴리스 채널#
GitLab의 채널에 Helm 차트를 게시할 수 있습니다. 채널은 Helm 차트 리포지터리를 구분하는 방법입니다.
예를 들어 stable과 devel을 채널로 사용하여 사용자가 stable 리포지터리를 추가하는 동안 devel 차트를 격리할 수 있습니다.
CI/CD를 사용하여 Helm 패키지 게시#
GitLab CI/CD를 통해 자동으로 Helm 패키지를 게시하려면 명령어에서 개인 액세스 토큰 대신 CI_JOB_TOKEN을 사용할 수 있습니다.
예를 들어:
stages:
- upload
upload:
image: curlimages/curl:latest
stage: upload
script:
- 'curl --fail-with-body --request POST --user gitlab-ci-token:$CI_JOB_TOKEN --form "chart=@mychart-0.1.0.tgz" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/helm/api/<channel>/charts"'
<username>: GitLab 사용자 이름 또는 배포 토큰 사용자 이름.<access_token>: 개인 액세스 토큰 또는 배포 토큰.<channel>: 채널 이름(stable과 같이).
패키지 설치#
각 패키지에 대해 가장 최근의 패키지 파일만 반환됩니다.
최신 버전의 차트를 설치하려면 다음 명령어를 사용하세요:
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
<username>: GitLab 사용자 이름 또는 배포 토큰 사용자 이름.<access_token>: 개인 액세스 토큰 또는 배포 토큰.<project_id>: 프로젝트 ID(42와 같이).<channel>: 채널 이름(stable과 같이).
리포지터리가 이전에 추가된 경우 다음을 실행해야 할 수 있습니다:
helm repo update
Helm 클라이언트를 가장 현재 사용 가능한 차트로 업데이트하려면.
자세한 내용은 Helm 사용하기를 참조하세요.
Helm 패키지 삭제#
사전 요구 사항:
- Maintainer 또는 Owner 권한이 있어야 합니다.
패키지를 삭제하기 전에 관련 보안 위험을 이해하고 있는지 확인하세요.
패키지를 삭제하려면 다음 중 하나를 사용할 수 있습니다:
트러블슈팅#
업로드 후 패키지 레지스트리에 차트가 표시되지 않음#
관련 오류가 있는지 Sidekiq 로그를 확인하세요. Validation failed: Version is invalid가 표시되면 Chart.yaml 파일의 버전이 Helm Chart 버전 관리 사양을 따르지 않는 것을 의미합니다.
오류를 수정하려면 올바른 버전 구문을 사용하고 차트를 다시 업로드하세요.
helm push 오류 발생#
Helm 3.7에서 helm-push 플러그인의 호환성을 깨는 변경이 도입되었습니다. helm cm-push를 사용하도록 Chart Museum 플러그인을 업데이트할 수 있습니다.
