The primary site behaves as a full read-write GitLab instance.
Attachments, LFS objects, and other files are downloaded via HTTPS using a private API endpoint.įrom the perspective of a user performing Git operations:.
Repositories are cloned/updated via Git over HTTPS.
A secondary site performs different type of synchronizations against the primary site, using a special.
If present, the LDAP server should be configured to replicate for Disaster Recovery scenarios.
Updates via PostgreSQL streaming replication.
Writes to the database can only be performed on the primary site.
There is the primary site and the details of one secondary site.
The following diagram illustrates the underlying architecture of Geo.
Pushing directly to a secondary site (for both HTTP and SSH, including Git LFS) was introduced in GitLab Premium 11.3.
In GitLab Premium 10.0 and later, the primary site no longer talks to secondary sites to notify for changes (API).
Replicate repositories, LFS Objects, and Attachments (HTTPS + JWT).
Secondary sites talk to the primary site to:.
Replicated read-only sites are known as secondary sites.
Original instance is known as the primary site.
This makes working with large repositories over large distances much faster. Your Geo instance can be used for cloning and fetching projects, in addition to reading any data. The difference between Geo and Gitaly Cluster, see Geo should not be confused with Gitaly Cluster. In addition, there are visual notifications that block write operations and make it clear that a user is on a secondary sites.
An intuitive UI: Secondary sites use the same web interface your team has grown accustomed to.
Authentication system hooks: Secondary sites receives all authentication data (like user accounts and logins) from the primary instance.
Read-only secondary sites: Maintain one primary GitLab site while still enabling read-only secondary sites for each of your distributed teams.
Allows planned failover to a secondary site.
Can quickly fail over to a secondary site in a disaster recovery scenario.
Helps reducing the loading time for automated tasks, custom integrations, and internal workflows.
Overcomes slow connections between distant offices, saving time by improving speed for distributed teams.
Can be used for cloning and fetching projects, in addition to reading any data available in the GitLab web interface (see limitations).
Balance the read-only load between your primary and secondary sites.
Enable all of your developers to contribute ideas and work in parallel, no matter where they are.
Reduce from minutes to seconds the time taken for your distributed developers to clone and fetch large repositories and projects.
Implementing Geo provides the following benefits: Geo uses a set of defined terms that is described in the Geo Glossary, please familiarize yourself with those terms. To make sure you’re using the right version of the documentation, navigate to the Geo page on and choose the appropriate release from the Switch branch/tag dropdown. To clone and fetch large repositories, speeding up development.įor a video introduction to Geo, see Introduction to GitLab Geo - GitLab Features. Geo provides local, read-only sites of your GitLab instances. Upgrades are supported and documented, but you should ensure that you’re using the right version of the documentation for your installation.įetching large repositories can take a long time for teams located far from a single GitLab instance. Geo undergoes significant changes from release to release.