Add update cluster kubeconfig API

This commit is contained in:
Xinzhao Xu
2021-12-21 17:33:21 +08:00
parent e1df8bc5bb
commit 883097a3ad
6 changed files with 93 additions and 9 deletions

View File

@@ -26,6 +26,7 @@ import (
"kubesphere.io/kubesphere/pkg/api"
"kubesphere.io/kubesphere/pkg/apiserver/runtime"
kubesphere "kubesphere.io/kubesphere/pkg/client/clientset/versioned"
"kubesphere.io/kubesphere/pkg/client/informers/externalversions"
"kubesphere.io/kubesphere/pkg/constants"
)
@@ -37,6 +38,7 @@ const (
var GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
func AddToContainer(container *restful.Container,
ksclient kubesphere.Interface,
k8sInformers k8sinformers.SharedInformerFactory,
ksInformers externalversions.SharedInformerFactory,
proxyService string,
@@ -44,7 +46,7 @@ func AddToContainer(container *restful.Container,
agentImage string) error {
webservice := runtime.NewWebService(GroupVersion)
h := newHandler(k8sInformers, ksInformers, proxyService, proxyAddress, agentImage)
h := newHandler(ksclient, k8sInformers, ksInformers, proxyService, proxyAddress, agentImage)
// returns deployment yaml for cluster agent
webservice.Route(webservice.GET("/clusters/{cluster}/agent/deployment").
@@ -61,6 +63,13 @@ func AddToContainer(container *restful.Container,
Returns(http.StatusOK, api.StatusOK, nil).
Metadata(restfulspec.KeyOpenAPITags, []string{constants.MultiClusterTag}))
webservice.Route(webservice.PUT("/clusters/{cluster}/kubeconfig").
Doc("Update cluster kubeconfig.").
Param(webservice.PathParameter("cluster", "Name of the cluster.").Required(true)).
To(h.updateKubeConfig).
Returns(http.StatusOK, api.StatusOK, nil).
Metadata(restfulspec.KeyOpenAPITags, []string{constants.MultiClusterTag}))
container.Add(webservice)
return nil