외부 GitLab Pages와 함께 GitLab 차트 구성하기
이 문서는 Linux 패키지를 사용하여 클러스터 밖에서 구성된 GitLab Pages와 함께 이 Helm 차트를 구성하는 방법에 대한 문서를 제공하기 위한 것입니다. Issue 418259는 Helm 차트를 사용하여 클러스터 외부에 구성된 Linux 패키지 인스턴스에 대한 문서를 추가하는 것을 제안합니다.
요구 사항
- GitLab 13.7 이상.
- 제품 인스턴스에 권장되는 대로 외부 객체 저장소를 사용해야 함.
- 32바이트 길이의 API 시크릿 키를 기반으로 한 Pages가 GitLab Pages와 상호 작용하는 기능을 사용할 수 있음 (Base64로 인코딩된 형식).
알려진 제한 사항
- GitLab Pages 액세스 제어 은 기본적으로 지원되지 않음.
외부 GitLab Pages 인스턴스 구성하기
-
Linux 패키지를 사용하여 GitLab을 설치합니다.
-
/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를 로컬 디스크에 배포합니다. 객체 저장소로 마이그레이션할 때 이 변수를 제거하는 것을 기억하세요. -
이 구성을 사용하여 차트를 배포합니다.