telepresenceio / telepresence

Local development against a remote Kubernetes or OpenShift cluster
https://www.telepresence.io
Other
6.52k stars 513 forks source link

Envoy in telepresence agent rejects http 1.0 #3169

Open nicks opened 1 year ago

nicks commented 1 year ago

Describe the bug When I intercept traffic under certain conditions, Telepresence kills all traffic, even traffic that's not being intercepted.

To Reproduce See this repro: https://github.com/nicks/telepresence-sandbox which has a detailed setup

Once I get into this state, all HTTP requests return error code 426

Expected behavior I expect Telepresence to intercept the traffic that matches my header, and leave all other traffic alone.

Once telepresence gets into this state, the only way to fix it is to uninstall the agent.

telepresence uninstall -d my-proxy

Notably, telepresence leave does not fix the problem.t

Versions (please complete the following information):

telepresence version
An update of telepresence from version 2.12.2 to 2.13.1 is available. Please visit https://www.getambassador.io/docs/telepresence/latest/install/upgrade/ for more info.
Client         : v2.12.2
Root Daemon    : v2.12.2
User Daemon    : v2.12.2
Traffic Manager: v2.12.2

see attached repo for kubernetes

kubectl version --short Client Version: v1.27.1 Kustomize Version: v5.0.1 Server Version: v1.25.7+k3s1

nicks commented 1 year ago

Ok, narrowed down the bug: telepresence uses envoy to manage agent traffic. envoy, by default, rejects all http 1.0 requests. https://github.com/envoyproxy/envoy/issues/170

nginx, by default, sends http 1.0 requests. http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version

it would be good if telepresence updated the agent's envoy config to accept http 1.0.

github-actions[bot] commented 1 month ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment, or this will be closed in 7 days.