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