Skip to content

Commit b412bb1

Browse files
committed
feat(platform): proxy cluster version api
1 parent 9c8d339 commit b412bb1

File tree

4 files changed

+54
-10
lines changed

4 files changed

+54
-10
lines changed

pkg/apiserver/filter/authentication.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ var (
7575
"/metrics",
7676
"/debug",
7777
"/openapi",
78-
"/version",
7978
"/swagger",
8079
"/favicon.ico",
8180
"/healthz",

pkg/apiserver/openapi/openapi.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"strings"
2626

2727
"github.com/go-openapi/spec"
28-
"k8s.io/apimachinery/pkg/version"
2928
openapinamer "k8s.io/apiserver/pkg/endpoints/openapi"
3029
genericapiserver "k8s.io/apiserver/pkg/server"
3130
openapicommon "k8s.io/kube-openapi/pkg/common"
@@ -44,14 +43,6 @@ func SetupOpenAPI(genericAPIServerConfig *genericapiserver.Config, getDefinition
4443
genericAPIServerConfig.OpenAPIConfig.Info.Version = appVersion.GitVersion
4544
genericAPIServerConfig.OpenAPIConfig.PostProcessSpec = postProcessOpenAPISpec(host, port)
4645

47-
// version
48-
genericAPIServerConfig.Version = &version.Info{
49-
GitVersion: appVersion.GitVersion,
50-
BuildDate: appVersion.BuildDate,
51-
GoVersion: appVersion.GoVersion,
52-
Compiler: appVersion.Compiler,
53-
Platform: appVersion.Platform,
54-
}
5546
}
5647

5748
func postProcessOpenAPISpec(host string, port int) func(*spec.Swagger) (*spec.Swagger, error) {

pkg/platform/apiserver/apiserver.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,9 @@ func (m *APIServer) InstallAPIs(apiResourceConfigSource serverstorage.APIResourc
203203
apiGroupsInfo = append(apiGroupsInfo, apiGroupInfo)
204204
}
205205

206+
versionHandler := NewVersionProxyHandler(m.GenericAPIServer.LoopbackClientConfig)
207+
versionHandler.Install(m.GenericAPIServer.Handler.GoRestfulContainer)
208+
206209
for i := range apiGroupsInfo {
207210
if err := m.GenericAPIServer.InstallAPIGroup(&apiGroupsInfo[i]); err != nil {
208211
log.Fatalf("Error in registering group versions: %v", err)
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package apiserver
2+
3+
import (
4+
"net/http"
5+
6+
"github.com/emicklei/go-restful"
7+
"k8s.io/client-go/rest"
8+
platforminternalclient "tkestack.io/tke/api/client/clientset/internalversion/typed/platform/internalversion"
9+
"tkestack.io/tke/pkg/platform/proxy"
10+
)
11+
12+
type VersionProxyHandler struct {
13+
config *rest.Config
14+
}
15+
16+
func NewVersionProxyHandler(config *rest.Config) *VersionProxyHandler {
17+
return &VersionProxyHandler{
18+
config: config,
19+
}
20+
}
21+
22+
func (s *VersionProxyHandler) Install(c *restful.Container) {
23+
versionWS := new(restful.WebService)
24+
versionWS.Path("/version")
25+
versionWS.Doc("git code version from which this is built")
26+
versionWS.Route(
27+
versionWS.GET("/").To(s.handle).
28+
Doc("get the code version").
29+
Operation("getVersion").
30+
Produces(restful.MIME_JSON).
31+
Consumes(restful.MIME_JSON))
32+
33+
c.Add(versionWS)
34+
}
35+
36+
func (s *VersionProxyHandler) handle(req *restful.Request, resp *restful.Response) {
37+
platformClient := platforminternalclient.NewForConfigOrDie(s.config)
38+
client, err := proxy.ClientSet(req.Request.Context(), platformClient)
39+
if err != nil {
40+
resp.WriteHeaderAndEntity(http.StatusBadRequest, "err1"+err.Error())
41+
return
42+
}
43+
version, err := client.Discovery().ServerVersion()
44+
45+
if err != nil {
46+
resp.WriteHeaderAndEntity(http.StatusInternalServerError, "err2"+err.Error())
47+
return
48+
}
49+
50+
resp.WriteHeaderAndEntity(http.StatusOK, version)
51+
}

0 commit comments

Comments
 (0)