Expose "early_header_mutation" filter in the Gloo control plane
DuncanDoyle opened this issue · comments
Gloo Edge Product
Open Source
Gloo Edge Version
1.17.0
Is your feature request related to a problem? Please describe.
Gloo's Envoy proxy ships with the early header mutation extension.
{
"name": "envoy.http.early_header_mutation.header_mutation",
"category": "envoy.http.early_header_mutation",
"type_urls": [
"envoy.extensions.http.early_header_mutation.header_mutation.v3.HeaderMutation"
]
}
We should expose this early header mutation functionality via the Gloo control plane.
Context
The customer use-case is the following:
As part of their test pipelines, the customer wants to set the x-b3-traceid
header on the requests. When the original request does not yet contain the x-b3-traceid
header, and we try to set this header using, for example, WASM, Envoy overwrites the x-b3-traceid
header with a generated one. The only way to prevent Envoy from overwriting this header is to pass the header in the original request, which is something customer would not like to have to do.
Requirement
In Gloo Mesh Gateway, we were able to implement the customer's use-case with a custom EnvoyFilter
that uses the early_header_mutation
extension to set the x-b3-traceid
header. Given that Gloo Gateway does not support the concept of EnvoyFilter
like Gloo Mesh Gateway does, we need to expose this configuration in some other form in the Gloo Gateway control plane.
Describe the solution you'd like
Support the use of the early_header_mutation
extension in the Gloo control plane.
Describe alternatives you've considered
n.a
Additional Context
Related Issues
@DuncanDoyle why can't we use transformation for this? Do you know at exactly what stage that header gets overwritten by envoy?