Support PostgreSQL HA for registry database (Level 4 support)
Summary
This work supports HA database configuration as outlined in Level 4 support.
At this level, Omnibus GitLab can configure a database server cluster in high-availability (HA) mode for the component.
Success criteria
-
Container registry can be associated to a Patroni cluster (using cluster scope) -
Container registry can function when Patroni leader changes -
The following GitLab instances can be configured: Use 3K reference architecture or amend where needed.
-
Scenario 1: A single Patroni cluster for all databases serves both Rails and Container Registry. -
Scenario 2: Two separate Patroni clusters are provisioned. They both use the same Consul cluster and PgBouncer nodes. Both both Rails and Container Registry function and always track leaders.
-
References
- See the concept of "a Consul service per database cluster and a service watch per logical database" in https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/doc/development/architecture/multiple_database_support/_index.md#level-4
- https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/doc/development/database_support.md#level-4
Edited by Hossein Pursultani