envoy icon indicating copy to clipboard operation
envoy copied to clipboard

Is it possible to add a new HTTP header in Lua filter (envoy_on_request) for gRPC request?

Open Hixon10 opened this issue 1 year ago • 0 comments

Title: It seems that when I add a new HTTP header in Lua filter (envoy_on_request) for gRPC request, a server application doesn't receive it.

Description: I use Istio with Envoy in K8S. When an application calls another one, I want to add a custom HTTP header for a gRPC request. I try to use a Lua filter for it. I define a filter like this:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: example
spec:
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          filterChain:
            filter:
              name: envoy.filters.network.http_connection_manager
              subFilter:
                name: envoy.router
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.lua
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
            inlineCode: |
              function envoy_on_request(request_handle)
                request_handle:headers():add("x-custom-header", "value")
              end

I don't see a x-custom-header Header on a server side. I wonder, is it expected that envoy_on_request filter should work for gRPC?

Hixon10 avatar Feb 24 '24 11:02 Hixon10