HelmチャートからLinuxパッケージへのマイグレーション
HelmインストールからLinuxパッケージ(Omnibus)インストールにマイグレーションするには:
- 管理エリア({admin}) に移動し、Overview > Componentsを選択して GitLab の現在のバージョンを確認します。
- クリーンなマシンを用意し、GitLab Helm chartのバージョンに合ったLinuxパッケージをインストールします。
- マイグレーション前に、GitLab Helmチャートインスタンス上のGitリポジトリの整合性を確認します。
- GitLab Helm chartインスタンスのバックアップを作成し、シークレットもバックアップしてください。
- Linux パッケージインスタンスの
/etc/gitlab/gitlab-secrets.json
をバックアップします。 -
kubectl
コマンドを実行するワークステーションにyqツール(バージョン 4.21.1 以降)をインストールします。 - ワークステーションに
/etc/gitlab/gitlab-secrets.json
ファイルのコピーを作成します。 -
以下のコマンドを実行して、GitLab Helmチャートインスタンスからシークレットを取得します。
GITLAB_NAMESPACE
とRELEASE
を適切な値に置き換えてください:kubectl get secret -n GITLAB_NAMESPACE RELEASE-rails-secret -ojsonpath='{.data.secrets\.yml}' | yq '@base64d | from_yaml | .production' -o json > rails-secrets.json yq eval-all 'select(filename == "gitlab-secrets.json").gitlab_rails = select(filename == "rails-secrets.json") | select(filename == "gitlab-secrets.json")' -ojson gitlab-secrets.json rails-secrets.json > gitlab-secrets-updated.json
- 結果は
gitlab-secrets-updated.json
で、Linux パッケージインスタンスの古いバージョンの/etc/gitlab/gitlab-secrets.json
を置き換えるのに使えます。 -
/etc/gitlab/gitlab-secrets.json
を置き換えた後、Linux パッケージ・インスタンスを再構成します:sudo gitlab-ctl reconfigure
- Linux パッケージインスタンスで、オブジェクトストレージを設定し、LFS、アーティファクト、アップロードなどをテストして動作することを確認します。
- コンテナレジストリを使用する場合は、そのオブジェクトストレージを個別に設定します。これは、統合オブジェクトストレージをサポートしていません。
-
Helmチャートインスタンスに接続されているオブジェクトストレージのデータを、Linuxパッケージインスタンスに接続されている新しいストレージと同期します。いくつか注意点があります:
- S3 互換のストレージの場合、
s3cmd
ユーティリティを使用してデータをコピーします。 - LinuxパッケージインスタンスでMinIOのようなS3互換オブジェクトストレージを使用する予定がある場合は、MinIOを指すオプション
endpoint
を設定し、/etc/gitlab/gitlab.rb
でpath_style
をtrue
に設定する必要があります。 - 新しいLinuxパッケージインスタンスで古いオブジェクトストレージを再利用できます。この場合、2 つのオブジェクトストレージ間でデータを同期する必要はありません。ただし、ビルトインのMinIOインスタンスを使用している場合、GitLab Helmチャートをアンインストールすると、ストレージのプロビジョニングが解除される可能性があります。
- S3 互換のストレージの場合、
- GitLab HelmのバックアップをLinuxパッケージインスタンスの
/var/opt/gitlab/backups
、リストアを実行します。 - リストアが完了したら、doctor Rakeタスクを実行してシークレットが有効であることを確認します。
- すべての確認が終わったら、GitLab Helmチャートインスタンスをアンインストールしてください。