GitHub Actions를 사용하여 ACR(Azure Container Registry)에 HELM 3 차트 게시
전제 조건
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 환경이 환경에 대한 변경 사항을 승인하는 데 어떻게 도움이 되는지 살펴보았습니다. 이 게시물을 즐겁게 읽으셨기를 바랍니다.
Reference
이 문제에 관하여(GitHub Actions를 사용하여 ACR(Azure Container Registry)에 HELM 3 차트 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/onlyutkarsh/publish-helm-3-charts-to-azure-container-registry-acr-using-github-actions-10e7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)