gateway icon indicating copy to clipboard operation
gateway copied to clipboard

feat: support custom HTTP filter ordering

Open zhaohuabing opened this issue 1 year ago • 2 comments

This PR allows users to adjust HTTP filter orders to suit their specific use cases. It also:

  • adds a constraint limiting each EnvoyExtensionPolicy to have a maximum of 16 wasm/extproc extensions.
  • Fixes the JSON tag in FilterPosition API

Note: this PR doesn't handle the ordering of individual wasm/extproc extensions. This will be addressed in a follow-up PR, as it involves API change and may need more discussion.

Related: https://github.com/envoyproxy/gateway/issues/2571 https://github.com/envoyproxy/gateway/pull/2993

zhaohuabing avatar Apr 25 '24 14:04 zhaohuabing

/retest

alexwo avatar Apr 25 '24 16:04 alexwo

Codecov Report

Attention: Patch coverage is 94.66667% with 4 lines in your changes are missing coverage. Please review.

Project coverage is 66.94%. Comparing base (29946b0) to head (42c3626). Report is 134 commits behind head on main.

:exclamation: Current head 42c3626 differs from pull request most recent head e4f6a93. Consider uploading reports for the commit e4f6a93 to get more accurate results

Files Patch % Lines
internal/xds/translator/httpfilters.go 93.54% 2 Missing and 2 partials :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3273      +/-   ##
==========================================
+ Coverage   66.51%   66.94%   +0.42%     
==========================================
  Files         161      163       +2     
  Lines       22673    23370     +697     
==========================================
+ Hits        15080    15644     +564     
- Misses       6720     6816      +96     
- Partials      873      910      +37     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

codecov[bot] avatar Apr 25 '24 19:04 codecov[bot]

Do we need to validate that we don't have cycles like:

  spec:
    filterOrder:
      - name: envoy.filters.http.jwt_authn
        before: envoy.filters.http.cors
      - name: envoy.filters.http.cors
        before: envoy.filters.http.jwt_authn

imo if we apply in order, we wont hit this issue, right ?

arkodg avatar May 03 '24 20:05 arkodg

Do we need to validate that we don't have cycles like:

  spec:
    filterOrder:
      - name: envoy.filters.http.jwt_authn
        before: envoy.filters.http.cors
      - name: envoy.filters.http.cors
        before: envoy.filters.http.jwt_authn

imo if we apply in order, we wont hit this issue, right ?

Added a check for a more friendly UI.

zhaohuabing avatar May 03 '24 22:05 zhaohuabing