외부 GitLab Pages와 GitLab 차트 구성
이 문서는 리눅스 패키지를 사용하여 클러스터 외부에 구성된 GitLab Pages와 함께 이 Helm 차트를 구성하는 방법에 대한 설명을 제공하기 위한 것입니다. 이슈 418259는 Helm 차트를 사용하여 외부 GitLab Pages 인스턴스를 사용하는 Linux 패키지에 대한 문서 추가를 제안합니다.
요구 사항
- 프로덕션 환경에서 권장되는 대로 외부 객체 리포지터리를 사용해야 합니다.
- GitLab Pages가 GitLab Pages와 상호 작용하기 위한 32바이트 길이의 API 비밀 키의 Base64로 인코딩된 형식이여야 합니다.
알려진 제한 사항
- 기본 설정으로 GitLab Pages 접근 제어는 지원되지 않습니다.
외부 GitLab Pages 인스턴스 구성
-
리눅스 패키지를 사용하여 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를 로컬 디스크에 배포합니다. 객체 리포지터리로 마이그레이션하면 이 변수를 제거하는 것을 잊지 마십시오. -
이 구성을 사용하여 차트를 배포합니다.