You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Proxy or Load Balancer routing configuration generated from HTTPRoutes MUST prioritize matches based on the following criteria, continuing on ties. Across all rules specified on applicable Routes, precedence must be given to the match having:
“Exact” path match.
“Prefix” path match with largest number of characters.
Method match.
Largest number of header matches.
Largest number of query param matches.
Note: The precedence of RegularExpression path matches are implementation-specific.
Some projects support user-defined route ordering:
The order of routes matters. A route is selected for a request based on the first matching route matcher in the virtual service’s list
The sorting of routes improves consistency and guards against end user mistakes (e.g. more specific prefix matchers being ignored because shorter matchers are specified first). However, advanced users and users migrating from other projects may need more control over the route order (e.g. determining the order of regex matchers not based on length).
The default behavior of Envoy Gateway must remain backwards compatible and compliant with GW-API specs. However, EG can introduce a new flag in EnvoyGateway configmap or ClientTrafficPolicy CRD to support user-defined route ordering. When multiple HTTPRoute resources are attached to a GW, date-of-creation sorting can be used to determine the order of the route groups.
Allowing users to define this behavior on a per HTTPRoute or even HTTPRouteRule level with BackendTrafficPolicy/HTTPRouteFilter would create significant implementation complexity and possible ambiguity.
[optional Relevant Links:]
Any extra documentation required to understand the issue.
The text was updated successfully, but these errors were encountered:
Description:
Currently, envoy gateway orders routes according to requirements in GW-API: https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.HTTPRouteRule
Some projects support user-defined route ordering:
The sorting of routes improves consistency and guards against end user mistakes (e.g. more specific prefix matchers being ignored because shorter matchers are specified first). However, advanced users and users migrating from other projects may need more control over the route order (e.g. determining the order of regex matchers not based on length).
The default behavior of Envoy Gateway must remain backwards compatible and compliant with GW-API specs. However, EG can introduce a new flag in
EnvoyGateway
configmap orClientTrafficPolicy
CRD to support user-defined route ordering. When multiple HTTPRoute resources are attached to a GW, date-of-creation sorting can be used to determine the order of the route groups.Allowing users to define this behavior on a per
HTTPRoute
or evenHTTPRouteRule
level withBackendTrafficPolicy
/HTTPRouteFilter
would create significant implementation complexity and possible ambiguity.[optional Relevant Links:]
The text was updated successfully, but these errors were encountered: