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.

    1. Scenario 1: A single Patroni cluster for all databases serves both Rails and Container Registry.
    2. 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 Jul 31, 2025 by Hossein Pursultani
Assignee Loading
Time tracking Loading