Exclude internal API and Geo git_ssh routes from secondary proxying

What does this MR do and why?

The api/internal routes need to not be proxied to allow detection if the repository exists locally for a project, and redirection to the primary if not.

The geo/proxy_git_ssh route is used internally by gitlab-shell to then proxy the git+ssh operations to the primary, using the internal URL of the primary (hence why these don't get proxied and is intended that they hit the secondary).

Related to #343537 (closed) and #342601 (closed).

Screenshots or screen recordings

How to set up and validate locally

  1. With a Unified URL Geo set up (GET at the moment), stop Sidekiq on the secondary node, and always point the URL to the secondary (/etc/hosts or similar)
  2. Create a new project through the UI (which should create it on the primary)
  3. Attempt to pull/push through SSH and notice errors
  4. Checkout this branch, make and scp the gitlab-workhorse binary to the GET Geo secondary Rails node, restart workhorse, then redo the tests and notice these are working

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Catalin Irimie

Merge request reports

Loading