- 
                Notifications
    
You must be signed in to change notification settings  - Fork 607
 
Description
What would you like to be added:
A Memorandum GEP explaining all of the concepts of "Hostname" on Gateway API, how they are used by controllers, different conflicts and intersections.
Why this is needed:
The concept of hostnames on Gateway API is very complex (to not say confusing) for users and even for developers. What a hostname on Gateway Listener means is different from what a Hostname on a xRoute means, and with ListenerSet introduction this can get worst.
This way, having a memorandum GEP explaining what each hostname field means, how they are used, and so on may help clarifying the concept.
Additionally, we need a user facing guidance/doc to explain that, per different persona model on Gateway API, when the cluster operator sets a hostname on a Gateway is different from when developers set their hostnames on their routes.
More context: https://kubernetes.slack.com/archives/CR0H13KGA/p1760446896183029
Nick gave a very good set of examples, which I will reproduce here as is to be used during the GEP creation
- NLB 
*.domain, Listener*.domain, HTTPRoutespecific.domain, requests tospecific.domainwill have TLS terminated at the NLB, pass the Listener, and match the HTTPRoute, routing traffic as per the HTTPRoute. - NLB 
*.domain, Listener*.domain, HTTPRouteother.domain, requests tospecific.domainwill have TLS terminated at the NLB, but will get a 404 when the traffic reaches the Gateway, because, while the Listener matches, the HTTPRoute does not. - NLB 
*.domain, Listenerspecific.domain, HTTPRoutespecific.domain, this will also work because everything lines up. - NLB 
*.domain, Listenerspecific.domain, HTTPRoute*.domain, this will work because the HTTPRoute and the Listener domain intersect correctly. - NLB 
*.domain, Listenerspecific.domain, HTTPRouteother.domain, this HTTPRoute will not attach to the Listener (there will be an error in the HTTPRoutestatus.conditions), and the traffic will not flow. - NLB 
*.domain, Listener*.domain, HTTPRoute no hostname set, requests to any hostname matching*.domain, includingspecific.domainandother.domainwill be routed to the HTTPRoute backends. - NLB 
*.domain, Listenerspecific.domain, HTTPRoute no hostname set, only requests tospecific.domainwill be routed to the HTTPRoute backends