mirror of https://github.com/k3s-io/k3s
move install of version handler to genericapiserver
parent
7e430f543b
commit
fdfe42ea44
|
@ -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"
|
||||
|
|
|
@ -92,6 +92,7 @@ func TestRun(t *testing.T) {
|
|||
t.Fatalf("%v", err)
|
||||
}
|
||||
testSwaggerSpec(t)
|
||||
testSupport(t)
|
||||
testAPIGroupList(t)
|
||||
testAPIGroup(t)
|
||||
testAPIResourceList(t)
|
||||
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
|
|
@ -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}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -226,9 +226,7 @@ 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)
|
||||
|
@ -236,10 +234,6 @@ func (m *Master) InstallAPIs(c *Config) {
|
|||
m.MuxHelper.HandleFunc("/metrics", defaultMetricsHandler)
|
||||
}
|
||||
|
||||
for i := range webservices {
|
||||
m.HandlerContainer.Add(webservices[i])
|
||||
}
|
||||
|
||||
// allGroups records all supported groups at /apis
|
||||
allGroups := []unversioned.APIGroup{}
|
||||
|
||||
|
|
Loading…
Reference in New Issue