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
- 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/hostsor similar) - Create a new project through the UI (which should create it on the primary)
- Attempt to pull/push through SSH and notice errors
- Checkout this branch,
makeand scp thegitlab-workhorsebinary 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.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Catalin Irimie