Envoy filter failure

Hello,

we are using following code:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: checkout-lua
namespace: checkout-relqa
spec:
  workloadLabels:
    app: checkout
  filters:
  - listenerMatch:
      portNumber: 80
      listenerType: SIDECAR_INBOUND 
      listenerProtocol: TCP
    filterName: envoy.lua
    filterType: NETWORK
    filterConfig:
      inlineCode: |

We have tried using all permutaions and combinations in “filterType” and “listenerProtocol”
but this is giving us following error:

[2019-06-27 14:11:08.299][19][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_mux_subscription_lib/common/config/grpc_mux_subscription_impl.h:77] gRPC config for type.googleapis.com/envoy.api.v2.Listener rejected: Error adding/updating listener(s) 10.68.28.4_8080: Didn't find a registered implementation for name: 'envoy.lua'

I’m trying to get this working too, though I get no errors in the pod logs at all (like the filter is completely ignored)

The one thing I notice about your config is that - listenerMatch: portNumber: 80

Does not match Error adding/updating listener(s) 10.68.28.4_8080

The port should be the same, right?

were you ever able to figure this out?

I am running into something similar and haven’t been able to find anything on this error.

Nope, we gave up in the end, though I have not tried since 1.5 Istio came out which looks to have many changes, some of which may help…

I believe envoy.lua is a HTTP filter so filterType needs to be HTTP. This has worked for me.

In the 1.2 docs Istioldie 1.2 / Envoy Filter
Note 3 mentions that listenerProtocol must also be HTTP, theres also an example

There is also a new way of doing these EnvoyFilters but I had issues with it and had to use this deprecated format.

(although looks like there may be a workaround for my issue now.)