From 493586d9a6fd56f4f878ec02c20ad683340dbf25 Mon Sep 17 00:00:00 2001 From: Wenhao Zhou <34303854+zhou1203@users.noreply.github.com> Date: Wed, 30 Nov 2022 12:48:53 +0800 Subject: [PATCH] Add api /version and deprecated api /kapi/version (#5390) add /version api and deprecated api /kapi/version Signed-off-by: Wenhao Zhou Signed-off-by: Wenhao Zhou --- pkg/kapis/version/register.go | 38 ++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/pkg/kapis/version/register.go b/pkg/kapis/version/register.go index 14f143805..04c4145f4 100644 --- a/pkg/kapis/version/register.go +++ b/pkg/kapis/version/register.go @@ -26,27 +26,37 @@ import ( "kubesphere.io/kubesphere/pkg/version" ) +// AddToContainer the api /kapis/version will be deprecated and instead with /version func AddToContainer(container *restful.Container, k8sDiscovery discovery.DiscoveryInterface) error { webservice := runtime.NewWebService(schema.GroupVersion{}) + rootPathWebservice := &restful.WebService{} + rootPathWebservice.Path("/").Produces(restful.MIME_JSON) + + versionFunc := func(request *restful.Request, response *restful.Response) { + ksVersion := version.Get() + + if k8sDiscovery != nil { + k8sVersion, err := k8sDiscovery.ServerVersion() + if err == nil { + ksVersion.Kubernetes = k8sVersion + } else { + klog.Errorf("Failed to get kubernetes version, error %v", err) + } + } + + response.WriteAsJson(ksVersion) + } webservice.Route(webservice.GET("/version"). - To(func(request *restful.Request, response *restful.Response) { - ksVersion := version.Get() + Deprecate(). + To(versionFunc)). + Doc("KubeSphere version. Deprecated: please use API `/version`") - if k8sDiscovery != nil { - k8sVersion, err := k8sDiscovery.ServerVersion() - if err == nil { - ksVersion.Kubernetes = k8sVersion - } else { - klog.Errorf("Failed to get kubernetes version, error %v", err) - } - } - - response.WriteAsJson(ksVersion) - })). - Doc("KubeSphere version") + rootPathWebservice.Route(rootPathWebservice.GET("/version"). + To(versionFunc)).Doc("KubeSphere version") container.Add(webservice) + container.Add(rootPathWebservice) return nil }