Migrate from the Helm Chart to the Linux package
To migrate from a Helm installation to a Linux package (Omnibus) installation:
- Go to the admin area () and select Overview > Components to check your current version of GitLab.
- Prepare a clean machine and install the Linux package that matches your GitLab Helm chart version.
- Verify the integrity of Git repositories on your GitLab Helm chart instance before the migration.
- Create a backup of your GitLab Helm chart instance, and make sure to back up the secrets as well.
- Back up
/etc/gitlab/gitlab-secrets.json
on your Omnibus GitLab instance. - Use the
secrets.yaml
file from your GitLab Helm chart instance to fill/etc/gitlab/gitlab-secrets.json
on the new Omnibus GitLab instance:- In
/etc/gitlab/gitlab-secrets.json
, replace all the secrets in the sectiongitlab_rails
with the secrets fromsecrets.yaml
:- Make sure that the values of
secret_key_base
,db_key_base
,otp_key_base
, andencrypted_settings_key_base
do not contain line breaks. -
The values of
openid_connect_signing_key
andci_jwt_signing_key
should have\n
instead of line breaks, and the entire value should be in one line, for example:-----BEGIN RSA PRIVATE KEY-----\nprivatekey\nhere\n-----END RSA PRIVATE KEY-----\n
- Make sure that the values of
-
Save the file and reconfigure GitLab:
sudo gitlab-ctl reconfigure
- In
- In the Omnibus instance, configure object storage, and make sure it works by testing LFS, artifacts, uploads, and so on.
- If you use the Container Registry, configure its object storage separately. It does not support the consolidated object storage.
-
Sync the data from your object storage connected to the Helm chart instance with the new storage connected to Omnibus GitLab. A couple of notes:
- For S3-compatible storages, use the
s3cmd
utility to copy the data. - If you plan to use an S3-compatible object storage like MinIO with your
Omnibus GitLab instance, you should configure the options
endpoint
pointing to your MinIO and setpath_style
totrue
in/etc/gitlab/gitlab.rb
. - You may re-use your old object storage with the new Omnibus GitLab instance. In this case, you do not need to sync data between two object storages. However, the storage could be de-provisioned when you uninstall GitLab Helm chart if you are using the built-in MinIO instance.
- For S3-compatible storages, use the
- Copy the GitLab Helm backup to
/var/opt/gitlab/backups
on your Omnibus GitLab instance, and perform the restore. - After the restore is complete, run the doctor Rake tasks to make sure that the secrets are valid.
- After everything is verified, you may uninstall the GitLab Helm chart instance.