외부 GitLab Pages로 GitLab 차트 구성하기

이 문서는 클러스터 외부에 구성된 GitLab Pages 인스턴스와 함께 이 Helm 차트를 구성하는 방법에 대한 문서를 제공하는 것을 목적으로 합니다.

이슈 418259는 Helm 차트를 사용하여 외부 GitLab Pages와 함께 Linux 패키지 인스턴스에 대한 문서를 추가할 것을 제안합니다.

요구 사항

  1. 외부 객체 저장소 는 프로덕션 인스턴스에 권장되어야 합니다.

  2. GitLab Pages와 상호작용하는 Pages의 32바이트 길이 API 비밀 키의 Base64 인코딩된 형식.

알려진 제한 사항

  1. GitLab Pages 액세스 제어는 기본적으로 지원되지 않습니다.

외부 GitLab Pages 인스턴스 구성하기

  1. Linux 패키지를 사용하여 GitLab 설치하기 .

  2. /etc/gitlab/gitlab.rb 파일을 수정하고 내용을 다음 스니펫으로 바꿉니다. 아래 값을 귀하의 구성에 맞게 업데이트하세요:

    roles ['pages_role']
    
    # Pages가 제공될 루트 도메인.
    pages_external_url '<Pages root domain>'  # 예: 'http://pages.example.io'
    
    # GitLab 인스턴스에 대한 정보
    gitlab_pages['gitlab_server'] = '<GitLab URL>'  # 예: 'https://gitlab.example.com'
    gitlab_pages['api_secret_key'] = '<Base64 encoded form of API secret key>'
    
  3. sudo gitlab-ctl reconfigure 명령어를 실행하여 변경사항을 적용합니다.

차트 구성하기

  1. Pages 배포를 저장하기 위해 객체 저장소에 gitlab-pages라는 이름의 버킷을 생성합니다.

  2. Base64 인코딩된 API 비밀 키를 값으로 사용하는 비밀 gitlab-pages-api-key를 생성합니다.

    kubectl create secret generic gitlab-pages-api-key --from-literal="shared_secret=<Base 64 encoded API Secret Key>"
    
  3. 다음 구성 스니펫을 참조하고 필요한 항목을 값을 파일에 추가합니다.

    global:
      pages:
        path: '/srv/gitlab/shared/pages'
        host: <Pages root domain>
        port: '80'  # Pages가 HTTPS를 통해 제공되는 경우 443으로 설정
        https: false  # Pages가 HTTPS를 통해 제공되는 경우 true로 설정
        artifactsServer: true
        objectStore:
          enabled: true
          bucket: 'gitlab-pages'
        apiSecret:
          secret: gitlab-pages-api-key
          key: shared_secret
      extraEnv:
        PAGES_UPDATE_LEGACY_STORAGE: true  # 자동 디스크 저장 비활성화를 우회
    

    주의: PAGES_UPDATE_LEGACY_STORAGE 환경 변수를 true로 설정하면 pages_update_legacy_storage 기능 플래그가 활성화되어 Pages가 로컬 디스크에 배포됩니다. 객체 저장소로 마이그레이션할 때 이 변수를 제거하는 것을 잊지 마세요.

  4. 이 구성을 사용하여 차트 배포하기 .