gefyrahq / gefyra

Blazingly-fast :rocket:, rock-solid, local application development :arrow_right: with Kubernetes.
https://gefyra.dev
Apache License 2.0
680 stars 28 forks source link

Bridge not working if probe port is same with app port #58

Open Schille opened 2 years ago

SteinRobert commented 1 year ago

@Schille is this still a thing? Any idea on how to solve this? Maybe check for the probe and check if the port is equal with the provided port from the bridge command? In case it is - reject...?

Schille commented 1 year ago

Yes. This issue just came up today. It's very irritating as Gefyra says the bridge is up, but it's somehow not working. The issue is caused by these Nginx config parts: https://github.com/gefyrahq/gefyra/blob/bc38a5a4a992500fee03c545ec621efe1f67ea1c/carrier/gefyra-carrier.conf#L11-L17

We're starting a stream sever (basically a proxy on TCP-level) on port \<A> and afterward, to mimic the probes, we start an HTTP server on port \<A>, too. Somehow this is ok for Nginx, but the precedence gets to the HTTP server eventually sucking up all request to port \<A> (not just the probe requests), instead of passing them down to the local container instance.

I don't know how we could solve this. There is a rather unpopular switch for the gefyra bridge operation: -P, --no-probe-handling: Make Carrier to not handle probes during the bridge operation

Propably this must become the default in this situation. However, the local instance must then serve the probes just as well.