Helm 차트에서 Linux 패키지로 이전

Tier: Free, Premium, Ultimate
Offering: Self-Managed

Helm 설치에서 Linux 패키지(옴니버스) 설치로 이전하려면:

  1. 왼쪽 사이드바에서 아래쪽에 있는 관리자 영역(Admin Area)을 선택합니다.
  2. 현재 GitLab 버전을 확인하려면 개요(Overview) > 컴포넌트(Components)를 선택하세요.
  3. 깨끗한 머신을 준비하고, 해당하는 GitLab Helm 차트 버전에 맞는 Linux 패키지를 설치합니다.
  4. 이전에 GitLab Helm 차트 인스턴스에서 Git 리포지터리의 무결성을 확인합니다.
  5. GitLab Helm 차트 인스턴스 백업을 생성하고, 암호를 백업하는 것을 잊지 마세요.
  6. Linux 패키지 인스턴스에서 /etc/gitlab/gitlab-secrets.json을 백업합니다.
  7. kubectl 명령을 실행하는 작업 스테이션에 yq 도구(버전 4.21.1 이상)를 설치합니다.
  8. 작업 스테이션에서 /etc/gitlab/gitlab-secrets.json 파일의 사본을 만듭니다.
  9. 아래 명령을 실행하여 GitLab Helm 차트 인스턴스의 비밀을 얻습니다. 적절한 값을 사용하여 GITLAB_NAMESPACERELEASE를 교체하세요:

    kubectl get secret -n GITLAB_NAMESPACE RELEASE-rails-secret -ojsonpath='{.data.secrets\.yml}' | yq '@base64d | from_yaml | .production' -o json > rails-secrets.json
    yq eval-all 'select(filename == "gitlab-secrets.json").gitlab_rails = select(filename == "rails-secrets.json") | select(filename == "gitlab-secrets.json")' -ojson  gitlab-secrets.json rails-secrets.json > gitlab-secrets-updated.json
    
  10. 결과물은 gitlab-secrets-updated.json이며, 이를 사용하여 Linux 패키지 인스턴스의 이전 버전인 /etc/gitlab/gitlab-secrets.json을 교체할 수 있습니다.
  11. /etc/gitlab/gitlab-secrets.json을 교체한 후 Linux 패키지 인스턴스를 다시 구성합니다:

    sudo gitlab-ctl reconfigure
    
  12. Linux 패키지 인스턴스에서 객체 리포지터리(object storage)를 구성하고, LFS, artifacts, 업로드 등을 테스트하여 작동 여부를 확인합니다.
  13. 컨테이너 레지스트리를 사용하는 경우, 별도로 객체 리포지터리를 구성하세요. 통합된 객체 리포지터리는 지원되지 않습니다.
  14. Helm 차트 인스턴스에 연결된 객체 리포지터리의 데이터를 Linux 패키지 인스턴스에 연결된 새로운 리포지터리로 동기화합니다. 몇 가지 참고 사항:

    • S3 호환 리포지터리를 사용하는 경우 데이터를 복사하기 위해 s3cmd 유틸리티를 사용하세요.
    • Linux 패키지 인스턴스에서 MinIO와 같은 S3 호환 객체 리포지터리를 사용할 계획이라면, /etc/gitlab/gitlab.rb에서 endpoint를 MinIO를 가리키도록 구성하고 path_styletrue로 설정하세요.
    • 새 Linux 패키지 인스턴스에서 이전 객체 리포지터리를 재사용할 수 있습니다. 이 경우 두 개의 객체 리포지터리 간에 데이터를 동기화할 필요가 없습니다. 그러나 내장 MinIO 인스턴스를 사용 중이라면 GitLab Helm 차트를 제거할 때 해당 리포지터리가 제거될 수 있습니다.
  15. GitLab Helm 백업을 Linux 패키지 인스턴스의 /var/opt/gitlab/backups로 복사하고, 복원을 수행합니다.
  16. 복원이 완료되면 doctor Rake 작업을 실행하여 비밀이 유효한지 확인합니다.
  17. 모든 것이 확인되면 GitLab Helm 차트 인스턴스를 제거할 수 있습니다.