@@ -427,26 +427,53 @@ func (n Node) GetNodeNameFromProviderID(providerId string) (string, error) {
427427 return "" , nil
428428 }
429429
430+ log .Debug ().
431+ Str ("target_provider_id" , providerId ).
432+ Msg ("Looking up node by ProviderID" )
433+
430434 listOptions := metav1.ListOptions {}
431435 nodes , err := n .drainHelper .Client .CoreV1 ().Nodes ().List (context .TODO (), listOptions )
432436 if err != nil {
433437 log .Err (err ).Msgf ("Error when trying to list nodes to find node with ProviderID" )
434-
435438 return "" , err
436439 }
437440
441+ log .Debug ().
442+ Int ("total_nodes" , len (nodes .Items )).
443+ Str ("looking_for" , providerId ).
444+ Msg ("Retrieved nodes from API" )
445+
438446 for _ , n := range nodes .Items {
447+ log .Trace ().
448+ Str ("node_name" , n .GetObjectMeta ().GetName ()).
449+ Str ("node_provider_id" , n .Spec .ProviderID ).
450+ Str ("comparing_to" , providerId ).
451+ Bool ("match" , n .Spec .ProviderID == providerId ).
452+ Msg ("Checking node" )
453+
439454 if n .Spec .ProviderID == providerId {
440455 labels := n .GetObjectMeta ().GetLabels ()
441456
442457 if hostname , ok := labels ["kubernetes.io/hostname=" ]; ok {
458+ log .Debug ().
459+ Str ("found_hostname" , hostname ).
460+ Msg ("Returning hostname from label" )
443461 return hostname , nil
444462 }
445463
446- return n .GetObjectMeta ().GetName (), nil
464+ nodeName := n .GetObjectMeta ().GetName ()
465+ log .Debug ().
466+ Str ("found_node" , nodeName ).
467+ Msg ("Returning node name" )
468+ return nodeName , nil
447469 }
448470 }
449471
472+ log .Warn ().
473+ Str ("provider_id_not_found" , providerId ).
474+ Int ("nodes_checked" , len (nodes .Items )).
475+ Msg ("Node with ProviderID was not found in the cluster" )
476+
450477 return "" , fmt .Errorf ("Node with ProviderID '%s' was not found in the cluster" , providerId )
451478}
452479
@@ -652,7 +679,14 @@ func (n Node) fetchKubernetesNode(nodeName string) (*corev1.Node, error) {
652679 if n .nthConfig .DryRun {
653680 return node , nil
654681 }
682+
655683 shortNodeName := strings .Split (nodeName , "." )[0 ]
684+
685+ log .Debug ().
686+ Str ("node_name" , nodeName ).
687+ Str ("short_node_name" , shortNodeName ).
688+ Msg ("Attempting to fetch Kubernetes node" )
689+
656690 labelSelector := metav1.LabelSelector {
657691 MatchExpressions : []metav1.LabelSelectorRequirement {
658692 {
@@ -663,11 +697,47 @@ func (n Node) fetchKubernetesNode(nodeName string) (*corev1.Node, error) {
663697 },
664698 }
665699 listOptions := metav1.ListOptions {LabelSelector : metav1 .FormatLabelSelector (& labelSelector )}
700+
701+ log .Debug ().
702+ Str ("label_selector" , metav1 .FormatLabelSelector (& labelSelector )).
703+ Msg ("Listing nodes with label selector" )
704+
666705 matchingNodes , err := n .drainHelper .Client .CoreV1 ().Nodes ().List (context .TODO (), listOptions )
706+
667707 if err != nil || len (matchingNodes .Items ) == 0 {
668- log .Warn ().Msgf ("Unable to list Nodes w/ label, falling back to direct Get lookup of node" )
669- return n .drainHelper .Client .CoreV1 ().Nodes ().Get (context .TODO (), nodeName , metav1.GetOptions {})
708+ if err != nil {
709+ log .Warn ().
710+ Err (err ).
711+ Str ("node_name" , nodeName ).
712+ Msg ("Unable to list Nodes w/ label, falling back to direct Get lookup of node" )
713+ } else {
714+ log .Warn ().
715+ Str ("node_name" , nodeName ).
716+ Str ("label_selector" , metav1 .FormatLabelSelector (& labelSelector )).
717+ Int ("matching_nodes" , 0 ).
718+ Msg ("No nodes found with label selector, falling back to direct Get lookup of node" )
719+ }
720+
721+ node , getErr := n .drainHelper .Client .CoreV1 ().Nodes ().Get (context .TODO (), nodeName , metav1.GetOptions {})
722+ if getErr != nil {
723+ log .Error ().
724+ Err (getErr ).
725+ Str ("node_name" , nodeName ).
726+ Msg ("Failed to get node directly" )
727+ } else {
728+ log .Debug ().
729+ Str ("node_name" , nodeName ).
730+ Msg ("Successfully fetched node via direct Get" )
731+ }
732+ return node , getErr
670733 }
734+
735+ log .Debug ().
736+ Str ("node_name" , nodeName ).
737+ Int ("matching_nodes" , len (matchingNodes .Items )).
738+ Str ("selected_node" , matchingNodes .Items [0 ].Name ).
739+ Msg ("Found node(s) via label selector" )
740+
671741 return & matchingNodes .Items [0 ], nil
672742}
673743
0 commit comments