mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 09:22:44 +00:00
Merge pull request #3368 from ddysher/static-hostip
Post hostip for static machines
This commit is contained in:
commit
e965b7ec18
@ -18,6 +18,7 @@ package controller
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||||
@ -73,12 +74,26 @@ func (s *NodeController) SyncStatic(period time.Duration) error {
|
|||||||
if registered.Has(nodeID) {
|
if registered.Has(nodeID) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
_, err := s.kubeClient.Nodes().Create(&api.Node{
|
node := &api.Node{
|
||||||
ObjectMeta: api.ObjectMeta{Name: nodeID},
|
ObjectMeta: api.ObjectMeta{Name: nodeID},
|
||||||
Spec: api.NodeSpec{
|
Spec: api.NodeSpec{
|
||||||
Capacity: s.staticResources.Capacity,
|
Capacity: s.staticResources.Capacity,
|
||||||
},
|
},
|
||||||
})
|
}
|
||||||
|
addr := net.ParseIP(nodeID)
|
||||||
|
if addr != nil {
|
||||||
|
node.Status.HostIP = nodeID
|
||||||
|
} else {
|
||||||
|
addrs, err := net.LookupIP(nodeID)
|
||||||
|
if err != nil {
|
||||||
|
glog.Errorf("Can't get ip address of node %v", nodeID)
|
||||||
|
} else if len(addrs) == 0 {
|
||||||
|
glog.Errorf("No ip address for node %v", nodeID)
|
||||||
|
} else {
|
||||||
|
node.Status.HostIP = addrs[0].String()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_, err := s.kubeClient.Nodes().Create(node)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
registered.Insert(nodeID)
|
registered.Insert(nodeID)
|
||||||
}
|
}
|
||||||
|
@ -102,6 +102,25 @@ func TestSyncStaticCreateNode(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSyncStaticCreateNodeWithHostIP(t *testing.T) {
|
||||||
|
fakeNodeHandler := &FakeNodeHandler{
|
||||||
|
CreateHook: func(fake *FakeNodeHandler, node *api.Node) bool {
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
}
|
||||||
|
nodeController := NewNodeController(nil, ".*", []string{"10.0.0.1"}, &api.NodeResources{}, fakeNodeHandler)
|
||||||
|
if err := nodeController.SyncStatic(time.Millisecond); err != nil {
|
||||||
|
t.Errorf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if fakeNodeHandler.CreatedNodes[0].Name != "10.0.0.1" {
|
||||||
|
t.Errorf("unexpect node %v created", fakeNodeHandler.CreatedNodes[0].Name)
|
||||||
|
}
|
||||||
|
if fakeNodeHandler.CreatedNodes[0].Status.HostIP != "10.0.0.1" {
|
||||||
|
t.Errorf("unexpect nil node HostIP for node %v", fakeNodeHandler.CreatedNodes[0].Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSyncStaticCreateNodeWithError(t *testing.T) {
|
func TestSyncStaticCreateNodeWithError(t *testing.T) {
|
||||||
fakeNodeHandler := &FakeNodeHandler{
|
fakeNodeHandler := &FakeNodeHandler{
|
||||||
CreateHook: func(fake *FakeNodeHandler, node *api.Node) bool {
|
CreateHook: func(fake *FakeNodeHandler, node *api.Node) bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user