Skip to content

Commit

Permalink
Merge pull request #24774 from XiaoningDing/federation-apiserver-version
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue

Move install of version handler to genericapiserver

This is to satisfy kbuectl verification

Please review only the last commit.

#19313 #23653
@nikhiljindal @quinton-hoole, @deepak-vij, @XiaoningDing, @alfred-huangjian @mfanjie @huangyuqi @colhom
  • Loading branch information
k8s-merge-robot committed Apr 27, 2016
2 parents 4c7abdd + fdfe42e commit d89b6bc
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 25 deletions.
8 changes: 4 additions & 4 deletions api/swagger-spec/resourceListing.json
@@ -1,14 +1,14 @@
{
"swaggerVersion": "1.2",
"apis": [
{
"path": "/apis",
"description": "get available API versions"
},
{
"path": "/version",
"description": "git code version from which this is built"
},
{
"path": "/apis",
"description": "get available API versions"
},
{
"path": "/api/v1",
"description": "API at /api/v1"
Expand Down
9 changes: 9 additions & 0 deletions federation/cmd/federated-apiserver/app/server_test.go
Expand Up @@ -92,6 +92,7 @@ func TestRun(t *testing.T) {
t.Fatalf("%v", err)
}
testSwaggerSpec(t)
testSupport(t)
testAPIGroupList(t)
testAPIGroup(t)
testAPIResourceList(t)
Expand Down Expand Up @@ -131,6 +132,14 @@ func testSwaggerSpec(t *testing.T) {
}
}

func testSupport(t *testing.T) {
serverURL := serverIP + "/version"
_, err := readResponse(serverURL)
if err != nil {
t.Fatalf("%v", err)
}
}

func findGroup(groups []unversioned.APIGroup, groupName string) *unversioned.APIGroup {
for _, group := range groups {
if group.Name == groupName {
Expand Down
9 changes: 3 additions & 6 deletions pkg/apiserver/apiserver.go
Expand Up @@ -36,7 +36,6 @@ import (
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apiserver/metrics"
"k8s.io/kubernetes/pkg/healthz"
"k8s.io/kubernetes/pkg/runtime"
utilerrors "k8s.io/kubernetes/pkg/util/errors"
"k8s.io/kubernetes/pkg/util/flushwriter"
Expand Down Expand Up @@ -163,10 +162,8 @@ func (g *APIGroupVersion) newInstaller() *APIInstaller {
}

// TODO: document all handlers
// InstallSupport registers the APIServer support functions
func InstallSupport(mux Mux, checks ...healthz.HealthzChecker) []*restful.WebService {
// TODO: convert healthz and metrics to restful and remove container arg
healthz.InstallHandler(mux, checks...)
// InstallVersionHandler registers the APIServer's `/version` handler
func InstallVersionHandler(mux Mux, container *restful.Container) {

// Set up a service to return the git code version.
versionWS := new(restful.WebService)
Expand All @@ -179,7 +176,7 @@ func InstallSupport(mux Mux, checks ...healthz.HealthzChecker) []*restful.WebSer
Produces(restful.MIME_JSON).
Consumes(restful.MIME_JSON))

return []*restful.WebService{versionWS}
container.Add(versionWS)
}

// InstallLogsSupport registers the APIServer log support function into a mux.
Expand Down
11 changes: 3 additions & 8 deletions pkg/apiserver/apiserver_test.go
Expand Up @@ -317,10 +317,8 @@ func handleInternal(storage map[string]rest.Storage, admissionControl admission.
}
}

webservices := InstallSupport(mux)
for i := range webservices {
container.Add(webservices[i])
}
InstallVersionHandler(mux, container)

return &defaultAPIServer{mux, container}
}

Expand Down Expand Up @@ -3263,10 +3261,7 @@ func TestXGSubresource(t *testing.T) {
panic(fmt.Sprintf("unable to install container %s: %v", group.GroupVersion, err))
}

webservices := InstallSupport(mux)
for i := range webservices {
container.Add(webservices[i])
}
InstallVersionHandler(mux, container)

handler := defaultAPIServer{mux, container}
server := httptest.NewServer(handler)
Expand Down
2 changes: 2 additions & 0 deletions pkg/genericapiserver/genericapiserver.go
Expand Up @@ -454,6 +454,8 @@ func (s *GenericAPIServer) init(c *Config) {
s.mux.HandleFunc("/debug/pprof/symbol", pprof.Symbol)
}

apiserver.InstallVersionHandler(s.MuxHelper, s.HandlerContainer)

handler := http.Handler(s.mux.(*http.ServeMux))

// TODO: handle CORS and auth using go-restful
Expand Down
8 changes: 1 addition & 7 deletions pkg/master/master.go
Expand Up @@ -226,20 +226,14 @@ func (m *Master) InstallAPIs(c *Config) {
Help: "The time since the last successful synchronization of the SSH tunnels for proxy requests.",
}, func() float64 { return float64(m.tunneler.SecondsSinceSync()) })
}

// TODO(nikhiljindal): Refactor generic parts of support services (like /versions) to genericapiserver.
webservices := apiserver.InstallSupport(m.MuxHelper, healthzChecks...)
healthz.InstallHandler(m.MuxHelper, healthzChecks...)

if c.EnableProfiling {
m.MuxHelper.HandleFunc("/metrics", MetricsWithReset)
} else {
m.MuxHelper.HandleFunc("/metrics", defaultMetricsHandler)
}

for i := range webservices {
m.HandlerContainer.Add(webservices[i])
}

// allGroups records all supported groups at /apis
allGroups := []unversioned.APIGroup{}

Expand Down

0 comments on commit d89b6bc

Please sign in to comment.