Skip to content

Commit 7287e47

Browse files
fix: create IPv4 Service with ipFamily IPv4 on dual-stack, IPv6-first cluster
1 parent 970cee1 commit 7287e47

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

internal/infrastructure/kubernetes/proxy/resource_provider.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,10 @@ func (r *ResourceRender) Service() (*corev1.Service, error) {
251251
// Set IP family policy and families based on proxy config request
252252
ipFamily := r.infra.GetProxyConfig().Spec.IPFamily
253253
if ipFamily != nil {
254-
// SingleStack+IPv4 is default behavior from K8s and so is omitted
255254
switch *ipFamily {
255+
case egv1a1.IPv4:
256+
serviceSpec.IPFamilies = []corev1.IPFamily{corev1.IPv4Protocol}
257+
serviceSpec.IPFamilyPolicy = ptr.To(corev1.IPFamilyPolicySingleStack)
256258
case egv1a1.IPv6:
257259
serviceSpec.IPFamilies = []corev1.IPFamily{corev1.IPv6Protocol}
258260
serviceSpec.IPFamilyPolicy = ptr.To(corev1.IPFamilyPolicySingleStack)

internal/infrastructure/kubernetes/proxy/resource_provider_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,8 +1864,8 @@ func TestIPFamilyPresentInSpec(t *testing.T) {
18641864
{
18651865
"ipv4 specified",
18661866
ptr.To(egv1a1.IPv4),
1867-
nil,
1868-
nil,
1867+
[]corev1.IPFamily{corev1.IPv4Protocol},
1868+
ptr.To(corev1.IPFamilyPolicySingleStack),
18691869
},
18701870
{
18711871
"ipv6 specified",

internal/infrastructure/kubernetes/proxy/testdata/services/ipv4-singlestack.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ metadata:
1717
uid: test-owner-reference-uid-for-gatewayclass
1818
spec:
1919
externalTrafficPolicy: Local
20+
ipFamilies:
21+
- IPv4
22+
ipFamilyPolicy: SingleStack
2023
ports:
2124
- name: EnvoyHTTPPort
2225
port: 0

0 commit comments

Comments
 (0)