GitHub Actions를 사용하여 ACR(Azure Container Registry)에 HELM 3 차트 게시

4537 단어 azureacractionsgithub
내 게시물에서는 Azure DevOps를 사용하여 HELM 차트를 ACR에 게시하는 방법을 간략하게 설명했습니다. 이 게시물에서는 GitHub 작업을 사용하여 GitHub 작업을 사용하여 HELM 차트를 빌드하고 ACR에 게시합니다. 또한 GitHub 환경이 어떻게 작동하는지 살짝 엿볼 것입니다.



전제 조건



ACR 인스턴스가 리포지토리 범위 토큰을 사용하여 설정되었다고 가정하겠습니다. earlier post에서 이러한 방식으로 ACR을 설정하는 방법을 이미 다루었으므로 여기에는 단계를 포함하지 않겠습니다.

GitHub에서 비밀 설정



Azure Container Registry의 토큰을 GitHub 리포지토리 수준 비밀로 저장하려고 합니다. 그렇게 하려면 리포지토리 페이지에서 Settings를 클릭하고 Secrets 탭으로 이동합니다. 마지막으로 New repository secret를 클릭하고 토큰 이름과 암호를 추가합니다. 토큰 이름을 ACR_PUSH_USER로, 토큰 암호를 ACR_PUSH_TOKEN로 저장했습니다.

저장소 암호 추가

GitHub Actions에서 워크플로 만들기



ACR에 차트 게시



첫 번째 단계는 .github\workflows 폴더 아래에 yaml 파일을 만들고 기본 구조를 설정하는 것입니다. 첫 번째 항목(아래 yaml 참조)은 현재 workflow_dispatch를 사용하여 수동 트리거를 통해 트리거하도록 설정된 작업의 이름을 정의하고 나중에 작업에서 사용할 몇 가지 환경 변수를 정의합니다.

name: ci

on: 
  workflow_dispatch:

env:
  HELM_EXPERIMENTAL_OCI: 1
  HELM_VERSION_TO_INSTALL: 3.5.0
  ACR_NAME: acrdemoutkarsh
  ACR_REPO_NAME: helmdemo/vote-app



첫 번째 환경 변수는 OCI package 을 게시할 것임을 ACR에 전달합니다. 다음 몇 가지 변수는 러너에 필요한 HELM 버전, 이 차트를 게시할 ACR 이름, 마지막으로 이 차트를 게시할 저장소(아래 섹션에서 사용됨)를 정의합니다.

에이전트에 Helm 3 설치



이제 모든 변수를 정의했으므로 작업을 추가하고 ACR에 차트를 게시하는 워크플로를 구축하는 단계가 필요합니다. 그런 다음 HELM 명령을 실행하기 전에 에이전트에 HELM 도구를 설치해야 합니다. 아래 yaml을 사용하여 수행합니다.

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

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



보시다시피 build라는 이름의 작업이 하나 있습니다(publish acr로 표시됨 - 아래 스크린샷 참조). 이 작업은 ubuntu-latest 에이전트에서 실행됩니다. 또한 환경prod에 대한 배포를 목표로 하고 있습니다. GitHub의 Environments은 승인자, 환경에 대한 추가 보호 규칙 및 환경별 비밀을 가질 수 있기 때문에 멋집니다. 아래 스크린샷에서 흐름이 어떻게 검토를 기다리고 있는지 확인하십시오.



다음으로 리포지토리를 체크아웃하고 Azure repo의 setup-helm 작업을 사용하여 HELM의 특정 버전( 3.5.0 )을 설치합니다.

Helm을 사용하여 ACR에 로그인



다음으로 HELM 도구를 사용하여 ACR 레지스트리에 로그인해야 합니다.

- name: login to acr using helm
  run: |
    echo $ | helm registry login $.azurecr.io --username $ --password-stdin 



차트를 저장하고 ACR에 푸시



다음으로 차트 디렉터리를 로컬 캐시에 저장하고 ACR에 게시해야 합니다.

- name: save helm chart to local registry
  run: |
    helm chart save $/src/azure-vote-helm-chart/ $.azurecr.io/$:latest

- name: publish chart to acr
  run: |
    helm chart push $.azurecr.io/$:latest



워크플로를 실행하면 아래와 같은 출력이 표시됩니다.



ACR로 이동하면 위의 helmdemo/vote-app 섹션에서 선언한 대로 env 저장소에 올바르게 게시된 문자를 볼 수 있습니다.



결론



이 게시물에서는 GitHub 작업을 사용하여 ACR에 OCI 패키지(helm3 차트)를 얼마나 쉽게 배포할 수 있는지 확인했습니다. 또한 GitHub 환경이 환경에 대한 변경 사항을 승인하는 데 어떻게 도움이 되는지 살펴보았습니다. 이 게시물을 즐겁게 읽으셨기를 바랍니다.

좋은 웹페이지 즐겨찾기