HELM 3 차트를 GitHub Container Registry에 게시하는 방법

4356 단어 containergithubhelm
및 를 사용하여 HELM 차트를 ACR에 게시하는 방법을 이미 작성했습니다. 그러나 HELM3 차트(또는 모든 OCI 호환 패키지)를 GitHub Container Registry(GCR)에 게시할 수도 있다는 사실을 알고 계셨습니까? 이 포스트에서 우리는 그 방법을 볼 것입니다.

향상된 컨테이너 지원 사용



GitHub Container Registry는 현재 공개 베타 버전입니다. 따라서 첫 번째 단계는 계정에 대해 GitHub Container Registry를 활성화했는지 확인하는 것입니다. GitHub 개인 계정이 있는 경우 Feature Preview 창에서 할 수 있습니다.



Enterprise 계정이 있는 경우 Settings 페이지로 이동하여 수행할 수 있습니다.



GitHub 설명서에는 향상된 컨테이너 지원을 활성화하는 단계별 가이드가 있습니다here.

GitHub Actions를 사용하여 HELM 3 차트 게시



GitHub Actions를 사용하여 몇 단계만 거치면 됩니다. 다른 작업과 마찬가지로 .github\workflow 폴더를 생성하여 시작하고 리포지토리에 yml 파일을 생성합니다.
name 및 트리거 부분을 제외하고 YAML의 첫 번째 단계는 몇 가지 필요한 변수를 정의하는 것입니다.

env:
  HELM_EXPERIMENTAL_OCI: 1 #enable OCI support
  HELM_VERSION_TO_INSTALL: 3.5.0 # version of HEL to install
  GCR_IMAGE: ghcr.io/$/vote-app



YAML에서 나중에 실행할 HELM 명령의 첫 번째 변수enables the OCI support입니다.

다음 변수HELM_VERSION_TO_INSTALL는 HELM의 특정 버전을 설치하기 위해 나중에 워크플로에서 사용됩니다. 이 워크플로에는 3.5.0 가 필요합니다.

마지막 변수GCR_IMAGE는 게시에 대한 차트 이름을 구성합니다.

The GitHub Container Registry hosts containers at ghcr.io/OWNER/IMAGE-NAME. I get the OWNER of the repository using github.repository_owner from github context.



다음 단계는 (HELM 차트가 있는) 코드를 다운로드하고 실행기/에이전트에 특정 HELM 도구를 설치하는 단계로 job를 정의하는 것입니다.

jobs:
  build:
    name: publish gcr
    runs-on: ubuntu-latest
    environment: prod
    steps:
      - uses: actions/checkout@v2
        name: checkout repo

      - name: install helm
        uses: Azure/setup-helm@v1
        with:
          # Version of helm
          version: ${{ env.HELM_VERSION_TO_INSTALL }} # default is latest



위의 단계는 필수 HELM 도구로 에이전트 시스템을 설정합니다.

다음으로 GCR(GitHub Container Registry)에 로그인하고 마지막으로 차트를 게시하기 위해 몇 가지helm 명령을 실행해야 합니다.

  • ${{ secrets.GITHUB_TOKEN }}를 사용하여 GCR에 로그인합니다.

    GitHub Container Registry only recently started supporting GITHUB_TOKEN. Previously you had to create a separate PAT token with specific permissions to GCR.




  • 워크플로의 다음 두 단계는 차트를 저장하고 게시하는 것입니다. 아래와 같이 helm chart savehelp chart push 명령을 사용하여 이를 수행합니다.

    - name: login to acr using helm
      run: |
        echo ${{ secrets.GITHUB_TOKEN }} | helm registry login ${{ env.GCR_IMAGE }} --username ${{ github.repository_owner }} --password-stdin
    
    - name: save helm chart to local registry
      run: |
        helm chart save ${{ github.workspace }}/src/azure-vote-helm-chart/ ${{ env.GCR_IMAGE }}:${{ github.sha }}
    
    - name: publish chart to acr
      run: |
        helm chart push ${{ env.GCR_IMAGE }}:${{ github.sha }}
    
    


    즉, 모두 성공적으로 작동했다면 GCR에서 차트를 볼 수 있습니다.

    좋은 웹페이지 즐겨찾기