solo-io / gloo

The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy

Home Page:https://docs.solo.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add support for compression filter Brotli in Gloo Edge

sadieleob opened this issue · comments

Gloo Edge Product

Enterprise

Gloo Edge Version

1.16.x

Is your feature request related to a problem? Please describe.

No response

Describe the solution you'd like

The customer's dev team has come up with APIs that have rather heavy payloads and are already doing gzip compression on the app side. They want to further enhance the performance with brotli and were looking if there was a way to do it in the k8s platform itself without changes to the app.

Describe alternatives you've considered

The customer is already using gzip compression on the app side

Additional Context

No response

Zendesk ticket #3757 has been linked to this issue.

Today we allow configuration of the envoy compressor purely with gzip compression
https://github.com/solo-io/gloo/blob/v1.16.x/projects/gloo/pkg/plugins/gzip/plugin.go#L0-L1

Envoy does allow multiple compressors to be configured as seperate filter instances
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/compressor_filter

There are 3 non-contrib compressors allowed today: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/compressor/v3/compressor.proto#envoy-v3-api-msg-extensions-filters-http-compressor-v3-compressor

Whomever picks this up can also consider an upstream pr to fix the wording in upstream where it claims that gzip is the only included one but then also lists the 3 included compressions