mirror of https://github.com/k3s-io/k3s
Merge pull request #4085 from ddysher/fix-node-name
Lower case node names before registeringpull/6/head
commit
be310ac8c3
|
@ -20,6 +20,7 @@ import (
|
|||
"errors"
|
||||
"net"
|
||||
"reflect"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
@ -112,6 +113,7 @@ func (s *NodeController) Run(period time.Duration, retryCount int) {
|
|||
// RegisterNodes registers the given list of nodes, it keeps retrying for `retryCount` times.
|
||||
func (s *NodeController) RegisterNodes(nodes *api.NodeList, retryCount int, retryInterval time.Duration) error {
|
||||
registered := util.NewStringSet()
|
||||
nodes = s.canonicalizeName(nodes)
|
||||
for i := 0; i < retryCount; i++ {
|
||||
for _, node := range nodes.Items {
|
||||
if registered.Has(node.Name) {
|
||||
|
@ -330,3 +332,11 @@ func (s *NodeController) CloudNodes() (*api.NodeList, error) {
|
|||
func (s *NodeController) isRunningCloudProvider() bool {
|
||||
return s.cloud != nil && len(s.matchRE) > 0
|
||||
}
|
||||
|
||||
// canonicalizeName takes a node list and lowercases all nodes' name.
|
||||
func (s *NodeController) canonicalizeName(nodes *api.NodeList) *api.NodeList {
|
||||
for i := range nodes.Items {
|
||||
nodes.Items[i].Name = strings.ToLower(nodes.Items[i].Name)
|
||||
}
|
||||
return nodes
|
||||
}
|
||||
|
|
|
@ -134,6 +134,22 @@ func TestRegisterNodes(t *testing.T) {
|
|||
expectedCreateCount: 2,
|
||||
expectedFail: false,
|
||||
},
|
||||
{
|
||||
// Canonicalize node names.
|
||||
machines: []string{"NODE0", "node1"},
|
||||
fakeNodeHandler: &FakeNodeHandler{
|
||||
CreateHook: func(fake *FakeNodeHandler, node *api.Node) bool {
|
||||
if node.Name == "NODE0" {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
},
|
||||
},
|
||||
retryCount: 1,
|
||||
expectedRequestCount: 2,
|
||||
expectedCreateCount: 2,
|
||||
expectedFail: false,
|
||||
},
|
||||
{
|
||||
// No machine to register.
|
||||
machines: []string{},
|
||||
|
|
Loading…
Reference in New Issue