패키지 레지스트리의 Helm 차트
Offering: GitLab.com, Self-managed, GitLab Dedicated
Status: Beta
GitLab의 Helm 차트 레지스트리는 개발 중이며 제한된 기능으로 인해 프로덕션 사용을 위한 준비가 되어 있지 않습니다. 이 에픽은 프로덕션 준비를 위한 남은 작업과 일정에 대한 세부 정보를 제공합니다.
프로젝트의 패키지 레지스트리에 Helm 패키지를 게시하십시오. 그런 다음 필요할 때마다 의존성으로 사용하기 위해 패키지를 설치하십시오.
Helm 패키지 관리자 클라이언트가 사용하는 특정 API 엔드포인트에 대한 문서는 Helm API 문서를 참조하십시오.
Helm 패키지 빌드하기
다음 주제에 대한 Helm 문서를 자세히 읽어보세요:
Helm 리포지토리에 인증하기
Helm 리포지토리에 인증하려면 다음 중 하나가 필요합니다:
-
api
범위가 설정된 개인 액세스 토큰. -
read_package_registry
,write_package_registry
또는 둘 다에 대한 범위가 설정된 배포 토큰. - CI/CD 작업 토큰.
패키지 게시하기
빌드가 완료되면 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
차트는 분리할 수 있습니다.
Helm 패키지 게시를 위한 CI/CD 사용
GitLab CI/CD를 통해 자동화된 Helm 패키지를 게시하려면, 명령어에서 개인 액세스 토큰 대신 CI_JOB_TOKEN
을 사용할 수 있습니다.
예를 들면:
image: curlimages/curl:latest
stages:
- upload
upload:
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 사용하기를 참조하십시오.
문제 해결
업로드 후 패키지 레지스트리에 차트가 보이지 않습니다
관련 오류에 대한 Sidekiq 로그를 확인하십시오.
Validation failed: Version is invalid
메시지가 표시되면, Chart.yaml
파일의 버전이 Helm 차트 버전 지정 규칙을 따르지 않는 것입니다.
오류를 수정하려면 올바른 버전 구문을 사용하고 차트를 다시 업로드하십시오.
UI의 패키지 처리 오류에 대해 더 나은 오류 메시지를 제공하는 지원이 제안된 문제는 330515입니다.
helm push
에서 오류가 발생합니다
Helm 3.7에서는 helm-push
플러그인에 대한 중대한 변경 사항이 도입되었습니다.
Chart Museum 플러그인을 업데이트하여 helm cm-push
를 사용하십시오.