Skip to content

Commit 7b9dbbf

Browse files
committed
Merge pull request kubernetes#8224 from cjcullen/nodenames
Remove /Validate endpoint
2 parents 7480c82 + 36d54b2 commit 7b9dbbf

File tree

5 files changed

+3
-146
lines changed

5 files changed

+3
-146
lines changed

pkg/apiserver/apiserver.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,12 +157,6 @@ func (g *APIGroupVersion) InstallREST(container *restful.Container) error {
157157
return errors.NewAggregate(registrationErrors)
158158
}
159159

160-
// TODO: This endpoint is deprecated and should be removed at some point.
161-
// Use "componentstatus" API instead.
162-
func InstallValidator(mux Mux, servers func() map[string]Server) {
163-
mux.Handle("/validate", NewValidator(servers))
164-
}
165-
166160
// TODO: document all handlers
167161
// InstallSupport registers the APIServer support functions
168162
func InstallSupport(mux Mux, ws *restful.WebService) {

pkg/apiserver/validator.go

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package apiserver
1818

1919
import (
2020
"crypto/tls"
21-
"encoding/json"
2221
"fmt"
2322
"io/ioutil"
2423
"net"
@@ -27,7 +26,6 @@ import (
2726
"time"
2827

2928
"github.com/GoogleCloudPlatform/kubernetes/pkg/probe"
30-
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
3129
)
3230

3331
// TODO: this basic interface is duplicated in N places. consolidate?
@@ -42,13 +40,6 @@ type Server struct {
4240
EnableHTTPS bool
4341
}
4442

45-
// validator is responsible for validating the cluster and serving
46-
type validator struct {
47-
// a list of servers to health check
48-
servers func() map[string]Server
49-
rt http.RoundTripper
50-
}
51-
5243
type ServerStatus struct {
5344
Component string `json:"component,omitempty"`
5445
Health string `json:"health,omitempty"`
@@ -96,39 +87,3 @@ func (server *Server) DoServerCheck(rt http.RoundTripper) (probe.Result, string,
9687
}
9788
return probe.Success, string(data), nil
9889
}
99-
100-
func (v *validator) ServeHTTP(w http.ResponseWriter, r *http.Request) {
101-
verb := "get"
102-
apiResource := ""
103-
var httpCode int
104-
reqStart := time.Now()
105-
defer monitor(&verb, &apiResource, util.GetClient(r), &httpCode, reqStart)
106-
107-
reply := []ServerStatus{}
108-
for name, server := range v.servers() {
109-
transport := v.rt
110-
status, msg, err := server.DoServerCheck(transport)
111-
var errorMsg string
112-
if err != nil {
113-
errorMsg = err.Error()
114-
} else {
115-
errorMsg = "nil"
116-
}
117-
reply = append(reply, ServerStatus{name, status.String(), status, msg, errorMsg})
118-
}
119-
data, err := json.MarshalIndent(reply, "", " ")
120-
if err != nil {
121-
httpCode = http.StatusInternalServerError
122-
w.WriteHeader(httpCode)
123-
w.Write([]byte(err.Error()))
124-
return
125-
}
126-
httpCode = http.StatusOK
127-
w.WriteHeader(httpCode)
128-
w.Write(data)
129-
}
130-
131-
// NewValidator creates a validator for a set of servers.
132-
func NewValidator(servers func() map[string]Server) http.Handler {
133-
return &validator{servers: servers, rt: http.DefaultTransport}
134-
}

pkg/apiserver/validator_test.go

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,12 @@ package apiserver
1818

1919
import (
2020
"bytes"
21-
"encoding/json"
2221
"fmt"
2322
"io/ioutil"
24-
"net"
2523
"net/http"
26-
"net/http/httptest"
27-
"strconv"
2824
"testing"
2925

3026
"github.com/GoogleCloudPlatform/kubernetes/pkg/probe"
31-
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
3227
)
3328

3429
type fakeRoundTripper struct {
@@ -84,66 +79,3 @@ func TestValidate(t *testing.T) {
8479
}
8580
}
8681
}
87-
88-
func makeTestValidator(servers map[string]string, rt http.RoundTripper) (http.Handler, error) {
89-
result := map[string]Server{}
90-
for name, value := range servers {
91-
host, port, err := net.SplitHostPort(value)
92-
if err != nil {
93-
return nil, fmt.Errorf("invalid server spec: %s (%v)", value, err)
94-
}
95-
val, err := strconv.Atoi(port)
96-
if err != nil {
97-
return nil, fmt.Errorf("invalid server spec: %s (%v)", port, err)
98-
}
99-
result[name] = Server{Addr: host, Port: val, Path: "/healthz"}
100-
}
101-
102-
return &validator{servers: func() map[string]Server { return result }, rt: rt}, nil
103-
}
104-
105-
func TestValidator(t *testing.T) {
106-
fake := &fakeRoundTripper{
107-
resp: &http.Response{
108-
Body: ioutil.NopCloser(bytes.NewBufferString("foo")),
109-
StatusCode: 200,
110-
},
111-
}
112-
validator, err := makeTestValidator(map[string]string{
113-
"foo": "foo.com:80",
114-
"bar": "bar.com:8080",
115-
}, fake)
116-
if err != nil {
117-
t.Errorf("unexpected error: %v", err)
118-
}
119-
120-
testServer := httptest.NewServer(validator)
121-
defer testServer.Close()
122-
123-
resp, err := http.Get(testServer.URL + "/validatez")
124-
if err != nil {
125-
t.Errorf("unexpected error: %v", err)
126-
}
127-
if resp.StatusCode != http.StatusOK {
128-
t.Errorf("unexpected response: %v", resp.StatusCode)
129-
}
130-
defer resp.Body.Close()
131-
data, err := ioutil.ReadAll(resp.Body)
132-
if err != nil {
133-
t.Errorf("unexpected error: %v", err)
134-
}
135-
var status []ServerStatus
136-
if err := json.Unmarshal(data, &status); err != nil {
137-
t.Errorf("unexpected error: %v", err)
138-
}
139-
components := util.StringSet{}
140-
for _, s := range status {
141-
if s.Err != "nil" {
142-
t.Errorf("Component %v is unhealthy: %v", s.Component, s.Err)
143-
}
144-
components.Insert(s.Component)
145-
}
146-
if len(status) != 2 || !components.Has("foo") || !components.Has("bar") {
147-
t.Errorf("unexpected status: %#v", status)
148-
}
149-
}

pkg/master/master.go

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ import (
4141
"github.com/GoogleCloudPlatform/kubernetes/pkg/auth/authorizer"
4242
"github.com/GoogleCloudPlatform/kubernetes/pkg/auth/handlers"
4343
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
44-
"github.com/GoogleCloudPlatform/kubernetes/pkg/fields"
45-
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
4644
"github.com/GoogleCloudPlatform/kubernetes/pkg/master/ports"
4745
"github.com/GoogleCloudPlatform/kubernetes/pkg/registry/componentstatus"
4846
controlleretcd "github.com/GoogleCloudPlatform/kubernetes/pkg/registry/controller/etcd"
@@ -497,7 +495,7 @@ func (m *Master) init(c *Config) {
497495
"persistentVolumeClaims": persistentVolumeClaimStorage,
498496
"persistentVolumeClaims/status": persistentVolumeClaimStatusStorage,
499497

500-
"componentStatuses": componentstatus.NewStorage(func() map[string]apiserver.Server { return m.getServersToValidate(c, false) }),
498+
"componentStatuses": componentstatus.NewStorage(func() map[string]apiserver.Server { return m.getServersToValidate(c) }),
501499
}
502500

503501
apiVersions := []string{}
@@ -539,8 +537,6 @@ func (m *Master) init(c *Config) {
539537
m.mux.HandleFunc("/", apiserver.IndexHandler(m.handlerContainer, m.muxHelper))
540538
}
541539

542-
// TODO: This is now deprecated. Should be removed once client dependencies are gone.
543-
apiserver.InstallValidator(m.muxHelper, func() map[string]apiserver.Server { return m.getServersToValidate(c, true) })
544540
if c.EnableLogsSupport {
545541
apiserver.InstallLogsSupport(m.muxHelper)
546542
}
@@ -673,7 +669,7 @@ func (m *Master) InstallSwaggerAPI() {
673669
swagger.RegisterSwaggerService(swaggerConfig, m.handlerContainer)
674670
}
675671

676-
func (m *Master) getServersToValidate(c *Config, includeNodes bool) map[string]apiserver.Server {
672+
func (m *Master) getServersToValidate(c *Config) map[string]apiserver.Server {
677673
serversToValidate := map[string]apiserver.Server{
678674
"controller-manager": {Addr: "127.0.0.1", Port: ports.ControllerManagerPort, Path: "/healthz"},
679675
"scheduler": {Addr: "127.0.0.1", Port: ports.SchedulerPort, Path: "/healthz"},
@@ -700,15 +696,6 @@ func (m *Master) getServersToValidate(c *Config, includeNodes bool) map[string]a
700696
}
701697
serversToValidate[fmt.Sprintf("etcd-%d", ix)] = apiserver.Server{Addr: addr, Port: port, Path: "/v2/keys/"}
702698
}
703-
if includeNodes && m.nodeRegistry != nil {
704-
nodes, err := m.nodeRegistry.ListMinions(api.NewDefaultContext(), labels.Everything(), fields.Everything())
705-
if err != nil {
706-
glog.Errorf("Failed to list minions: %v", err)
707-
}
708-
for ix, node := range nodes.Items {
709-
serversToValidate[fmt.Sprintf("node-%d", ix)] = apiserver.Server{Addr: node.Name, Port: ports.KubeletPort, Path: "/healthz", EnableHTTPS: true}
710-
}
711-
}
712699
return serversToValidate
713700
}
714701

pkg/master/master_test.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,7 @@ func TestGetServersToValidate(t *testing.T) {
3636

3737
master.nodeRegistry = registrytest.NewMinionRegistry([]string{"node1", "node2"}, api.NodeResources{})
3838

39-
servers := master.getServersToValidate(&config, true)
40-
41-
if len(servers) != 7 {
42-
t.Errorf("unexpected server list: %#v", servers)
43-
}
44-
for _, server := range []string{"scheduler", "controller-manager", "etcd-0", "etcd-1", "etcd-2", "node-0", "node-1"} {
45-
if _, ok := servers[server]; !ok {
46-
t.Errorf("server list missing: %s", server)
47-
}
48-
}
49-
50-
servers = master.getServersToValidate(&config, false)
39+
servers := master.getServersToValidate(&config)
5140

5241
if len(servers) != 5 {
5342
t.Errorf("unexpected server list: %#v", servers)

0 commit comments

Comments
 (0)