Skip to content

Comments

feat: decompressor support#8273

Open
aburan28 wants to merge 4 commits intoenvoyproxy:mainfrom
aburan28:adam--decompress
Open

feat: decompressor support#8273
aburan28 wants to merge 4 commits intoenvoyproxy:mainfrom
aburan28:adam--decompress

Conversation

@aburan28
Copy link
Contributor

@aburan28 aburan28 commented Feb 14, 2026

What type of PR is this?

Feature

What this PR does / why we need it:

This PR adds decompressor filter support to Envoy Gateway, enabling decompression of compressed requests from clients and/or compressed responses from backends at the gateway layer. It introduces a new decompressor field on the BackendTrafficPolicy CRD, mirroring the existing compressor design pattern.

The implementation:

  • Defines a new Decompression API type (api/v1alpha1/decompression_types.go) supporting three compression algorithms: Gzip, Brotli, and Zstd
  • Uses a discriminated union pattern with CEL validations to ensure only the config block matching the selected type is set (e.g., if type is Gzip, brotli and zstd fields must not be present)
  • Adds the decompressor field to BackendTrafficPolicySpec as a merge-patched array
  • Registers envoy.filters.http.decompressor as a new EnvoyFilter type with proper filter ordering
  • Translates the API types through the Gateway API layer into IR and then into xDS configuration for Envoy's decompressor filter
  • Includes unit tests for the buildDecompression translation function and conformance test data fixtures
  • Regenerates CRDs and deepcopy functions

Which issue(s) this PR fixes:

Fixes #7335

Release Notes: Yes

@netlify
Copy link

netlify bot commented Feb 14, 2026

Deploy Preview for cerulean-figolla-1f9435 canceled.

Name Link
🔨 Latest commit d967846
🔍 Latest deploy log https://app.netlify.com/projects/cerulean-figolla-1f9435/deploys/6999f3342fe605000870b4fc

@codecov
Copy link

codecov bot commented Feb 14, 2026

Codecov Report

❌ Patch coverage is 92.23301% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.67%. Comparing base (7031394) to head (d967846).

Files with missing lines Patch % Lines
internal/xds/translator/decompressor.go 90.90% 4 Missing and 4 partials ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             main    #8273    +/-   ##
========================================
  Coverage   73.66%   73.67%            
========================================
  Files         242      243     +1     
  Lines       37007    37108   +101     
========================================
+ Hits        27261    27339    +78     
- Misses       7826     7840    +14     
- Partials     1920     1929     +9     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@arkodg arkodg added this to the v1.8.0-rc.1 Release milestone Feb 16, 2026
@arkodg arkodg requested a review from a team February 16, 2026 19:43
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are these removed?

Signed-off-by: Adam Buran <aburan28@gmail.com>
Signed-off-by: Adam Buran <aburan28@gmail.com>
Signed-off-by: Adam Buran <aburan28@gmail.com>
@aburan28 aburan28 marked this pull request as ready for review February 21, 2026 18:02
@aburan28 aburan28 requested a review from a team as a code owner February 21, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support decompressor

3 participants