Skip to content

Feature: add h2:// and h3:// proxy to backend - #4341

Open
szuecs wants to merge 11 commits into
masterfrom
feature/h2-h3-proxy-to-backend
Open

szuecs wants to merge 11 commits into
masterfrom
feature/h2-h3-proxy-to-backend

Conversation

@szuecs

@szuecs szuecs commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

"breaking" change: h2c:// needs to be enabled via proxy.Params or skipper.Options or -enable-h2c-backend
feature: HTTP/2 support via h2:// scheme to backends needs to be enabled via proxy.Params or skipper.Options or -enable-h2-backend
feature: HTTP/3 support via h3:// scheme to backends needs to be enabled via proxy.Params or skipper.Options or -enable-h3-backend
feature: HTTP/3 support at the server handler on UDP network enabled via skipper.Options.EnableH3Server or -enable-h3-server
feature: dataclients/kubernetes support for h2:// and h3:// similar to already supported h2c

@szuecs szuecs added the major moderate risk, for example new API, small filter changes that have no risk like refactoring or logs label Oct 14, 2026
@github-actions github-actions Bot added enhancement feature definition documentation labels Oct 14, 2026
@szuecs
szuecs marked this pull request as draft October 14, 2026 20:20
@zalando-robot

Copy link
Copy Markdown

Docker image "registry-write.opensource.zalan.do/teapot/skipper:2016a7550a4f8403ab6127399f0e82013cbbb20d" is not based on an approved base image. Any production deployment relying on this image will be blocked.

To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace library and use a recommended version as listed in the documentation.

@zalando-robot

Copy link
Copy Markdown

Docker image "registry-write.opensource.zalan.do/teapot/skipper:9adda5699086d3b4f31e97db9633c09dfa15b72f" is not based on an approved base image. Any production deployment relying on this image will be blocked.

To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace library and use a recommended version as listed in the documentation.

@zalando-robot

Copy link
Copy Markdown

Docker image "registry-write.opensource.zalan.do/teapot/skipper:fd3cbaed8e7951126a0764d5bade852943686393" is not based on an approved base image. Any production deployment relying on this image will be blocked.

To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace library and use a recommended version as listed in the documentation.

@szuecs
szuecs force-pushed the feature/h2-h3-proxy-to-backend branch from fd3cbae to 61b67a0 Compare October 16, 2026 19:44
@zalando-robot

Copy link
Copy Markdown

Docker image "registry-write.opensource.zalan.do/teapot/skipper:61b67a068655eec2c8ed3ecc0aa01a21caf09bfa" is not based on an approved base image. Any production deployment relying on this image will be blocked.

To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace library and use a recommended version as listed in the documentation.

@szuecs
szuecs marked this pull request as ready for review October 16, 2026 20:46
Comment thread docs/kubernetes/ingress-usage.md Outdated
Comment thread docs/kubernetes/ingress-usage.md Outdated
Comment thread skipper.go Outdated
Routing: rt,
Flags: proxy.Flags(proxy.OptionsNone),
Metrics: &metricstest.MockMetrics{},
EnableH2CBackend: true,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think one of the old tests must be also updated
https://github.com/zalando/skipper/blob/master/skipper_h2c_test.go

szuecs added 10 commits October 20, 2026 14:12
schemes: h2:// h3:// will enforce http/2 and http/3 calls

h2c,h2,h3 are all schemes inside the proxy and availble via eskip backend definitions.
h2c,h2,h3 are required each to be enabled via proxy.Params.

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
┌──────────┬─────────┬─────────┬─────────┐
│ Protocol │ Req/sec │ p50 lat │ p99 lat │
├──────────┼─────────┼─────────┼─────────┤
│ h2c      │ 8,749   │ 0.84ms  │ 2.16ms  │
├──────────┼─────────┼─────────┼─────────┤
│ h2       │ 8,296   │ 0.89ms  │ 2.08ms  │
├──────────┼─────────┼─────────┼─────────┤
│ h3       │ 7,387   │ 0.97ms  │ 2.36ms  │
└──────────┴─────────┴─────────┴─────────┘

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
…o enable it

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
…lear

doc: fix typo

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
@szuecs
szuecs force-pushed the feature/h2-h3-proxy-to-backend branch from 07b749c to 47ed91b Compare October 20, 2026 12:13
…ocol and pass

Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
@zalando-robot

Copy link
Copy Markdown

Docker image "registry-write.opensource.zalan.do/teapot/skipper:9203293db9dc71eeff7e994d2350eaacc2845633" is not based on an approved base image. Any production deployment relying on this image will be blocked.

To create a compliant Docker image of your application, you must reference an allowed Docker image as its base image in your Dockerfile. This base image must come from the Zalando Container Registry namespace library and use a recommended version as listed in the documentation.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation enhancement feature definition major moderate risk, for example new API, small filter changes that have no risk like refactoring or logs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants