Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Konnectivity server is incompatible with go std lib #645

Open
steeling opened this issue Aug 7, 2024 · 3 comments
Open

Konnectivity server is incompatible with go std lib #645

steeling opened this issue Aug 7, 2024 · 3 comments

Comments

@steeling
Copy link

steeling commented Aug 7, 2024

Go stdlib allows setting a proxy in the http.Transport object. When a proxy is set, and the destination uses HTTPS, it sends a CONNECT pass through request. However if the destination is HTTP, it sends a get request.

curl behaves the same.

This is incongruent with konnectivity which requires all requests to be CONNECT passthrough

@steeling steeling changed the title Connectivity server is incompatible with go std lib Konnectivity server is incompatible with go std lib Aug 7, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 5, 2024
@steeling
Copy link
Author

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Nov 13, 2024
@steeling
Copy link
Author

This is made worse by the fact that go reuses connections, so if you were to do some custom stuff to the transport to try to circumvent this restriction, then you run into an issue where you might reuse the wrong conn

https://cs.opensource.google/go/go/+/refs/tags/go1.23.4:src/net/http/transport.go;l=1926

How does the apiserver get around this? I'll try digging through api server code later to find the answer, but if anybody has a link that'd be helpful

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants