mirror of https://github.com/k3s-io/k3s
Merge pull request #6161 from justinsb/populate_addresses_new_nodes
Make sure we have addresses for newly discovered nodespull/6/head
commit
44fda1fcd1
|
@ -227,9 +227,20 @@ func (nc *NodeController) SyncCloudNodes() error {
|
|||
nodeMap[node.Name] = &node
|
||||
}
|
||||
|
||||
// Create nodes which have been created in cloud, but not in kubernetes cluster.
|
||||
// Create nodes which have been created in cloud, but not in kubernetes cluster
|
||||
// Skip nodes if we hit an error while trying to get their addresses.
|
||||
for _, node := range matches.Items {
|
||||
if _, ok := nodeMap[node.Name]; !ok {
|
||||
glog.V(3).Infof("Querying addresses for new node: %s", node.Name)
|
||||
nodeList := &api.NodeList{}
|
||||
nodeList.Items = []api.Node{node}
|
||||
_, err = nc.PopulateAddresses(nodeList)
|
||||
if err != nil {
|
||||
glog.Errorf("Error fetching addresses for new node %s: %v", node.Name, err)
|
||||
continue
|
||||
}
|
||||
node.Status.Addresses = nodeList.Items[0].Status.Addresses
|
||||
|
||||
glog.Infof("Create node in registry: %s", node.Name)
|
||||
_, err = nc.kubeClient.Nodes().Create(&node)
|
||||
if err != nil {
|
||||
|
|
|
@ -412,6 +412,7 @@ func TestSyncCloudNodes(t *testing.T) {
|
|||
expectedRequestCount int
|
||||
expectedNameCreated []string
|
||||
expectedExtIDCreated []string
|
||||
expectedAddrsCreated []string
|
||||
expectedDeleted []string
|
||||
}{
|
||||
{
|
||||
|
@ -425,11 +426,13 @@ func TestSyncCloudNodes(t *testing.T) {
|
|||
"node0": "ext-node0",
|
||||
"node1": "ext-node1",
|
||||
},
|
||||
Addresses: []api.NodeAddress{{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"}},
|
||||
},
|
||||
matchRE: ".*",
|
||||
expectedRequestCount: 1, // List
|
||||
expectedNameCreated: []string{},
|
||||
expectedExtIDCreated: []string{},
|
||||
expectedAddrsCreated: []string{},
|
||||
expectedDeleted: []string{},
|
||||
},
|
||||
{
|
||||
|
@ -443,11 +446,13 @@ func TestSyncCloudNodes(t *testing.T) {
|
|||
"node0": "ext-node0",
|
||||
"node1": "ext-node1",
|
||||
},
|
||||
Addresses: []api.NodeAddress{{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"}},
|
||||
},
|
||||
matchRE: ".*",
|
||||
expectedRequestCount: 2, // List + Create
|
||||
expectedNameCreated: []string{"node1"},
|
||||
expectedExtIDCreated: []string{"ext-node1"},
|
||||
expectedAddrsCreated: []string{"1.2.3.4"},
|
||||
expectedDeleted: []string{},
|
||||
},
|
||||
{
|
||||
|
@ -461,11 +466,13 @@ func TestSyncCloudNodes(t *testing.T) {
|
|||
"node0": "ext-node0",
|
||||
"node1": "ext-node1",
|
||||
},
|
||||
Addresses: []api.NodeAddress{{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"}},
|
||||
},
|
||||
matchRE: ".*",
|
||||
expectedRequestCount: 2, // List + Delete
|
||||
expectedNameCreated: []string{},
|
||||
expectedExtIDCreated: []string{},
|
||||
expectedAddrsCreated: []string{},
|
||||
expectedDeleted: []string{"node1"},
|
||||
},
|
||||
{
|
||||
|
@ -480,11 +487,13 @@ func TestSyncCloudNodes(t *testing.T) {
|
|||
"node1": "ext-node1",
|
||||
"fake": "ext-fake",
|
||||
},
|
||||
Addresses: []api.NodeAddress{{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"}},
|
||||
},
|
||||
matchRE: "node[0-9]+",
|
||||
expectedRequestCount: 2, // List + Create
|
||||
expectedNameCreated: []string{"node1"},
|
||||
expectedExtIDCreated: []string{"ext-node1"},
|
||||
expectedAddrsCreated: []string{"1.2.3.4"},
|
||||
expectedDeleted: []string{},
|
||||
},
|
||||
}
|
||||
|
@ -505,6 +514,10 @@ func TestSyncCloudNodes(t *testing.T) {
|
|||
if !reflect.DeepEqual(item.expectedExtIDCreated, nodeExtIDs) {
|
||||
t.Errorf("expected node external id list %+v, got %+v", item.expectedExtIDCreated, nodeExtIDs)
|
||||
}
|
||||
nodeAddrs := sortedNodeAddresses(item.fakeNodeHandler.CreatedNodes)
|
||||
if !reflect.DeepEqual(item.expectedAddrsCreated, nodeAddrs) {
|
||||
t.Errorf("expected node address list %+v, got %+v", item.expectedAddrsCreated, nodeAddrs)
|
||||
}
|
||||
nodes = sortedNodeNames(item.fakeNodeHandler.DeletedNodes)
|
||||
if !reflect.DeepEqual(item.expectedDeleted, nodes) {
|
||||
t.Errorf("expected node list %+v, got %+v", item.expectedDeleted, nodes)
|
||||
|
@ -1446,6 +1459,17 @@ func sortedNodeNames(nodes []*api.Node) []string {
|
|||
return nodeNames
|
||||
}
|
||||
|
||||
func sortedNodeAddresses(nodes []*api.Node) []string {
|
||||
nodeAddresses := []string{}
|
||||
for _, node := range nodes {
|
||||
for _, addr := range node.Status.Addresses {
|
||||
nodeAddresses = append(nodeAddresses, addr.Address)
|
||||
}
|
||||
}
|
||||
sort.Strings(nodeAddresses)
|
||||
return nodeAddresses
|
||||
}
|
||||
|
||||
func sortedNodeExternalIDs(nodes []*api.Node) []string {
|
||||
nodeExternalIDs := []string{}
|
||||
for _, node := range nodes {
|
||||
|
|
Loading…
Reference in New Issue