외부 GitLab Pages로 GitLab 차트 구성하기
이 문서는 리눅스 패키지를 사용하여 클러스터 외부에 구성된 GitLab Pages 인스턴스와 함께 이 Helm 차트를 구성하는 방법에 대한 설명서를 제공하기 위한 것입니다. Issue 418259에서는 Helm 차트를 사용하여 클러스터 외부에 구성된 리눅스 패키지 인스턴스에 대한 설명을 추가하는 것이 제안되었습니다.
요구 사항
- 외부 객체 저장소는 프로덕션 인스턴스에 권장되는 대로 사용되어야 합니다.
- GitLab Pages가 GitLab Pages와 상호 작용하기 위한 32바이트 길이의 API 비밀 키의 Base64로 인코딩된 형식.
알려진 제한 사항
- GitLab Pages 액세스 제어는 기본적으로 지원되지 않습니다.
외부 GitLab Pages 인스턴스 구성
-
/etc/gitlab/gitlab.rb
파일을 편집하고 내용을 다음 조각으로 대체합니다. 아래의 값을 구성에 맞게 업데이트하세요.roles ['pages_role'] # Pages가 제공될 루트 도메인. pages_external_url '<Pages 루트 도메인>' # 예: 'http://pages.example.io' # GitLab 인스턴스에 관한 정보 gitlab_pages['gitlab_server'] = '<GitLab URL>' # 예: 'https://gitlab.example.com' gitlab_pages['api_secret_key'] = '<API 비밀 키의 Base64로 인코딩된 형식>'
-
변경 사항을 적용하려면
sudo gitlab-ctl reconfigure
를 실행합니다.
차트 구성
-
페이지 배포를 위해 객체 저장소에
gitlab-pages
라는 버킷을 생성합니다. -
값으로 API 비밀 키의 Base64로 인코딩된 형식을 가진
gitlab-pages-api-key
라는 시크릿을 생성합니다.kubectl create secret generic gitlab-pages-api-key --from-literal="shared_secret=<Base 64로 인코딩된 API 비밀 키>"
-
다음 구성 조각을 참조하고 필요한 항목을 값 파일에 추가하세요.
global: pages: path: '/srv/gitlab/shared/pages' host: <Pages 루트 도메인> 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를 로컬 디스크에 배포합니다. 객체 저장소로 마이그레이션할 때 이 변수를 제거하는 것을 기억하세요. -
이 구성을 사용하여 차트를 배포합니다.