[Spike] Identify steps to make Unified URL work with Cloud Native GitLab sites
Overview
There was an issue proposed to make unified URL work with CNG for Geo. There is work to be done here for Distribution but we need to research this a bit.
Scope
The scope of this spike is to produce an actionable breakdown for Distribution items and if possible areas where other teams will need to take on the work. The intent will be to work closely with the Geo team of the appropriate solution.
Relevant Info from issue
Summary
Originally mentioned in Slack https://gitlab.slack.com/archives/C7U95P909/p1661998012360789:
When using charts, it will create ingress rules for the external url provided. As it doesn't know about Geo sites' internal urls, there will be no ingress rule for the internal urls, meaning the load balancer won't route any traffic sent over that url.
Steps to reproduce
Deployed with GET:
- Set up two Cloud Native Hybrid 10k ref arch GitLab deployments
- Connect them with Geo, with Unified URL (the secondary site uses the same external URL as the primary site)
- Geo sites require access to other Geo sites via unique URLs. So, set the primary's Internal URL to
https://<primary's IP>
, or some other URL which routes to the primary site
Notice that the secondary's HTTP requests to the primary fail.
Configuration used
(Please provide a sanitized version of the configuration used wrapped in a code block (```yaml))
(Paste sanitized configuration here)
Current behavior
The secondary site's HTTP requests against the primary site fail. So e.g. the secondary cannot replicate repos and files, and it cannot report its status.
Expected behavior
When the primary's Internal URL is set to a URL which is unique to the primary site, and when the secondary's Internal URL is set to a URL which is unique to the secondary site, then the secondary should replicate data and otherwise operate normally.
Versions
- Chart: GitLab 15.3.2
- Platform:
- Cloud: GKE
- Kubernetes: (
kubectl version
)- Client: v1.25.0
- Server: v1.21.13-gke.900
- Helm: (
helm version
)- Client: v3.9.4
- Server: