LinuxパッケージからHelmチャートへのマイグレーション
このガイドは、パッケージベースのGitLabインストールからHelmチャートへのマイグレーションに役立ちます。
前提条件
マイグレーションを行う前に、いくつかの前提条件を満たす必要があります:
- パッケージベースの GitLab インスタンスが稼働していること。
gitlab-ctl status
を実行し、down
状態をレポーターするサービスがないことを確認してください。 - マイグレーションに先立ち、Gitリポジトリの整合性を確認するのは良い習慣です。
- パッケージベースのインストールと同じGitLabバージョンを実行しているHelmチャートベースのデプロイが必要です。
- Helm チャートベースのデプロイが使用するオブジェクトストレージを設定する必要があります。本番環境で使用する場合は、外部のオブジェクトストレージを使用し、それにアクセスするためのログイン認証情報を準備しておくことをお勧めします。組み込みの MinIO サービスを使用している場合は、そこからログイン認証情報を取得する方法についてドキュメントをお読みください。
マイグレーション手順
JUnit テストレポートアーティファクト (
junit.xml.gz
) のマイグレーションは、GitLab 12.8 までは以下のgitlab:artifacts:migrate
スクリプトではサポートされていませんでした。-
パッケージベースのインストールからオブジェクトストレージに既存のデータをマイグレーションします:
-
パッケージベースの GitLab インスタンスにアクセスし、マイグレーションしたデータが利用可能であることを確認します。例えば、ユーザー、グループ、プロジェクトのアバターが正常にレンダリングされているか、イシューに追加された画像やその他のファイルが正しく読み込まれているかなどを確認します。
-
バックアップ tarball を作成し、マイグレーション済みのディレクトリをすべて除外します。
バックアップファイルは、明示的に変更しない限り、
/var/opt/gitlab/backups
の下に保存されます。 -
パッケージベースのインストールから、シークレットから始めてHelmチャートにリストアします。
/etc/gitlab/gitlab-secrets.json
の値を Helm が使用する YAML ファイルにマイグレーションする必要があります。 -
すべてのポッドを再起動して、変更が適用されていることを確認します:
kubectl delete pods -lrelease=<helm release name>
- Helmベースのデプロイにアクセスし、パッケージベースのインストールに存在したプロジェクト、グループ、ユーザー、イシューなどが復元されていることを確認します。また、アップロードされたファイル(アバター、イシューにアップロードされたファイルなど)が正常に読み込まれているかどうかを確認します。