From ecce29dee9625842e419496e18560291ef90b1b5 Mon Sep 17 00:00:00 2001 From: Alex Lubbock Date: Wed, 31 May 2023 00:07:06 +0100 Subject: [PATCH] fix: upgrade-k8s use internal IP first, external IP fallback Currently, upgrade-k8s adds both node internal and external IPs. This commit uses the internal IP if available; external IP is only used as a fallback. Signed-off-by: Alex Lubbock Signed-off-by: Andrey Smirnov --- pkg/kubernetes/kubernetes.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkg/kubernetes/kubernetes.go b/pkg/kubernetes/kubernetes.go index cefb78ace..2c1d3529d 100644 --- a/pkg/kubernetes/kubernetes.go +++ b/pkg/kubernetes/kubernetes.go @@ -154,7 +154,7 @@ func (h *Client) NodeIPs(ctx context.Context, machineType machine.Type) (addrs [ for _, node := range resp.Items { _, labelControlPlane := node.Labels[constants.LabelNodeRoleControlPlane] - var skip bool + var skip, foundInternalIP bool switch machineType { case machine.TypeInit, machine.TypeControlPlane: @@ -175,17 +175,20 @@ func (h *Client) NodeIPs(ctx context.Context, machineType machine.Type) (addrs [ for _, nodeAddress := range node.Status.Addresses { if nodeAddress.Type == corev1.NodeInternalIP { addrs = append(addrs, nodeAddress.Address) + foundInternalIP = true break } } - // no internal IP, fallback to external IP - for _, nodeAddress := range node.Status.Addresses { - if nodeAddress.Type == corev1.NodeExternalIP { - addrs = append(addrs, nodeAddress.Address) + if !foundInternalIP { + // no internal IP, fallback to external IP + for _, nodeAddress := range node.Status.Addresses { + if nodeAddress.Type == corev1.NodeExternalIP { + addrs = append(addrs, nodeAddress.Address) - break + break + } } } }