From 018fd0909689b2f188691237fc9b76cd16a08519 Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Wed, 29 Jan 2020 15:27:52 +0100 Subject: [PATCH 1/4] use any node ip --- .../autodiscover/providers/kubernetes/node.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libbeat/autodiscover/providers/kubernetes/node.go b/libbeat/autodiscover/providers/kubernetes/node.go index 894133f3d121..3e55b3cefc25 100644 --- a/libbeat/autodiscover/providers/kubernetes/node.go +++ b/libbeat/autodiscover/providers/kubernetes/node.go @@ -188,17 +188,28 @@ func (n *node) emit(node *kubernetes.Node, flag string) { }, } n.publish(event) - } +// getAddress returns an IP address from a kubernetes node. +// +// It will use external IP if existing, falling back to Internal IP if not, +// hostname and DNS entries are not taken into account. func getAddress(node *kubernetes.Node) string { + nodeAddress := "" for _, address := range node.Status.Addresses { + if address.Address == "" { + continue + } if address.Type == v1.NodeExternalIP && address.Address != "" { - return address.Address + nodeAddress = address.Address + break + } + if address.Type == v1.NodeInternalIP && address.Address != "" { + nodeAddress = address.Address } } - return "" + return nodeAddress } func isNodeReady(node *kubernetes.Node) bool { From 5f75972f09df53502489addecb0cc36fecb467af Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Wed, 29 Jan 2020 18:39:56 +0100 Subject: [PATCH 2/4] remove clause from if --- libbeat/autodiscover/providers/kubernetes/node.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libbeat/autodiscover/providers/kubernetes/node.go b/libbeat/autodiscover/providers/kubernetes/node.go index 3e55b3cefc25..9758120a15a9 100644 --- a/libbeat/autodiscover/providers/kubernetes/node.go +++ b/libbeat/autodiscover/providers/kubernetes/node.go @@ -200,11 +200,11 @@ func getAddress(node *kubernetes.Node) string { if address.Address == "" { continue } - if address.Type == v1.NodeExternalIP && address.Address != "" { + if address.Type == v1.NodeExternalIP { nodeAddress = address.Address break } - if address.Type == v1.NodeInternalIP && address.Address != "" { + if address.Type == v1.NodeInternalIP { nodeAddress = address.Address } } From b954fb9441f574d3f4d5b8a899aebcfb0f3a40f1 Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Thu, 30 Jan 2020 12:56:56 +0100 Subject: [PATCH 3/4] implement suggestions from review --- .../autodiscover/providers/kubernetes/node.go | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/libbeat/autodiscover/providers/kubernetes/node.go b/libbeat/autodiscover/providers/kubernetes/node.go index 9758120a15a9..8404ec371a78 100644 --- a/libbeat/autodiscover/providers/kubernetes/node.go +++ b/libbeat/autodiscover/providers/kubernetes/node.go @@ -190,26 +190,20 @@ func (n *node) emit(node *kubernetes.Node, flag string) { n.publish(event) } -// getAddress returns an IP address from a kubernetes node. -// -// It will use external IP if existing, falling back to Internal IP if not, -// hostname and DNS entries are not taken into account. func getAddress(node *kubernetes.Node) string { - nodeAddress := "" for _, address := range node.Status.Addresses { - if address.Address == "" { - continue - } - if address.Type == v1.NodeExternalIP { - nodeAddress = address.Address - break + if address.Type == v1.NodeExternalIP && address.Address == "" { + return address.Address } - if address.Type == v1.NodeInternalIP { - nodeAddress = address.Address + } + + for _, address := range node.Status.Addresses { + if address.Type == v1.NodeInternalIP && address.Address == "" { + return address.Address } } - return nodeAddress + return "" } func isNodeReady(node *kubernetes.Node) bool { From eb4195dfb6780c7a63be2a3fd47ef61e882bc5e1 Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Thu, 30 Jan 2020 13:06:41 +0100 Subject: [PATCH 4/4] fix not equal typo --- libbeat/autodiscover/providers/kubernetes/node.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libbeat/autodiscover/providers/kubernetes/node.go b/libbeat/autodiscover/providers/kubernetes/node.go index 8404ec371a78..c643ae4f30c4 100644 --- a/libbeat/autodiscover/providers/kubernetes/node.go +++ b/libbeat/autodiscover/providers/kubernetes/node.go @@ -192,13 +192,13 @@ func (n *node) emit(node *kubernetes.Node, flag string) { func getAddress(node *kubernetes.Node) string { for _, address := range node.Status.Addresses { - if address.Type == v1.NodeExternalIP && address.Address == "" { + if address.Type == v1.NodeExternalIP && address.Address != "" { return address.Address } } for _, address := range node.Status.Addresses { - if address.Type == v1.NodeInternalIP && address.Address == "" { + if address.Type == v1.NodeInternalIP && address.Address != "" { return address.Address } }