Skip to content

v1alpha2: Clarify HTTPRouteFilter conformance levels #655

@banks

Description

@banks

What happened:

Reading the API definition in

type HTTPRouteFilter struct {
there seems to be some inconsistency in the conformance level annotations for 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 see RequestHeaderModifier is Core while RequestMirror is Extended (which seems sensible):

// RequestHeaderModifier defines a schema for a filter that modifies request
// headers.
//
// Support: Core
//
// +optional
RequestHeaderModifier *HTTPRequestHeaderFilter `json:"requestHeaderModifier,omitempty"`
// RequestMirror defines a schema for a filter that mirrors requests.
//
// Support: Extended
//
// +optional
RequestMirror *HTTPRequestMirrorFilter `json:"requestMirror,omitempty"`

But then in the annotations on those nested struct types:

  • all the fields in the Core HTTPRequestHeaderFilter are marked as Extended. If all config fields only require conformance by "extended" implementations, what does it mean that the filter itself is required by Core implementations?
  • HTTPRequestMirrorFilter which is marked as Extended above, has a field ServiceName which is marked as Core conformance level. What does it mean for a field to be required by Core conforming implementations if it's part of an Extended 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.

Metadata

Metadata

Assignees

Labels

kind/bugCategorizes issue or PR as related to a bug.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions