Skip to content

Commit 29be52b

Browse files
committed
Make EndpointSlice controller always canonicalize the IPs it writes out
1 parent 7259742 commit 29be52b

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

pkg/controller/endpointslice/endpointslice_controller_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,7 @@ func TestSyncService(t *testing.T) {
782782
Serving: ptr.To(true),
783783
Terminating: ptr.To(false),
784784
},
785-
Addresses: []string{"fd08::5678:0000:0000:9abc:def0"},
785+
Addresses: []string{"fd08::5678:0:0:9abc:def0"},
786786
TargetRef: &v1.ObjectReference{Kind: "Pod", Namespace: "default", Name: "pod1"},
787787
NodeName: ptr.To("node-1"),
788788
},

staging/src/k8s.io/endpointslice/reconciler_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ func TestReconcile1Pod(t *testing.T) {
370370
expectedEndpointPerSlice: map[discovery.AddressType][]discovery.Endpoint{
371371
discovery.AddressTypeIPv6: {
372372
{
373-
Addresses: []string{"1234::5678:0000:0000:9abc:def0"},
373+
Addresses: []string{"1234::5678:0:0:9abc:def0"},
374374
Conditions: discovery.EndpointConditions{
375375
Ready: pointer.Bool(true),
376376
Serving: pointer.Bool(true),
@@ -398,7 +398,7 @@ func TestReconcile1Pod(t *testing.T) {
398398
expectedEndpointPerSlice: map[discovery.AddressType][]discovery.Endpoint{
399399
discovery.AddressTypeIPv6: {
400400
{
401-
Addresses: []string{"1234::5678:0000:0000:9abc:def0"},
401+
Addresses: []string{"1234::5678:0:0:9abc:def0"},
402402
Conditions: discovery.EndpointConditions{
403403
Ready: pointer.Bool(true),
404404
Serving: pointer.Bool(true),
@@ -425,7 +425,7 @@ func TestReconcile1Pod(t *testing.T) {
425425
expectedEndpointPerSlice: map[discovery.AddressType][]discovery.Endpoint{
426426
discovery.AddressTypeIPv6: {
427427
{
428-
Addresses: []string{"1234::5678:0000:0000:9abc:def0"},
428+
Addresses: []string{"1234::5678:0:0:9abc:def0"},
429429
Conditions: discovery.EndpointConditions{
430430
Ready: pointer.Bool(true),
431431
Serving: pointer.Bool(true),

staging/src/k8s.io/endpointslice/utils.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,15 @@ func getEndpointAddresses(podStatus v1.PodStatus, service *v1.Service, addressTy
109109
addresses := []string{}
110110

111111
for _, podIP := range podStatus.PodIPs {
112-
isIPv6PodIP := utilnet.IsIPv6String(podIP.IP)
112+
// We parse and restringify the pod IP in case it is in an irregular format.
113+
ip := utilnet.ParseIPSloppy(podIP.IP)
114+
isIPv6PodIP := utilnet.IsIPv6(ip)
113115
if isIPv6PodIP && addressType == discovery.AddressTypeIPv6 {
114-
addresses = append(addresses, podIP.IP)
116+
addresses = append(addresses, ip.String())
115117
}
116118

117119
if !isIPv6PodIP && addressType == discovery.AddressTypeIPv4 {
118-
addresses = append(addresses, podIP.IP)
120+
addresses = append(addresses, ip.String())
119121
}
120122
}
121123

0 commit comments

Comments
 (0)