Helm 차트 릴리스

차트 버전 관리

주요 릴리스

  • 주요 릴리스는 차트 또는 GitLab 릴리스의 중요한 이정표 또는 주요 변경 사항을 위한 것입니다.

  • 우리는 주요 버전 번호를 증가시킵니다.

번경 사항

  • 의미있는 추가 사항 또는 변경 사항.
  • GitLab이나 차트에서의 팽창 변경.
  • GitLab 이미지의 주요 업데이트 (예: 12.0.0 릴리스).

마이너 릴리스

  • 마이너 릴리스는 GitLab 이미지의 마이너 릴리스 및 차트에서의 변경 사항에 따라 반복됩니다.
  • 우리는 이를 증가시킵니다.

패치 릴리즈

  • 이전 릴리즈에 대한 매우 안정적인 업데이트를 포함하는 변경 사항에 대한 패치 릴리스.

  • 우리는 이를 증가시킵니다.

예제 릴리즈 시나리오

차트 버전 GitLab 버전 릴리스 시나리오
0.2.0 11.0.0 GitLab 11 릴리스 및 차트 베타
0.2.1 11.0.1 GitLab 패치 릴리스

차트 릴리즈

차트의 새 버전 릴리즈는 릴리스 도구 리포지터리의 Helm 릴리스 작업에서 처리됩니다.

릴리스는 GitLab 릴리스의 일부로 진행됩니다. 필요한 경우 Distribution 팀은 추가적인 차트 릴리스를 시작할 수 있습니다. 릴리스 도구는 차트를 패키징하고 발행하는 파이프라인을 트리거합니다. charts.gitlab.io 리포지터리release_chart 작업을 참조하세요.

또한, 릴리스 도구는 다음을 자동화합니다.

  • 변경 로그
  • 차트 버전
  • 차트 appVersions
  • global.gitlabVersion 값 및
  • GitLab 버전에서 차트 버전 매핑

개발 빌드

마스터로의 모든 Merge에 대해 개발 차트 버전이 작성됩니다.

devel 채널을 사용하여 특정 버전의 현재 비 프로덕션 “개발” 릴리스를 추적할 수 있습니다.

helm repo add gitlab-devel https://gitlab.com/api/v4/projects/3828396/packages/helm/devel

그리고 --devel 옵션을 사용하여 특정 릴리스를 가리키는 helm에서 --devel 옵션을 사용할 수 있습니다.

helm install --devel --version 1.2.3-4567 gitlab-devel/gitlab

사용 가능한 devel 버전을 나열하려면:

helm search repo gitlab-devel --devel

매뉴얼으로 차트 릴리스

차트를 매뉴얼으로 릴리스하기 전에, 릴리스할 차트 버전의 안전 브랜치에서 master의 모든 차트 변경 사항이 복사되었는지 확인하세요.

예를 들어, 차트의 버전 0.2.1을 릴리스하려면 변경 사항이 0-2-stable에 있어야 합니다.

릴리스하는 방법과 일치하는 ChattOps 명령이 있습니다. 해당 릴리스 Slack 채널(예: #f_release_12_4)에서 다음 명령을 실행하십시오.

/chatops run helm tag <charts version> <GitLab version>

또는 다음과 같이 매뉴얼으로 실행할 수도 있습니다. ChattOps 명령을 사용하지 않는 방법은 다음과 같습니다.

  1. 릴리스 도구 리포지터리를 체크아웃하고 설정하세요.

    git clone git@gitlab.com:gitlab-org/release-tools.git
    bundle install
    
  2. 그런 다음 해당 Helm 릴리스 작업을 실행하세요.

    • GitLab 앱 버전을 변경하지 않고 릴리스하려면, 새로운 차트 버전(예: 0.2.1)으로 릴리스 작업을 호출하세요.
      • bundle exec rake release:helm:tag[0.2.1]
    • 차트 버전과 앱 버전 모두 변경하여 릴리스하려면 (예: GitLab 11.0.1과 함께 0.2.1)
      • bundle exec rake release:helm:tag[0.2.1,11.0.1]

    환경변수에서 TEST=true를 설정하여 푸시를 방지하는 드라이럼 모드에서 스크립트를 실행할 수 있습니다.