diff --git a/apis/v1alpha2/gateway_types.go b/apis/v1alpha2/gateway_types.go index 4749f1ea0a..915742991f 100644 --- a/apis/v1alpha2/gateway_types.go +++ b/apis/v1alpha2/gateway_types.go @@ -351,6 +351,13 @@ type GatewayTLSConfig struct { // TLSModeType type defines how a Gateway handles TLS sessions. // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Ready Condition for the Listener to `status: False`, with a +// Reason of `Invalid`. +// // +kubebuilder:validation:Enum=Terminate;Passthrough type TLSModeType string @@ -398,6 +405,13 @@ type AllowedRoutes struct { // FromNamespaces specifies namespace from which Routes may be attached to a // Gateway. // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Ready Condition for the Listener to `status: False`, with a +// Reason of `Invalid`. +// // +kubebuilder:validation:Enum=All;Selector;Same type FromNamespaces string diff --git a/apis/v1alpha2/httproute_types.go b/apis/v1alpha2/httproute_types.go index 8ad07c2adf..42847ef881 100644 --- a/apis/v1alpha2/httproute_types.go +++ b/apis/v1alpha2/httproute_types.go @@ -244,6 +244,13 @@ type HTTPRouteRule struct { // - Must begin with the `/` character // - Must not contain consecutive `/` characters (e.g. `/foo///`, `//`). // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=Exact;PathPrefix;RegularExpression type PathMatchType string @@ -299,6 +306,13 @@ type HTTPPathMatch struct { // * "Exact" // * "RegularExpression" // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=Exact;RegularExpression type HeaderMatchType string @@ -373,6 +387,13 @@ type HTTPHeaderMatch struct { // * "Exact" // * "RegularExpression" // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=Exact;RegularExpression type QueryParamMatchType string @@ -424,6 +445,14 @@ type HTTPQueryParamMatch struct { // [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-4) and // [RFC 5789](https://datatracker.ietf.org/doc/html/rfc5789#section-2). // The value is expected in upper case. +// +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=GET;HEAD;POST;PUT;DELETE;CONNECT;OPTIONS;TRACE;PATCH type HTTPMethod string @@ -524,6 +553,13 @@ type HTTPRouteFilter struct { // MUST NOT be skipped. Instead, requests that would have been processed by // that filter MUST receive a HTTP error response. // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // +unionDiscriminator // +kubebuilder:validation:Enum=RequestHeaderModifier;RequestMirror;RequestRedirect;ExtensionRef // @@ -743,6 +779,13 @@ type HTTPPathModifier struct { // Type defines the type of path modifier. Additional types may be // added in a future release of the API. // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // // +kubebuilder:validation:Enum=ReplaceFullPath;ReplacePrefixMatch Type HTTPPathModifierType `json:"type"` @@ -780,6 +823,13 @@ type HTTPRequestRedirectFilter struct { // // Support: Extended // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // +optional // +kubebuilder:validation:Enum=http;https Scheme *string `json:"scheme,omitempty"` @@ -816,6 +866,13 @@ type HTTPRequestRedirectFilter struct { // // Support: Core // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // +optional // +kubebuilder:default=302 // +kubebuilder:validation:Enum=301;302 diff --git a/apis/v1alpha2/shared_types.go b/apis/v1alpha2/shared_types.go index 469e5d266a..9e1e7af2b8 100644 --- a/apis/v1alpha2/shared_types.go +++ b/apis/v1alpha2/shared_types.go @@ -217,6 +217,10 @@ const ( // compatible Listeners whose Hostname matches the route RouteReasonNoMatchingListenerHostname RouteConditionReason = "NoMatchingListenerHostname" + // This reason is used with the "Accepted" condition when a value for an Enum + // is not recognized. + RouteReasonUnsupportedValue RouteConditionReason = "UnsupportedValue" + // This condition indicates whether the controller was able to resolve all // the object references for the Route. // diff --git a/apis/v1beta1/httproute_types.go b/apis/v1beta1/httproute_types.go index c4015a24e5..8fdb96e410 100644 --- a/apis/v1beta1/httproute_types.go +++ b/apis/v1beta1/httproute_types.go @@ -221,6 +221,7 @@ type HTTPRouteRule struct { // recommended to return a 503 status code. // // Support: Core for Kubernetes Service + // // Support: Custom for any other resource // // Support for weight: Core @@ -242,6 +243,13 @@ type HTTPRouteRule struct { // - Must begin with the `/` character // - Must not contain consecutive `/` characters (e.g. `/foo///`, `//`). // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=Exact;PathPrefix;RegularExpression type PathMatchType string @@ -297,6 +305,13 @@ type HTTPPathMatch struct { // * "Exact" // * "RegularExpression" // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=Exact;RegularExpression type HeaderMatchType string @@ -371,6 +386,13 @@ type HTTPHeaderMatch struct { // * "Exact" // * "RegularExpression" // +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=Exact;RegularExpression type QueryParamMatchType string @@ -422,6 +444,14 @@ type HTTPQueryParamMatch struct { // [RFC 7231](https://datatracker.ietf.org/doc/html/rfc7231#section-4) and // [RFC 5789](https://datatracker.ietf.org/doc/html/rfc5789#section-2). // The value is expected in upper case. +// +// Note that values may be added to this enum, implementations +// must ensure that unknown values will not cause a crash. +// +// Unknown values here must result in the implementation setting the +// Attached Condition for the Route to `status: False`, with a +// Reason of `UnsupportedValue`. +// // +kubebuilder:validation:Enum=GET;HEAD;POST;PUT;DELETE;CONNECT;OPTIONS;TRACE;PATCH type HTTPMethod string @@ -522,6 +552,13 @@ type HTTPRouteFilter struct { // MUST NOT be skipped. Instead, requests that would have been processed by // that filter MUST receive a HTTP error response. // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // +unionDiscriminator // +kubebuilder:validation:Enum=RequestHeaderModifier;RequestMirror;RequestRedirect;ExtensionRef // @@ -741,6 +778,13 @@ type HTTPPathModifier struct { // Type defines the type of path modifier. Additional types may be // added in a future release of the API. // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // // +kubebuilder:validation:Enum=ReplaceFullPath;ReplacePrefixMatch Type HTTPPathModifierType `json:"type"` @@ -778,6 +822,13 @@ type HTTPRequestRedirectFilter struct { // // Support: Extended // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // +optional // +kubebuilder:validation:Enum=http;https Scheme *string `json:"scheme,omitempty"` @@ -814,6 +865,13 @@ type HTTPRequestRedirectFilter struct { // // Support: Core // + // Note that values may be added to this enum, implementations + // must ensure that unknown values will not cause a crash. + // + // Unknown values here must result in the implementation setting the + // Attached Condition for the Route to `status: False`, with a + // Reason of `UnsupportedValue`. + // // +optional // +kubebuilder:default=302 // +kubebuilder:validation:Enum=301;302 diff --git a/apis/v1beta1/shared_types.go b/apis/v1beta1/shared_types.go index 2e63f6cfdf..7d5b41f3fc 100644 --- a/apis/v1beta1/shared_types.go +++ b/apis/v1beta1/shared_types.go @@ -217,6 +217,10 @@ const ( // compatible Listeners whose Hostname matches the route RouteReasonNoMatchingListenerHostname RouteConditionReason = "NoMatchingListenerHostname" + // This reason is used with the "Accepted" condition when a value for an Enum + // is not recognized. + RouteReasonUnsupportedValue RouteConditionReason = "UnsupportedValue" + // This condition indicates whether the controller was able to resolve all // the object references for the Route. // diff --git a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml index 5d046bca37..924bd86d8a 100644 --- a/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml +++ b/config/crd/experimental/gateway.networking.k8s.io_httproutes.yaml @@ -527,7 +527,14 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added - in a future release of the API. \n " + in a future release of the API. \n Note + that values may be added to this enum, + implementations must ensure that unknown + values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the + Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -548,7 +555,13 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request - is used. \n Support: Extended" + is used. \n Support: Extended \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result + in the implementation setting the Attached + Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -556,7 +569,13 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status - code to be used in response. \n Support: Core" + code to be used in response. \n Support: Core + \n Note that values may be added to this enum, + implementations must ensure that unknown values + will not cause a crash. \n Unknown values + here must result in the implementation setting + the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -587,7 +606,13 @@ spec: \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by that - filter MUST receive a HTTP error response. \n " + filter MUST receive a HTTP error response. \n + Note that values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result in + the implementation setting the Attached Condition + for the Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -640,7 +665,14 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added - in a future release of the API. \n " + in a future release of the API. \n Note + that values may be added to this enum, + implementations must ensure that unknown + values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the + Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -1004,7 +1036,13 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added in a future release - of the API. \n " + of the API. \n Note that values may be added + to this enum, implementations must ensure that + unknown values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the Route + to `status: False`, with a Reason of `UnsupportedValue`. + \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -1025,7 +1063,12 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request is used. \n - Support: Extended" + Support: Extended \n Note that values may be added + to this enum, implementations must ensure that unknown + values will not cause a crash. \n Unknown values + here must result in the implementation setting the + Attached Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -1033,7 +1076,12 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status code to - be used in response. \n Support: Core" + be used in response. \n Support: Core \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause a + crash. \n Unknown values here must result in the + implementation setting the Attached Condition for + the Route to `status: False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -1062,7 +1110,12 @@ spec: behavior. \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by - that filter MUST receive a HTTP error response. \n " + that filter MUST receive a HTTP error response. \n Note + that values may be added to this enum, implementations + must ensure that unknown values will not cause a crash. + \n Unknown values here must result in the implementation + setting the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -1112,7 +1165,13 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added in a future release - of the API. \n " + of the API. \n Note that values may be added + to this enum, implementations must ensure that + unknown values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the Route + to `status: False`, with a Reason of `UnsupportedValue`. + \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -1771,8 +1830,8 @@ spec: been routed to an invalid backend MUST receive a 500 status code. \n When a BackendRef refers to a Service that has no ready endpoints, it is recommended to return a 503 status - code. \n Support: Core for Kubernetes Service Support: Custom - for any other resource \n Support for weight: Core" + code. \n Support: Core for Kubernetes Service \n Support: + Custom for any other resource \n Support for weight: Core" items: description: HTTPBackendRef defines how a HTTPRoute should forward an HTTP request. @@ -2065,7 +2124,14 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added - in a future release of the API. \n " + in a future release of the API. \n Note + that values may be added to this enum, + implementations must ensure that unknown + values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the + Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -2086,7 +2152,13 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request - is used. \n Support: Extended" + is used. \n Support: Extended \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result + in the implementation setting the Attached + Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -2094,7 +2166,13 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status - code to be used in response. \n Support: Core" + code to be used in response. \n Support: Core + \n Note that values may be added to this enum, + implementations must ensure that unknown values + will not cause a crash. \n Unknown values + here must result in the implementation setting + the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -2125,7 +2203,13 @@ spec: \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by that - filter MUST receive a HTTP error response. \n " + filter MUST receive a HTTP error response. \n + Note that values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result in + the implementation setting the Attached Condition + for the Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -2178,7 +2262,14 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added - in a future release of the API. \n " + in a future release of the API. \n Note + that values may be added to this enum, + implementations must ensure that unknown + values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the + Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -2541,7 +2632,13 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added in a future release - of the API. \n " + of the API. \n Note that values may be added + to this enum, implementations must ensure that + unknown values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the Route + to `status: False`, with a Reason of `UnsupportedValue`. + \n " enum: - ReplaceFullPath - ReplacePrefixMatch @@ -2562,7 +2659,12 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request is used. \n - Support: Extended" + Support: Extended \n Note that values may be added + to this enum, implementations must ensure that unknown + values will not cause a crash. \n Unknown values + here must result in the implementation setting the + Attached Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -2570,7 +2672,12 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status code to - be used in response. \n Support: Core" + be used in response. \n Support: Core \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause a + crash. \n Unknown values here must result in the + implementation setting the Attached Condition for + the Route to `status: False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -2599,7 +2706,12 @@ spec: behavior. \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by - that filter MUST receive a HTTP error response. \n " + that filter MUST receive a HTTP error response. \n Note + that values may be added to this enum, implementations + must ensure that unknown values will not cause a crash. + \n Unknown values here must result in the implementation + setting the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -2649,7 +2761,13 @@ spec: type: description: "Type defines the type of path modifier. Additional types may be added in a future release - of the API. \n " + of the API. \n Note that values may be added + to this enum, implementations must ensure that + unknown values will not cause a crash. \n Unknown + values here must result in the implementation + setting the Attached Condition for the Route + to `status: False`, with a Reason of `UnsupportedValue`. + \n " enum: - ReplaceFullPath - ReplacePrefixMatch diff --git a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml index 1bf4452121..6bcf4c9243 100644 --- a/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml +++ b/config/crd/standard/gateway.networking.k8s.io_httproutes.yaml @@ -478,7 +478,13 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request - is used. \n Support: Extended" + is used. \n Support: Extended \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result + in the implementation setting the Attached + Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -486,7 +492,13 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status - code to be used in response. \n Support: Core" + code to be used in response. \n Support: Core + \n Note that values may be added to this enum, + implementations must ensure that unknown values + will not cause a crash. \n Unknown values + here must result in the implementation setting + the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -517,7 +529,13 @@ spec: \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by that - filter MUST receive a HTTP error response. \n " + filter MUST receive a HTTP error response. \n + Note that values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result in + the implementation setting the Attached Condition + for the Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -860,7 +878,12 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request is used. \n - Support: Extended" + Support: Extended \n Note that values may be added + to this enum, implementations must ensure that unknown + values will not cause a crash. \n Unknown values + here must result in the implementation setting the + Attached Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -868,7 +891,12 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status code to - be used in response. \n Support: Core" + be used in response. \n Support: Core \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause a + crash. \n Unknown values here must result in the + implementation setting the Attached Condition for + the Route to `status: False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -897,7 +925,12 @@ spec: behavior. \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by - that filter MUST receive a HTTP error response. \n " + that filter MUST receive a HTTP error response. \n Note + that values may be added to this enum, implementations + must ensure that unknown values will not cause a crash. + \n Unknown values here must result in the implementation + setting the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -1500,8 +1533,8 @@ spec: been routed to an invalid backend MUST receive a 500 status code. \n When a BackendRef refers to a Service that has no ready endpoints, it is recommended to return a 503 status - code. \n Support: Core for Kubernetes Service Support: Custom - for any other resource \n Support for weight: Core" + code. \n Support: Core for Kubernetes Service \n Support: + Custom for any other resource \n Support for weight: Core" items: description: HTTPBackendRef defines how a HTTPRoute should forward an HTTP request. @@ -1771,7 +1804,13 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request - is used. \n Support: Extended" + is used. \n Support: Extended \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result + in the implementation setting the Attached + Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -1779,7 +1818,13 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status - code to be used in response. \n Support: Core" + code to be used in response. \n Support: Core + \n Note that values may be added to this enum, + implementations must ensure that unknown values + will not cause a crash. \n Unknown values + here must result in the implementation setting + the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -1810,7 +1855,13 @@ spec: \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by that - filter MUST receive a HTTP error response. \n " + filter MUST receive a HTTP error response. \n + Note that values may be added to this enum, implementations + must ensure that unknown values will not cause + a crash. \n Unknown values here must result in + the implementation setting the Attached Condition + for the Route to `status: False`, with a Reason + of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror @@ -2152,7 +2203,12 @@ spec: description: "Scheme is the scheme to be used in the value of the `Location` header in the response. When empty, the scheme of the request is used. \n - Support: Extended" + Support: Extended \n Note that values may be added + to this enum, implementations must ensure that unknown + values will not cause a crash. \n Unknown values + here must result in the implementation setting the + Attached Condition for the Route to `status: False`, + with a Reason of `UnsupportedValue`." enum: - http - https @@ -2160,7 +2216,12 @@ spec: statusCode: default: 302 description: "StatusCode is the HTTP status code to - be used in response. \n Support: Core" + be used in response. \n Support: Core \n Note that + values may be added to this enum, implementations + must ensure that unknown values will not cause a + crash. \n Unknown values here must result in the + implementation setting the Attached Condition for + the Route to `status: False`, with a Reason of `UnsupportedValue`." enum: - 301 - 302 @@ -2189,7 +2250,12 @@ spec: behavior. \n If a reference to a custom filter type cannot be resolved, the filter MUST NOT be skipped. Instead, requests that would have been processed by - that filter MUST receive a HTTP error response. \n " + that filter MUST receive a HTTP error response. \n Note + that values may be added to this enum, implementations + must ensure that unknown values will not cause a crash. + \n Unknown values here must result in the implementation + setting the Attached Condition for the Route to `status: + False`, with a Reason of `UnsupportedValue`. \n " enum: - RequestHeaderModifier - RequestMirror