外部のGitLab Pagesを使ったGitLabチャートの設定
このドキュメントは、Linuxパッケージを使用してクラスターの外部で設定されたGitLab PagesインスタンスでこのHelmチャートを設定する方法についてのドキュメントを提供することを意図しています。イシュー418259では、Helmチャートを使って外部のGitLab Pagesを使ったLinuxパッケージインスタンスに関するドキュメントの追加を提案しています。
要件
- GitLab 13.7以降。
- 本番インスタンスで推奨される外部オブジェクトストレージを使用する必要があります。
- PagesがGitLab Pagesとやりとりするための32バイト長のAPIシークレットキーをBase64エンコードした形式。
既知の制限
- GitLab Pagesのアクセスコントロールはサポートされていません。
外部GitLab Pagesインスタンスの設定
-
Linuxパッケージを使ってGitLabをインストールします。
-
/etc/gitlab/gitlab.rb
ファイルを編集し、その内部を以下のスニペットで置き換えます。以下の値をあなたの設定に合わせて更新してください:roles ['pages_role'] # Root domain where Pages will be served. pages_external_url '<Pages root domain>' # Example: 'http://pages.example.io' # Information regarding GitLab instance gitlab_pages['gitlab_server'] = '<GitLab URL>' # Example: 'https://gitlab.example.com' gitlab_pages['api_secret_key'] = '<Base64 encoded form of API secret key>'
-
sudo gitlab-ctl reconfigure
を実行して変更を適用します。
Chartの設定
-
Pagesデプロイを格納するために、オブジェクトストレージに
gitlab-pages
という名前のバケットを作成します。 -
API シークレットキーを Base64 エンコードしたものを値として、secret
gitlab-pages-api-key
を作成します。kubectl create secret generic gitlab-pages-api-key --from-literal="shared_secret=<Base 64 encoded API Secret Key>"
-
以下の設定スニペットを参照し、必要なエントリをvaluesファイルに追加してください。
global: pages: path: '/srv/gitlab/shared/pages' host: <Pages root domain> port: '80' # Set to 443 if Pages is served over HTTPS https: false # Set to true if Pages is served over HTTPS artifactsServer: true objectStore: enabled: true bucket: 'gitlab-pages' apiSecret: secret: gitlab-pages-api-key key: shared_secret extraEnv: PAGES_UPDATE_LEGACY_STORAGE: true # Bypass automatic disabling of disk storage
環境変数PAGES_UPDATE_LEGACY_STORAGE
を true に設定すると、Pages をローカルディスクにデプロイする機能フラグpages_update_legacy_storage
が有効になります。オブジェクトストレージにマイグレーションする場合は、この変数を忘れずに削除してください。 -
この設定を使ってChartをデプロイします。