Helm 차트 패키지 레지스트리
- GitLab 14.1에서 소개되었습니다.
프로젝트의 패키지 레지스트리에 Helm 패키지를 게시한 후 필요할 때마다 해당 패키지를 설치하세요.
Helm 패키지 관리자 클라이언트가 사용하는 특정 API 엔드포인트에 대한 설명은 Helm API 문서를 참조하십시오.
Helm 패키지 빌드
다음 주제에 대해 Helm 문서에서 더 읽어보세요:
Helm 저장소의 인증
Helm 저장소에 인증하려면 다음 중 하나가 필요합니다:
- 범위가
api
로 설정된 개인 액세스 토큰. - 범위가
read_package_registry
,write_package_registry
또는 둘 다로 설정된 배포 토큰. - CI/CD 작업 토큰.
패키지 게시
빌드되면 차트는 curl
또는 helm cm-push
를 사용하여 원하는 채널에 업로드될 수 있습니다:
-
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
-
<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 패키지 게시
Helm 채널 가이드를 통해 자동으로 Helm 패키지를 게시하려면 명령어에서 개인 액세스 토큰 대신 CI_JOB_TOKEN
을 사용할 수 있습니다.
예시:
image: curlimages/curl:latest
stages:
- upload
upload:
stage: upload
script:
- 'curl --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 사용에서 확인하세요.
문제 해결
패키지 레지스트리에 차트가 업로드된 후에 표시되지 않음
Sidekiq 로그에서 관련된 오류를 확인하세요. Validation failed: Version is invalid
라는 메시지가 나오면, 이는 Chart.yaml
파일의 버전이 Helm 차트 버전 지정 규격을 준수하지 않음을 의미합니다. 오류를 해결하려면 올바른 버전 구문을 사용하고 차트를 다시 업로드하세요.
UI에서 패키지 처리 오류에 대한 더 나은 오류 메시지를 제공하는 것은 이슈 330515에서 제안되었습니다.
helm push
를 실행하면 오류가 발생함
Helm 3.7에서 helm-push
플러그인에 대한 중단 변경 사항이 소개되었습니다. Chart Museum 플러그인을 업데이트하여 helm cm-push
를 사용하세요.