ngrok / kubernetes-ingress-controller

The official ngrok Ingress Controller for Kubernetes
https://ngrok.com
MIT License
183 stars 20 forks source link

Gateway API Support: HTTPRoute in different namespace than Gateway #392

Closed stutommi closed 1 month ago

stutommi commented 1 month ago

Hello!

I've been trying to fiddle with your great experimental Gateway API support!

I noticed that if I create the HTTPRoute in different namespace than the gateway is (which would be usually the expected use-case regarding governance) - the resulting tunnel group will have incorrect labels, it seems to expect the httproute to reside in same namespace as the gateway resource does.

I'll put some context below:

HTTPRoute namespace: team-alpha Gateway / Controller namespace: ngrok

Resulting HTTPRoute related tunnel labels inside k8s:

Resulting tunnel group labels seen on ngrok dashboard endpoint (notice the namespace):


I'm not sure, but quickly looking at the source code the issue might stem from the code line below:

https://github.com/ngrok/kubernetes-ingress-controller/blob/10dd94b4e95cde6f357e42a5e976999e32ac99c4/internal/store/driver.go#L1045

Is this recognised as something that could be changed at somepoint? Is it currently accepted that HTTPRoutes can only be inside the Gateway (or Controller - I don't know) namespace? I can see that the tunnel starts working as soon as I remove the namespace label from the tunnel group from the dashboard side.

Cheers!

Abdiramen commented 1 month ago

Hey @stutommi, thanks for submitting this issue.

Is this recognised as something that could be changed at somepoint?

How about right now, here's a PR with the fix https://github.com/ngrok/kubernetes-ingress-controller/pull/393!

stutommi commented 1 month ago

Fastest fix I've witnessed so far! Thanks! 🙌