Skip to content

data plane pod do not listen IPv6 address #7600

@sergey-safarov

Description

@sergey-safarov

Description:

I deploy IPv6 only EKS cluster and configured IPv6 support in envoy config

---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  name: ipv6-proxy
spec:
  ipFamily: IPv6
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: envoy
spec:
  controllerName: gateway.envoyproxy.io/gatewayclass-controller
  parametersRef:
    group: config.gateway.envoyproxy.io
    kind: EnvoyProxy
    name: ipv6-proxy

But Liveness, 'Readiness' and Startup fails because Envoy listens IPv4 "0.0.0.0" and does not listen IPv6.

Repro steps:

  1. Configure EnvoyProxy using yaml above and deploy any "gateway".
  2. Start debug pod and execute curl to both IP.

Example

/ # curl -v http://127.0.0.1:19003
*   Trying 127.0.0.1:19003...
* Established connection to 127.0.0.1 (127.0.0.1 port 19003) from 127.0.0.1 port 44166 
* using HTTP/1.x
> GET / HTTP/1.1
> Host: 127.0.0.1:19003
> User-Agent: curl/8.17.0
> Accept: */*
> 
< HTTP/1.1 500 Internal Server Error
< date: Tue, 25 Nov 2025 09:44:05 GMT
< server: envoy
< content-length: 0
< 
* Connection #0 to host 127.0.0.1:19003 left intact

/ # curl -v --noproxy "*" http://[::1]:19003
*   Trying [::1]:19003...
* connect to ::1 port 19003 from ::1 port 54276 failed: Connection refused
* Failed to connect to ::1 port 19003 after 0 ms: Could not connect to server
* closing connection #0
curl: (7) Failed to connect to ::1 port 19003 after 0 ms: Could not connect to server

Environment:

used gateway 1.6.0 and envoy v1.36.2.

Logs:

In data-plane pod no pods logs.

As I understand, as a workaround Envoy here can be used jsonPatches to bootstrap conf like

apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
  name: ipv6-proxy
spec:
  mergeGateways: true
  ipFamily: IPv6
  bootstrap:
    type: JSONPatch
    jsonPatches:
      - op: "replace"
        path: "static_resources/listeners/0/address/socketAddress/address"
        value: "::"

But this does not work for me.
Also checked tickets with jsonPatches example, but this does help me. #5368 #6859

In the meantime, could you share how to properly path the listened IP address?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions