-
Notifications
You must be signed in to change notification settings - Fork 432
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 both HTTP2 and HTTP1 for upstreams #6521
Comments
Most of this task I understand and am implementing "Gloo edge validating webhooks should not admit upstreams that configure both options if appropriate protocol selection is not defined." This line does not make sense to me. It is valid to pass both http1 and http2 on the same upstream and that is what this change is enabling. We currently allow users to pass both settings when useHttp2 is enabled If this line of the description means you cannot pass both protocol selection enums, then that is doable |
Hi @ianmacclancy. Currently, it's possible to specify both options for upstreams in Gloo Edge. However, this configuration is rejected by envoy (error message: Protection can be implemented with a webhook that explicitly forbids using both options without specifying an appropriate protocol selection policy. Alternatively, Gloo Edge can implicitly set At the very least, the Gloo Edge docs should be clear about this behavior: if both options are required, protocol selection must also be configured. |
For now, we won't make the decision to automatically recognize that multiple connection settings are passed and will reject the resource if both HTTP1 and HTTP2 are passed. As part of the DOD for this task I am proposing a restructuring of the Upstream CRD to support the current envoy behavior and the deprecation of the cluster config protocol selection - ref: envoyproxy/envoy@7554d61 I agree that a better experience would be abstracting the protocol selection and working out end-user intentions based on what they pass rather than shifting the more complex logic to the end-user. |
Final PR - this will update gloo ee with the changes - https://github.com/solo-io/solo-projects/pull/3788/files |
Closing per #6521 (comment) |
Version
1.11.x (latest stable)
Is your feature request related to a problem? Please describe.
Gloo supports configuring either HTTP1 or HTTP2 options per upstream. If options for both protocols are provided, the Gloo translation fails.
Describe the solution you'd like
Envoy supports configuring both
http_protocol_options
andhttp2_protocol_options
on the same cluster, as long as the non-defaultprotocol_selection: USE_DOWNSTREAM_PROTOCOL
option is used.It should be possible to configure both HTTP1 and HTTP2 options for an upstream and define the upstream protocol selection policy that supports this configuration.
Gloo edge validating webhooks should not admit upstreams that configure both options, if appropriate protocol selection is not defined.
Describe alternatives you've considered
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: