Files
kubesphere/pkg/kapis/version/register.go
zryfish 27ca024bb7 add version api (#2127)
add cluster validation api
2020-05-27 18:11:27 +08:00

36 lines
890 B
Go

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
}