GiitHub 개인 창고를 Helm 창고로 사용

문제.


회사 내에서 사용하는 헬름그래프의 공통화를 시작하려고 헬름창고를 마련하려고 합니다.
창고를 개인적으로 보관하고 싶습니다.
나는 가능한 한 간단하게 준비하고 싶다.

공공장소에서 할 수 있다면.


공중창고라도 괜찮다면 캐럿-releaser를 사용하면 간단하다.
https://github.com/helm/chart-releaser
https://github.com/helm/chart-releaser-action

솔루션


창고에 필요한 물건


  • 다운로드 가능helm package에서 생성된 파일.tgz

  • 다운로드 가능helm repo index에서 생성된index.yaml
  • 에 있는 2개, 제한된 사람(GiitHub Organization 소속자)만 다운로드 가능
  • 차트 배치


    나는 그것을 GiitHub 개인 창고에 두기로 결정했다.그러면 창고 내용물.
    https://raw.githubusercontent.com/
    다운로드는 가능하지만 아무도 방문할 수 없습니다.
    Organization을 소유하고 개인 액세스 토큰을 발행하는 사람
    https://[email protected]/
    를 참고하십시오.

    예제

    charts브랜치의 루트 레이어 설정index.yamlchart-version.tgz일 경우 이렇게 사용할 수 있습니다.
    helm repo add $HELM_REPO_NAME https://[email protected]/$ORG/$REPO/charts/
    
    helm template $HELM_REPO_NAME/$CHART_NAME -f values.yaml --version 0.1.0
    

    차트 자동 게시


    Chart.yaml이 업데이트되면 자동으로 helm packagehelm repo index를 실행하고 생성물을 charts 지점으로 밀어내면 도표의 발표가 자동화됩니다.
    GiitHub Action으로 해볼게요.
    Chart.하면, 만약, 만약...
    조사를 위해
    https://github.com/jitterbit/get-changed-files
    사용 중입니다.
    name: Release Charts
    
    on:
      push:
        branches:
          - main
        paths:
          - "**Chart.yaml"
    
    jobs:
      release:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout
            uses: actions/checkout@v2
            with:
              fetch-depth: 0
    
          - name: Configure Git
            run: |
              git config user.name "$GITHUB_ACTOR"
              git config user.email "[email protected]"
    
          - name: Install Helm
            uses: azure/setup-helm@v1
            with:
              version: v3.5.4
    
          - name: Get changed files
            id: files
            uses: jitterbit/get-changed-files@v1
            with:
              format: 'csv'
    
          - name: Push archives and index
            shell: bash
            run: |
              echo ${{ steps.files.outputs.added_modified }}
              mapfile -d ',' -t added_modified_files < <(printf '%s,' '${{ steps.files.outputs.added_modified }}')
              for added_modified_file in "${added_modified_files[@]}"; do
                if [[ ${added_modified_file} == *Chart.yaml ]]; then
                  echo ${added_modified_file} | sed -e 's/Chart.yaml//' | xargs helm package -d .package
                fi
              done
              if [[ -n $(ls .package) ]]; then
                git switch charts
                mv .package/* ./
                helm repo index .
                git add -Av
                git commit -m "update charts"
                git push origin charts
              else
                echo "Nothing to do."
              fi
    

    좋은 웹페이지 즐겨찾기