Skip to content

Commit d2178da

Browse files
authored
fix(ecmp_vip): check for nil nodename (#903)
While rare that NodeName is missing it is not guaranteed to exist by the Kubernetes API (see link below). This retains checking via NodeName first if it exists, but if it's nil rather than segfaulting it evaluates the via IP address. Fixes #781 https://github.com/cloudnativelabs/kube-router/blob/master/vendor/k8s.io/api/core/v1/types.go#L3487
1 parent 837554b commit d2178da

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

pkg/controllers/routing/ecmp_vip.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -436,8 +436,14 @@ func (nrc *NetworkRoutingController) nodeHasEndpointsForService(svc *v1core.Serv
436436

437437
for _, subset := range ep.Subsets {
438438
for _, address := range subset.Addresses {
439-
if *address.NodeName == nrc.nodeName {
440-
return true, nil
439+
if address.NodeName != nil {
440+
if *address.NodeName == nrc.nodeName {
441+
return true, nil
442+
}
443+
} else {
444+
if address.IP == nrc.nodeIP.String() {
445+
return true, nil
446+
}
441447
}
442448
}
443449
}

0 commit comments

Comments
 (0)