Skip to content

Setting ipFamily: IPv4 on a dual stack, IPv6-first cluster results in an IPv6 Service #6389

@michaelbeaumont

Description

@michaelbeaumont

Description:
Setting ipFamily: IPv4 on a dual stack, IPv6-first cluster should result in an IPv4 Service. Instead envoy-gateway creates a single stack, IPv6 Service.

There's a comment in the code:

	if ipFamily != nil {
		// SingleStack+IPv4 is default behavior from K8s and so is omitted
		switch *ipFamily {

This isn't true according to the Kubernetes docs:

The address family of a Service defaults to the address family of the first service cluster IP range (configured via the --service-cluster-ip-range flag to the kube-apiserver).

Unfortunately simply setting the family of the Service isn't enough. The health listener doesn't listen on IPv4 if the family is set on the EnvoyProxy but kubernetes tries the first IP of the Pod which is IPv6 in this case.

Repro steps:
Set up an EnvoyProxy with spec.ipFamily: IPv4 on a dual-stack, IPv6-first cluster.

Environment:
Envoy gateway v1.4.1

Logs:
None relevant

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