외부 GitLab Pages로 GitLab 차트 구성하기
이 문서는 클러스터 외부에 구성된 GitLab Pages 인스턴스와 함께 이 Helm 차트를 구성하는 방법에 대한 문서를 제공하는 것을 목적으로 합니다.
이슈 418259는 Helm 차트를 사용하여 외부 GitLab Pages와 함께 Linux 패키지 인스턴스에 대한 문서를 추가할 것을 제안합니다.
요구 사항
-
외부 객체 저장소 는 프로덕션 인스턴스에 권장되어야 합니다.
-
GitLab Pages와 상호작용하는 Pages의 32바이트 길이 API 비밀 키의 Base64 인코딩된 형식.
알려진 제한 사항
- GitLab Pages 액세스 제어는 기본적으로 지원되지 않습니다.
외부 GitLab Pages 인스턴스 구성하기
-
Linux 패키지를 사용하여 GitLab 설치하기 .
-
/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>'
-
sudo gitlab-ctl reconfigure
명령어를 실행하여 변경사항을 적용합니다.
차트 구성하기
-
Pages 배포를 저장하기 위해 객체 저장소에
gitlab-pages
라는 이름의 버킷을 생성합니다. -
Base64 인코딩된 API 비밀 키를 값으로 사용하는 비밀
gitlab-pages-api-key
를 생성합니다.kubectl create secret generic gitlab-pages-api-key --from-literal="shared_secret=<Base 64 encoded API Secret Key>"
-
다음 구성 스니펫을 참조하고 필요한 항목을 값을 파일에 추가합니다.
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가 로컬 디스크에 배포됩니다. 객체 저장소로 마이그레이션할 때 이 변수를 제거하는 것을 잊지 마세요. -
이 구성을 사용하여 차트 배포하기 .