mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-06 11:42:14 +00:00
Node addresses
This commit is contained in:
@@ -108,7 +108,7 @@ func (s *NodeController) Run(period time.Duration, syncNodeList, syncNodeStatus
|
||||
glog.Errorf("Error loading initial static nodes: %v", err)
|
||||
}
|
||||
}
|
||||
nodes, err = s.PopulateIPs(nodes)
|
||||
nodes, err = s.PopulateAddresses(nodes)
|
||||
if err != nil {
|
||||
glog.Errorf("Error getting nodes ips: %v", err)
|
||||
}
|
||||
@@ -220,7 +220,7 @@ func (s *NodeController) SyncNodeStatus() error {
|
||||
return err
|
||||
}
|
||||
nodes = s.DoChecks(nodes)
|
||||
nodes, err = s.PopulateIPs(nodes)
|
||||
nodes, err = s.PopulateAddresses(nodes)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -264,8 +264,8 @@ func latestReadyTime(node *api.Node) util.Time {
|
||||
return readyTime
|
||||
}
|
||||
|
||||
// PopulateIPs queries IPs for given list of nodes.
|
||||
func (s *NodeController) PopulateIPs(nodes *api.NodeList) (*api.NodeList, error) {
|
||||
// PopulateAddresses queries Address for given list of nodes.
|
||||
func (s *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList, error) {
|
||||
if s.isRunningCloudProvider() {
|
||||
instances, ok := s.cloud.Instances()
|
||||
if !ok {
|
||||
@@ -277,7 +277,8 @@ func (s *NodeController) PopulateIPs(nodes *api.NodeList) (*api.NodeList, error)
|
||||
if err != nil {
|
||||
glog.Errorf("error getting instance ip address for %s: %v", node.Name, err)
|
||||
} else {
|
||||
node.Status.HostIP = hostIP.String()
|
||||
address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: hostIP.String()}
|
||||
node.Status.Addresses = append(node.Status.Addresses, address)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -285,7 +286,8 @@ func (s *NodeController) PopulateIPs(nodes *api.NodeList) (*api.NodeList, error)
|
||||
node := &nodes.Items[i]
|
||||
addr := net.ParseIP(node.Name)
|
||||
if addr != nil {
|
||||
node.Status.HostIP = node.Name
|
||||
address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: addr.String()}
|
||||
node.Status.Addresses = append(node.Status.Addresses, address)
|
||||
} else {
|
||||
addrs, err := lookupIP(node.Name)
|
||||
if err != nil {
|
||||
@@ -293,7 +295,8 @@ func (s *NodeController) PopulateIPs(nodes *api.NodeList) (*api.NodeList, error)
|
||||
} else if len(addrs) == 0 {
|
||||
glog.Errorf("No ip address for node %v", node.Name)
|
||||
} else {
|
||||
node.Status.HostIP = addrs[0].String()
|
||||
address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: addrs[0].String()}
|
||||
node.Status.Addresses = append(node.Status.Addresses, address)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -621,35 +621,37 @@ func TestHealthCheckNode(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestPopulateNodeIPs(t *testing.T) {
|
||||
func TestPopulateNodeAddresses(t *testing.T) {
|
||||
table := []struct {
|
||||
nodes *api.NodeList
|
||||
fakeCloud *fake_cloud.FakeCloud
|
||||
expectedFail bool
|
||||
expectedIP string
|
||||
nodes *api.NodeList
|
||||
fakeCloud *fake_cloud.FakeCloud
|
||||
expectedFail bool
|
||||
expectedAddresses []api.NodeAddress
|
||||
}{
|
||||
{
|
||||
nodes: &api.NodeList{Items: []api.Node{*newNode("node0"), *newNode("node1")}},
|
||||
fakeCloud: &fake_cloud.FakeCloud{IP: net.ParseIP("1.2.3.4")},
|
||||
expectedIP: "1.2.3.4",
|
||||
nodes: &api.NodeList{Items: []api.Node{*newNode("node0"), *newNode("node1")}},
|
||||
fakeCloud: &fake_cloud.FakeCloud{IP: net.ParseIP("1.2.3.4")},
|
||||
expectedAddresses: []api.NodeAddress{
|
||||
{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"},
|
||||
},
|
||||
},
|
||||
{
|
||||
nodes: &api.NodeList{Items: []api.Node{*newNode("node0"), *newNode("node1")}},
|
||||
fakeCloud: &fake_cloud.FakeCloud{Err: ErrQueryIPAddress},
|
||||
expectedIP: "",
|
||||
nodes: &api.NodeList{Items: []api.Node{*newNode("node0"), *newNode("node1")}},
|
||||
fakeCloud: &fake_cloud.FakeCloud{Err: ErrQueryIPAddress},
|
||||
expectedAddresses: nil,
|
||||
},
|
||||
}
|
||||
|
||||
for _, item := range table {
|
||||
nodeController := NewNodeController(item.fakeCloud, ".*", nil, nil, nil, nil, 10, time.Minute)
|
||||
result, err := nodeController.PopulateIPs(item.nodes)
|
||||
result, err := nodeController.PopulateAddresses(item.nodes)
|
||||
// In case of IP querying error, we should continue.
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error: %v", err)
|
||||
}
|
||||
for _, node := range result.Items {
|
||||
if node.Status.HostIP != item.expectedIP {
|
||||
t.Errorf("expect HostIP %s, got %s", item.expectedIP, node.Status.HostIP)
|
||||
if !reflect.DeepEqual(item.expectedAddresses, node.Status.Addresses) {
|
||||
t.Errorf("expect HostIP %s, got %s", item.expectedAddresses, node.Status.Addresses)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1031,7 +1033,9 @@ func TestSyncNodeStatus(t *testing.T) {
|
||||
Reason: "Node health check succeeded: kubelet /healthz endpoint returns ok",
|
||||
},
|
||||
},
|
||||
HostIP: "1.2.3.4",
|
||||
Addresses: []api.NodeAddress{
|
||||
{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -1044,7 +1048,9 @@ func TestSyncNodeStatus(t *testing.T) {
|
||||
Reason: "Node health check succeeded: kubelet /healthz endpoint returns ok",
|
||||
},
|
||||
},
|
||||
HostIP: "1.2.3.4",
|
||||
Addresses: []api.NodeAddress{
|
||||
{Type: api.NodeLegacyHostIP, Address: "1.2.3.4"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
Reference in New Issue
Block a user