-
Notifications
You must be signed in to change notification settings - Fork 3.2k
gateway-api: appProtocol support (GEP-1911) #31310
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
Conversation
/test |
d40683e
to
d1de40a
Compare
fe729bf
to
585f67e
Compare
/test |
/ci-gateway-api |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
docs good
Thanks for the ping, I have added myself as reviewer. |
/ci-gateway-api |
From a quick look, the changes are looking good to me. Will take a closer look later. |
00ee5cd
to
3b28de2
Compare
/test |
@sayboras |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks and LGTM ✅
3b28de2
to
e9bffc6
Compare
/test |
e9bffc6
to
8135fee
Compare
/test |
Seems like we just need to wait for ack from other codeowner, so you don't need to rebase with main branch (just to avoid re-run the tests). |
@sayboras I occasionally rebase to make sure there are no conflicts, will wait for the ack from the codeowner. |
Understood and thanks, I normally just rely on github UI to flag if there is any conflict with main branch. |
This feature is hidden behind `enable-gateway-api-app-protocol` flag on the operator gwapi cell. Cilium's internal Backend structure is changed to account for appProtocol which is populated from the service spec definitions. Initial implementation sets envoy cluster `http_protocol_options` to use HTTP1.1 and switches to HTTP2 if backendRef service port specified appProtocol with "kubernetes.io/h2c". Fixes: cilium#30452 Signed-off-by: Rauan Mayemir <rauan@mayemir.io>
`enable-gateway-api-app-protocol` is false by default, setting it explicitly will turn appProtocol support on. This will effectively change envoy agent config to use HTTP1.1 for upstreams by default which could potentially break existing users if they are sending ingress request as HTTP2 and also expecting their backends to reply in HTTP2/H2C. They will need to add appProtocol option on the service port to unbreak their workloads. Signed-off-by: Rauan Mayemir <rauan@mayemir.io>
protocol mutator function reset HttpProtocolOptions, leaving only UpstreamProtocolOptions and thus negating WithIdleTimeout mutator changes. Signed-off-by: Rauan Mayemir <rauan@mayemir.io>
This adds gwapi translator test coverage for H2C backend protocol selection when appProtocol enabled or disabled. Signed-off-by: Rauan Mayemir <rauan@mayemir.io>
8135fee
to
0c1a4ea
Compare
/test |
No description provided.