diff --git a/pkg/controller/endpointslice/endpointslice_controller_test.go b/pkg/controller/endpointslice/endpointslice_controller_test.go index cd3c7702ab3..03476f112d0 100644 --- a/pkg/controller/endpointslice/endpointslice_controller_test.go +++ b/pkg/controller/endpointslice/endpointslice_controller_test.go @@ -782,7 +782,7 @@ func TestSyncService(t *testing.T) { Serving: ptr.To(true), Terminating: ptr.To(false), }, - Addresses: []string{"fd08::5678:0000:0000:9abc:def0"}, + Addresses: []string{"fd08::5678:0:0:9abc:def0"}, TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"}, NodeName: ptr.To("node-1"), }, diff --git a/staging/src/k8s.io/endpointslice/reconciler_test.go b/staging/src/k8s.io/endpointslice/reconciler_test.go index 917c882a344..713b14d1cc5 100644 --- a/staging/src/k8s.io/endpointslice/reconciler_test.go +++ b/staging/src/k8s.io/endpointslice/reconciler_test.go @@ -370,7 +370,7 @@ func TestReconcile1Pod(t *testing.T) { expectedEndpointPerSlice: map[discovery.AddressType][]discovery.Endpoint{ discovery.AddressTypeIPv6: { { - Addresses: []string{"1234::5678:0000:0000:9abc:def0"}, + Addresses: []string{"1234::5678:0:0:9abc:def0"}, Conditions: discovery.EndpointConditions{ Ready: pointer.Bool(true), Serving: pointer.Bool(true), @@ -398,7 +398,7 @@ func TestReconcile1Pod(t *testing.T) { expectedEndpointPerSlice: map[discovery.AddressType][]discovery.Endpoint{ discovery.AddressTypeIPv6: { { - Addresses: []string{"1234::5678:0000:0000:9abc:def0"}, + Addresses: []string{"1234::5678:0:0:9abc:def0"}, Conditions: discovery.EndpointConditions{ Ready: pointer.Bool(true), Serving: pointer.Bool(true), @@ -425,7 +425,7 @@ func TestReconcile1Pod(t *testing.T) { expectedEndpointPerSlice: map[discovery.AddressType][]discovery.Endpoint{ discovery.AddressTypeIPv6: { { - Addresses: []string{"1234::5678:0000:0000:9abc:def0"}, + Addresses: []string{"1234::5678:0:0:9abc:def0"}, Conditions: discovery.EndpointConditions{ Ready: pointer.Bool(true), Serving: pointer.Bool(true), diff --git a/staging/src/k8s.io/endpointslice/utils.go b/staging/src/k8s.io/endpointslice/utils.go index 2cd4e018318..18ea614672e 100644 --- a/staging/src/k8s.io/endpointslice/utils.go +++ b/staging/src/k8s.io/endpointslice/utils.go @@ -109,13 +109,15 @@ func getEndpointAddresses(podStatus v1.PodStatus, service *v1.Service, addressTy addresses := []string{} for _, podIP := range podStatus.PodIPs { - isIPv6PodIP := utilnet.IsIPv6String(podIP.IP) + // We parse and restringify the pod IP in case it is in an irregular format. + ip := utilnet.ParseIPSloppy(podIP.IP) + isIPv6PodIP := utilnet.IsIPv6(ip) if isIPv6PodIP && addressType == discovery.AddressTypeIPv6 { - addresses = append(addresses, podIP.IP) + addresses = append(addresses, ip.String()) } if !isIPv6PodIP && addressType == discovery.AddressTypeIPv4 { - addresses = append(addresses, podIP.IP) + addresses = append(addresses, ip.String()) } }