From 2c0fc3182caa2d76a2c83a2a3b85ec5c5fa8f915 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Thu, 3 Aug 2017 23:14:11 -0700 Subject: middleware/kubernetes: cleanup (#818) Drop the interfaceAddr interfaces and just use a function. Cleanup all fallout from that. Remove the use of global variables and cleanup the tests a bit. --- middleware/kubernetes/kubernetes.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'middleware/kubernetes/kubernetes.go') diff --git a/middleware/kubernetes/kubernetes.go b/middleware/kubernetes/kubernetes.go index 58d3656ae..8a87322e8 100644 --- a/middleware/kubernetes/kubernetes.go +++ b/middleware/kubernetes/kubernetes.go @@ -46,7 +46,7 @@ type Kubernetes struct { ReverseCidrs []net.IPNet Fallthrough bool AutoPath - interfaceAddrs interfaceAddrser + interfaceAddrsFunc func() net.IP } type AutoPath struct { @@ -98,8 +98,6 @@ type recordRequest struct { federation string } -var localPodIP net.IP - var ( errNoItems = errors.New("no items found") errNsNotExposed = errors.New("namespace is not exposed") @@ -651,11 +649,11 @@ func symbolContainsWildcard(symbol string) bool { return (symbol == "*" || symbol == "any") } -func (k *Kubernetes) localPodIP() net.IP { - if localPodIP != nil { - return localPodIP +func localPodIP() net.IP { + addrs, err := net.InterfaceAddrs() + if err != nil { + return nil } - addrs, _ := k.interfaceAddrs.interfaceAddrs() for _, addr := range addrs { ip, _, _ := net.ParseCIDR(addr.String()) @@ -663,8 +661,7 @@ func (k *Kubernetes) localPodIP() net.IP { if ip == nil || ip.IsLoopback() { continue } - localPodIP = ip - return localPodIP + return ip } return nil } -- cgit v1.2.3