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

Support HTTP/3 clients #2582

Open
abursavich opened this issue Jun 14, 2020 · 15 comments
Open

Support HTTP/3 clients #2582

abursavich opened this issue Jun 14, 2020 · 15 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/accepted Denotes an issue that has been triaged and determined to be valid. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.

Comments

@abursavich
Copy link

abursavich commented Jun 14, 2020

Add support for terminating HTTP/3 connections from clients.

Supporting HTTP/3 backends and/or acting as an HTTP/3 passthrough (UDP proxy) may be considered out of scope for this issue.

Search Keywords: H3, HTTP3, QUIC

@youngnick
Copy link
Member

Thanks for this issue @abursavich.

Since Contour is a control plane for Envoy, we are waiting on Envoy support for HTTP/3 (which I believe is tracked in envoyproxy/envoy#2557).

I'll mark this as blocked for now.

@youngnick youngnick added blocked/needs-envoy Categorizes the issue or PR as blocked because it needs changes in Envoy. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/accepted Denotes an issue that has been triaged and determined to be valid. labels Jun 21, 2020
@moderation
Copy link

Envoy issue to add QUIC / HTTP3 docs - envoyproxy/envoy#12923

@moderation moderation mentioned this issue Nov 5, 2020
@PKizzle
Copy link

PKizzle commented May 11, 2021

Envoy has added documentation on how to enable QUIC / HTTP3: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/http3.html?highlight=quic

@youngnick
Copy link
Member

Thanks @PKizzle, we'll keep an eye on the blocking issue mentioned in the above page (envoyproxy/envoy#13115).

@Jean-Daniel
Copy link
Contributor

Jean-Daniel commented Nov 8, 2021

Looks like (envoyproxy/envoy#13115) has been merged and released in Envoy 1.20.0

@youngnick youngnick removed the blocked/needs-envoy Categorizes the issue or PR as blocked because it needs changes in Envoy. label Nov 10, 2021
@youngnick
Copy link
Member

Okay, sadly this is now blocked behind #4075 as well. Putting the blocked/needs-envoy label back.

@youngnick youngnick added the blocked/needs-envoy Categorizes the issue or PR as blocked because it needs changes in Envoy. label Nov 10, 2021
@buroa
Copy link

buroa commented Jan 6, 2022

#4075 was merged @youngnick

@skriss skriss removed the blocked/needs-envoy Categorizes the issue or PR as blocked because it needs changes in Envoy. label Jan 6, 2022
@m-yosefpor
Copy link
Contributor

any updates on this? Are there any WIP or milestone set for QUIC support?

@moderation
Copy link

Downstream HTTP/3 now considered GA in Envoy 1.22.0

https://www.envoyproxy.io/docs/envoy/v1.22.0/version_history/current#new-features

http3: downstream HTTP/3 support is now GA! Upstream HTTP/3 also GA for specific deployments. See here for details.

@skriss skriss added this to Contour Jul 29, 2022
@sunjayBhatia sunjayBhatia added the priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. label Sep 26, 2022
@m-yosefpor
Copy link
Contributor

Is this planned for v1.24?

@nefelim4ag
Copy link

nefelim4ag commented Nov 2, 2022

Looks like most of resources now are focused around gateway API.
And http3 mostly ignored because its a cool feature, but anyone can live & work without it for now.
(I'm personally of course want http3 just for fun and look around to the code to make it works, but without success)

On paper it is enough to just define http3 listener in contour, and use same configuration about upsteram clusters like http1/2 does.

Main solution for deploying contour in most setups was using Cloud LB, and AFAIK currently that setup doesn't support publish 443 udp/tcp at same time - so another barrier for wide availability of http3.

And even, if that possible to use contour without that with some magic it is still not supported and not expected way to work with contour, so it also will not adopted in near time.

So, IMHO, http3 will not be implemented in contour in near time without some PR from community, because of issue with cloud LB setup, and because of more interests around supporting new K8s API like gateway/endpoint slicing.

@Jean-Daniel
Copy link
Contributor

Main solution for deploying contour in most setups was using Cloud LB, and AFAIK currently that setup doesn't support publish 443 udp/tcp at same time - so another barrier for wide availability of http3.

Since Kubernetes 1.24, the MixedProtocolLBService feature gate is enabled by default, so using a single LB service for TCP/UDP works (I'm already using it for DNS).

@Quentin-M
Copy link

fwiw Emissary has been supporting it since v3.0.0 of last summer (https://www.getambassador.io/docs/emissary/latest/topics/running/http3)

@m-yosefpor
Copy link
Contributor

Are there any plans to support http3 in next contour release since there is priority label set on this feature?

@modzilla99
Copy link

I'd love to see it as well!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/accepted Denotes an issue that has been triaged and determined to be valid. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Projects
Status: No status
Development

No branches or pull requests