Upgrading the Geo sites
- Tier: Premium, Ultimate
- Offering: GitLab Self-Managed
Read these sections carefully before updating your Geo sites. Not following version-specific upgrade steps may result in unexpected downtime. If you have any specific questions, contact Support. A database major version upgrade requires re-initializing the PostgreSQL replication to Geo secondaries. This applies to both Linux-packaged and externally-managed databases. This may result in a larger than expected downtime.
Upgrading Geo sites involves performing:
- Version-specific upgrade steps, depending on the version being upgraded to or from:
- General upgrade steps, for all upgrades.
General upgrade steps
These general upgrade steps require downtime in a multi-node setup. If you want to avoid downtime, consider using zero-downtime upgrades.
To upgrade the Geo sites when a new GitLab version is released, upgrade primary and all secondary sites:
Optional. Pause replication on each secondary site to protect the disaster recovery (DR) capability of the secondary sites.
SSH into each node of the primary site.
Perform testing on the primary site, particularly if you paused replication in step 1 to protect DR. There are some suggestions for post-upgrade testing in the upgrade documentation.
Ensure that the secrets in the
/etc/gitlab/gitlab-secrets.json
file of both the primary site and the secondary site are the same. The file must be the same on all of a site’s nodes.SSH into each node of secondary sites.
If you paused replication in step 1, resume replication on each secondary. Then, restart Puma and Sidekiq on each secondary site. This is to ensure they are initialized against the newer database schema that is now replicated from the previously upgraded primary site.
sudo gitlab-ctl restart sidekiq sudo gitlab-ctl restart puma
Test primary and secondary sites, and check version in each.
Check status after upgrading
Now that the upgrade process is complete, you may want to check whether everything is working correctly:
Run the Geo Rake task on an application node for the primary and secondary sites. Everything should be green:
sudo gitlab-rake gitlab:geo:check
Check the primary site’s Geo dashboard for any errors.
Test the data replication by pushing code to the primary site and see if it is received by secondary sites.
If you encounter any issues, see the Geo troubleshooting guide.
Docs
Edit this page to fix an error or add an improvement in a merge request.
Create an issue to suggest an improvement to this page.
Product
Create an issue if there's something you don't like about this feature.
Propose functionality by submitting a feature request.
Feature availability and product trials
View pricing to see all GitLab tiers and features, or to upgrade.
Try GitLab for free with access to all features for 30 days.
Get help
If you didn't find what you were looking for, search the docs.
If you want help with something specific and could use community support, post on the GitLab forum.
For problems setting up or using this feature (depending on your GitLab subscription).
Request support