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

Labels

help wantedExtra attention is neededkind/bugSomething isn't working

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions