35
pkg/kapis/version/register.go
Normal file
35
pkg/kapis/version/register.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"github.com/emicklei/go-restful"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
"k8s.io/client-go/discovery"
|
||||
"k8s.io/klog"
|
||||
"kubesphere.io/kubesphere/pkg/apiserver/runtime"
|
||||
"kubesphere.io/kubesphere/pkg/version"
|
||||
)
|
||||
|
||||
func AddToContainer(container *restful.Container, k8sDiscovery discovery.DiscoveryInterface) error {
|
||||
webservice := runtime.NewWebService(schema.GroupVersion{})
|
||||
|
||||
webservice.Route(webservice.GET("/version").
|
||||
To(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)
|
||||
})).
|
||||
Doc("KubeSphere version")
|
||||
|
||||
container.Add(webservice)
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user