mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 10:43:56 +00:00
cloud node controller: improve error handling for node registration
This commit is contained in:
parent
a176a8b1b7
commit
4510fe48c3
@ -18,6 +18,7 @@ package cloud
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -168,6 +169,12 @@ func (cnc *CloudNodeController) updateNodeAddress(node *v1.Node, instances cloud
|
|||||||
glog.Errorf("%v", err)
|
glog.Errorf("%v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(nodeAddresses) == 0 {
|
||||||
|
glog.V(5).Infof("Skipping node address update for node %q since cloud provider did not return any", node.Name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Check if a hostname address exists in the cloud provided addresses
|
// Check if a hostname address exists in the cloud provided addresses
|
||||||
hostnameExists := false
|
hostnameExists := false
|
||||||
for i := range nodeAddresses {
|
for i := range nodeAddresses {
|
||||||
@ -349,21 +356,18 @@ func (cnc *CloudNodeController) AddCloudNode(obj interface{}) {
|
|||||||
|
|
||||||
nodeAddresses, err := getNodeAddressesByProviderIDOrName(instances, curNode)
|
nodeAddresses, err := getNodeAddressesByProviderIDOrName(instances, curNode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("%v", err)
|
return err
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If user provided an IP address, ensure that IP address is found
|
// If user provided an IP address, ensure that IP address is found
|
||||||
// in the cloud provider before removing the taint on the node
|
// in the cloud provider before removing the taint on the node
|
||||||
if nodeIP, ok := ensureNodeProvidedIPExists(curNode, nodeAddresses); ok {
|
if nodeIP, ok := ensureNodeProvidedIPExists(curNode, nodeAddresses); ok {
|
||||||
if nodeIP == nil {
|
if nodeIP == nil {
|
||||||
glog.Errorf("failed to get specified nodeIP in cloudprovider")
|
return errors.New("failed to find kubelet node IP from cloud provider")
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if instanceType, err := getInstanceTypeByProviderIDOrName(instances, curNode); err != nil {
|
if instanceType, err := getInstanceTypeByProviderIDOrName(instances, curNode); err != nil {
|
||||||
glog.Errorf("%v", err)
|
|
||||||
return err
|
return err
|
||||||
} else if instanceType != "" {
|
} else if instanceType != "" {
|
||||||
glog.V(2).Infof("Adding node label from cloud provider: %s=%s", kubeletapis.LabelInstanceType, instanceType)
|
glog.V(2).Infof("Adding node label from cloud provider: %s=%s", kubeletapis.LabelInstanceType, instanceType)
|
||||||
|
Loading…
Reference in New Issue
Block a user