-
Notifications
You must be signed in to change notification settings - Fork 492
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
v1alpha2: Clarify HTTPRouteFilter conformance levels #655
Comments
Thanks for catching this @banks! You're right that this is unnecessarily confusing. Although each individual support level could make sense in isolation, they don't with the context you've provided here. |
Doing a bit of git spelunking, we didn't have enough discussion around the conformance level for those fields and they got marked as I think fields inside |
As noted in kubernetes-sigs#655, a core filter with extended support fields is confusing and also seems to be incorrect. This patch drops the extended field from the filter and is a partial fix for the referenced issue. HTTPRequestMirroFilter has not been patch as GEP-718 could potentially simplify that.
/assign |
As noted in kubernetes-sigs#655, a core filter with extended support fields is confusing and also seems to be incorrect. This patch drops the extended field from the filter and is a partial fix for the referenced issue. HTTPRequestMirroFilter has not been patch as GEP-718 could potentially simplify that.
#723 also attempts to fix this |
@robscott: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
What happened:
Reading the API definition in
gateway-api/apis/v1alpha2/httproute_types.go
Line 443 in 3aa586d
HTTPRouteFilter
.It's possible I'm just reading it wrong, but if so perhaps the presentation could be clarified to ensure the spec is clear to other implementors.
Specifically, in
HTTPRouteFilter
I seeRequestHeaderModifier
isCore
whileRequestMirror
isExtended
(which seems sensible):gateway-api/apis/v1alpha2/httproute_types.go
Lines 468 to 481 in 3aa586d
But then in the annotations on those nested struct types:
Core
HTTPRequestHeaderFilter
are marked asExtended
. If all config fields only require conformance by "extended" implementations, what does it mean that the filter itself is required byCore
implementations?HTTPRequestMirrorFilter
which is marked asExtended
above, has a fieldServiceName
which is marked asCore
conformance level. What does it mean for a field to be required byCore
conforming implementations if it's part of anExtended
struct?What you expected to happen:
Conformance level annotations for nested configuration to be the same or weaker than the parent configuration level.
Thanks for your great work on this spec, I'm following closely!
[edit] I notice afterwards that
v1alpha2
where I saw this is unstable so perhaps this is still a WIP and tracked elsewhere? I didn't see anything obvious though.The text was updated successfully, but these errors were encountered: