Remove node status from "componentstatuses" call.

The legacy "/validate" behavior remains unchanged.
pull/6/head
Fabio Yeon 2015-05-04 14:17:35 -07:00
parent fbe3ec7513
commit 1709cf0dbb
2 changed files with 24 additions and 11 deletions

View File

@ -441,7 +441,7 @@ func (m *Master) init(c *Config) {
"persistentVolumeClaims": persistentVolumeClaimStorage,
"persistentVolumeClaims/status": persistentVolumeClaimStatusStorage,
"componentStatuses": componentstatus.NewStorage(func() map[string]apiserver.Server { return m.getServersToValidate(c) }),
"componentStatuses": componentstatus.NewStorage(func() map[string]apiserver.Server { return m.getServersToValidate(c, false) }),
}
apiVersions := []string{"v1beta1", "v1beta2"}
@ -477,8 +477,8 @@ func (m *Master) init(c *Config) {
m.mux.HandleFunc("/", apiserver.IndexHandler(m.handlerContainer, m.muxHelper))
}
// TODO: use go-restful
apiserver.InstallValidator(m.muxHelper, func() map[string]apiserver.Server { return m.getServersToValidate(c) })
// TODO: This is now deprecated. Should be removed once client dependencies are gone.
apiserver.InstallValidator(m.muxHelper, func() map[string]apiserver.Server { return m.getServersToValidate(c, true) })
if c.EnableLogsSupport {
apiserver.InstallLogsSupport(m.muxHelper)
}
@ -580,7 +580,7 @@ func (m *Master) InstallSwaggerAPI() {
swagger.RegisterSwaggerService(swaggerConfig, m.handlerContainer)
}
func (m *Master) getServersToValidate(c *Config) map[string]apiserver.Server {
func (m *Master) getServersToValidate(c *Config, includeNodes bool) map[string]apiserver.Server {
serversToValidate := map[string]apiserver.Server{
"controller-manager": {Addr: "127.0.0.1", Port: ports.ControllerManagerPort, Path: "/healthz"},
"scheduler": {Addr: "127.0.0.1", Port: ports.SchedulerPort, Path: "/healthz"},
@ -607,6 +607,7 @@ func (m *Master) getServersToValidate(c *Config) map[string]apiserver.Server {
}
serversToValidate[fmt.Sprintf("etcd-%d", ix)] = apiserver.Server{Addr: addr, Port: port, Path: "/v2/keys/"}
}
if includeNodes && m.nodeRegistry != nil {
nodes, err := m.nodeRegistry.ListMinions(api.NewDefaultContext(), labels.Everything(), fields.Everything())
if err != nil {
glog.Errorf("Failed to list minions: %v", err)
@ -614,6 +615,7 @@ func (m *Master) getServersToValidate(c *Config) map[string]apiserver.Server {
for ix, node := range nodes.Items {
serversToValidate[fmt.Sprintf("node-%d", ix)] = apiserver.Server{Addr: node.Name, Port: ports.KubeletPort, Path: "/healthz", EnableHTTPS: true}
}
}
return serversToValidate
}

View File

@ -36,7 +36,7 @@ func TestGetServersToValidate(t *testing.T) {
master.nodeRegistry = registrytest.NewMinionRegistry([]string{"node1", "node2"}, api.NodeResources{})
servers := master.getServersToValidate(&config)
servers := master.getServersToValidate(&config, true)
if len(servers) != 7 {
t.Errorf("unexpected server list: %#v", servers)
@ -46,4 +46,15 @@ func TestGetServersToValidate(t *testing.T) {
t.Errorf("server list missing: %s", server)
}
}
servers = master.getServersToValidate(&config, false)
if len(servers) != 5 {
t.Errorf("unexpected server list: %#v", servers)
}
for _, server := range []string{"scheduler", "controller-manager", "etcd-0", "etcd-1", "etcd-2"} {
if _, ok := servers[server]; !ok {
t.Errorf("server list missing: %s", server)
}
}
}