Skip to content
Snippets Groups Projects
Closed Geo: Redirect requests for unsynchronized repositories to the primary
  • Geo: Redirect requests for unsynchronized repositories to the primary

  • Closed Epic created by Fabian Zimmer

    Problem to solve

    Sometimes customers enable selective sync in order to limit the storage space (and cost) required on a secondary. However, they have made a "best guess" attempt to predict which projects are needed and some users may want to access a project from a secondary that was not yet synced.

    When a customer is using selective sync, make it so that when they clone a repo that is not in the local geo node, instead of simply giving an error, it redirects/proxy them to the primary node. This way, users can always use the geo node hostname for their clones, without having to check if the repo they want to clone is present in the geo node or not.

    Intended users

    Delaney, Parker, Sasha

    Further details

    This feature would also mean that using a single URL that is geolocation aware would work for all projects from all locations. For example:

    1. Developer in Germany accesses git.example.com
    2. Developer is directed to German Geo node that has selective sync enabled
    3. German node redirects/proxies to US Geo node for projects that are not (yet) synced

    Proposal

    Implement the different required operations:

    Also, decide separately if configuration is required because

    1. if we're basing the reason for it's need on the fact that it could mean a user may gain access to a project they are not permitted to then this scenario already exists as all user access/permissions etc exists on the Primary (and replicated to secondaries)
    2. if it's deemed the configuration option is needed then it should apply to both HTTP and SSH transports and so should be easier to implement once the redirecting/proxying logic has been put in place

    What does success look like, and how can we measure that?

    Users are automatically redirected to the primary when a secondary node does not have the repository included in selective sync.

    Links / references

    Customer ticket: https://gitlab.zendesk.com/agent/tickets/144276 (internal use)

    Edited by Fabian Zimmer

    Linked items 0

  • Link items together to show that they're related or that one is blocking others.

    Activity

    • All activity
    • Comments only
    • History only
    • Newest first
    • Oldest first