envoyproxy / envoy

Cloud-native high-performance edge/middle/service proxy
https://www.envoyproxy.io
Apache License 2.0
24.72k stars 4.75k forks source link

Didn't find a registered implementation for 'tcp' with type URL: 'envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy' #34631

Closed ChrWeissDe closed 3 months ago

ChrWeissDe commented 3 months ago

Dear Envoy Community,

We try to use Envoy in conjunction with Istio. Our goal is to route specific traffic via an additional proxy.

We setup the following Envoy object (see below) in Istio but receive the following error:

_warning    envoy config external/envoy/source/extensions/config_subscription/grpc/delta_subscription_state.cc:269  
delta config for type.googleapis.com/envoy.config.listener.v3.Listener rejected: 
Error adding/updating listener(s) virtualOutbound: 
Didn't find a registered implementation for 'tcp' with type URL: 
'envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy'_

Any help / guidance what we do wrong is appreciated - thanks in advance

Here our config:

metadata:
  name: traffic-routing
  namespace: envoy-config
spec:
  configPatches:
  - applyTo: LISTENER_FILTER
    match:
      listener:
        portNumber: 15001
    patch:
      operation: INSERT_FIRST
      value:
        name: tcp
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy
          stat_prefix: TCPProxy
          cluster: externalProxyCluster
  - applyTo: CLUSTER
    match:
      context: ANY
    patch:
      operation: ADD
      value:
        name: externalProxyCluster
        load_assignment:
          cluster_name: proxyCluster
          endpoints:
          - lb_endpoints:
            - endpoint:
                address:
                  socket_address:
                    address: IP.address
                    port_value: portNumber
alyssawilk commented 3 months ago

Sorry any chance you can provide the Envoy config rather than the istio config? Envoy logs would hopefully have the envoy yaml

ChrWeissDe commented 3 months ago

Hi @alyssawilk

Thanks for the quick reply. We were actually able to solve the issue. Seems that the "applyTo: LISTENER_FILTER" was wrong; we are now using "applyTo: NETWORK_FILTER" instead.

However we were not able to solve your initial problem to route specific traffic to an additional proxy outside of our cluster. Reason: the object "envoy.filters.network.tcp_proxy" seems only to allow one 'cluser' (destination).

Will close this ticket an open a new one.