GHCR(GitHub Container Registry)을 사용하여 Helm 차트 호스팅
5424 단어 devopskubernetesgithub
저는 최근에 체크아웃Helm을 시작했고 차트가 Docker 컨테이너 이미지에서도 사용되는 일반 OCI(Open Container Image) 표준을 따르기 때문에 GitHub Container Registry (GHCR)에서 차트를 호스팅하는 조합에 대해 생각했습니다. 그 때문에 공개 차트/컨테이너는 무료이므로 GHCR에서 내 차트를 호스팅하는 데 필요한 단계를 이해하려고 노력했습니다. 다음 게시물은 필요한 필수 단계를 설명합니다. 그럼 바로 들어가 보겠습니다.
지배
우선 OCI 지원이 실험적이기 때문에 Helm이 버전
>3.8
에 설치되어 있는지 확인하십시오. 환경 변수3.8
를 설정하면 이전HELM_EXPERIMENTAL_OCI=1
기능을 사용할 수 있습니다.아직 Helm을 설치하지 않은 경우 macOS에서
brew install helm
를 통해 설치할 수 있습니다. 다른 운영 체제의 경우 Helm의 문서에서 추가 설치 옵션1을 확인하십시오.프레젠테이션을 위해
helm create <chart-name>
를 실행한 결과인 Helm에서 만든 기본 차트를 사용하겠습니다. 이 게시물에서는 helm create example-chart
라고 부르겠습니다. 생성된 디렉토리의 콘텐츠는 이 게시물의 주제가 아니지만 Helm 문서2에서 자세한 정보를 찾을 수 있습니다.모두 패키징하고 GHCR로 푸시할 준비를 하기 위해 Helm은 패키지에 대한 디렉토리 인수를 취하는
helm package
명령을 제공합니다. 차트의 상위 디렉토리에 있습니다. 따라서 helm package example-chart
를 사용하면 이름이 example-chart-0.1.0.tgz
인 새 패키지가 생성됩니다. 버전 번호는 example-chart/Chart.yaml
속성 아래의 version
에서 변경할 수 있습니다.GitHub 컨테이너 레지스트리 준비
GitHub Container Registry에 푸시하려면 개인 액세스 토큰으로 인증해야 합니다. 만든 적이 없는 경우 여기에 설명된 단계를 따를 수 있습니다3 . 토큰에 다음 권한이 있는지 확인하십시오.
read:packages
write:packages
delete:packages
터미널 세션을 위해 액세스 토큰을 내보내고
export GHCR_PAT=ghp_...
기호 다음에 토큰과 함께 =
를 사용하거나 .zshrc
또는 .bashrc
를 사용할 수 있습니다. 이렇게 하려면 예를 들어 파일을 편집하십시오. nano .zshrc
파일에 내보내기 행을 추가합니다. 필요한 것은 현재 기본 셸에 따라 다릅니다. 어느 것이 기본 사용인지 확인하려면 터미널에서 echo $SHELL
를 사용하십시오.ctrl
+ x
를 통해 편집기를 저장하고 닫은 후 y
로 확인하면 .zshrc
로 source .zshrc
를 다시 로드해야 합니다. 그 후에는 토큰을 사용할 수 있어야 합니다.로그인
작동하는지 확인하려면
echo $GHCR_PAT | docker login ghcr.io -u <GITHUB-USERNAME> --password-stdin
플래그 다음에 사용자 이름을 사용하여 -u
를 사용하십시오.모든 것이 올바르게 구성된 경우
Login Succeeded
의 응답을 얻어야 합니다.GHCR로 푸시
지금 누르는 것은 쉽습니다. 현재 차트 버전을 가져오고 Helm을 사용하여 GHCR에 푸시합니다.
export CHART_VERSION=$(grep 'version:' ./example-chart/Chart.yaml | tail -n1 | awk '{ print $2}')
helm push example-chart-${CHART_VERSION}.tgz oci://ghcr.io/niklasmtj
다음과 비슷한 결과를 얻어야 합니다.
Pushed: ghcr.io/niklasmtj/example-chart:0.1.0
Digest: sha256:c13e9bc40b48460a7b3af6a5df78b4faeff6af7d0688333124884117478be18c
이제 패키지가 푸시되고 탭 패키지 아래의 프로필을 통해 확인할 수 있습니다. 예를 들어, 이 예제 차트는 https://github.com/users/niklasmtj/packages/container/package/example-chart에서 찾을 수 있습니다.
이것이 GitHub의 Container Registry에서 Helm 차트를 호스팅하는 방법입니다.
읽어 주셔서 감사합니다,
니클라스
TLDR 명령
helm create <chart-name>
helm package <chart-name>
echo $GHCR_PAT | docker login ghcr.io -u <GITHUB-USERNAME> --password-stdin
export CHART_VERSION=$(grep 'version:' ./path/to/Chart.yaml | tail -n1 | awk '{ print $2 }')
helm push <chart-name>-${CHART_VERSION}.tgz oci://ghcr.io/<GITHUB-USERNAME>
https://helm.sh/docs/intro/install/ ↩
https://helm.sh/docs/chart_template_guide/getting_started/ ↩
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry ↩
Reference
이 문제에 관하여(GHCR(GitHub Container Registry)을 사용하여 Helm 차트 호스팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/niklasmtj/use-github-container-registry-ghcr-to-host-your-helm-charts-nef텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)