gatewayapi: add support for route rule filters#1512
Conversation
eaba18e to
0f22c9b
Compare
|
Mirroring is a property of the analysis, so I would expect for Flagger to configure Gateway API mirroring automatically, from primary to canary based on |
|
i think we should allow for mirroring using both service and analysis. since adding support for |
0f22c9b to
1dff23a
Compare
Add support for [`Filters`](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPRouteFilter) in the HTTPRoute API. We reuse most of the existing fields used for Istio to construct the appopriate filter. A new API `.spec.service.mirror` is added to allow for request mirroring. The `.spec.service.rewrite` API has been changed to a custom `HTTPRewrite` API instead of importing it from Istio, to allow covering all features that Gateway API provides. Support for the [`RequestRedirect`](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io/v1beta1.HTTPRequestRedirectFilter) Filter has been left out on purpose, since it's not possible to specify it if the same rule also specifies `.backendRefs` (which Flagger does). Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
1dff23a to
c0e2096
Compare
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #1512 +/- ##
==========================================
- Coverage 55.28% 54.96% -0.32%
==========================================
Files 85 85
Lines 10233 10325 +92
==========================================
+ Hits 5657 5675 +18
- Misses 3917 3988 +71
- Partials 659 662 +3
☔ View full report in Codecov by Sentry. |
Add support for
Filtersin the HTTPRoute API. We reuse most of the existing fields used for Istio to construct the appopriate filter. A new API.spec.service.mirroris added to allow for request mirroring. The.spec.service.rewriteAPI has been changed to a customHTTPRewriteAPI instead of importing it from Istio, to allow covering all features that Gateway API provides.Support for the
RequestRedirectFilter has been left out on purpose, since it's not possible to specify it if the same rule also specifies.backendRefs(which Flagger does).Fixes #1488