Repository: kubean-io/kubean
Pull request #154 (2022-09-22 03:49:04)

Api group kubean.io
<!--  

Thanks for sending a pull request!  Here are some tips for you:

* make sure your commit is signed off

-->

**What type of PR is this?**
<!-- 
Uncomment only one ` /kind <>` line, hit enter to put that in a new line, and remove leading whitespaces from that line:

/kind api-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake
-->

/kind feature

**What this PR does / why we need it**:

* change api group to kubean.io
* Adapt controller and test to ApiGroup

**Which issue(s) this PR fixes**:
<!--
*Automatically closes linked issue when PR is merged.
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*
-->
Fixes #

**Special notes for your reviewer**:




Patch:
diff --git a/api/apis/kubeancluster/v1alpha1/doc.go b/api/apis/kubeancluster/v1alpha1/doc.go
index 19a511b40..7bde91537 100644
--- a/api/apis/kubeancluster/v1alpha1/doc.go
+++ b/api/apis/kubeancluster/v1alpha1/doc.go
@@ -1,4 +1,4 @@
 // Package v1alpha1 is the v1alpha1 version of the API.
 // +k8s:deepcopy-gen=package,register
-// +groupName=kubeancluster.kubean.io
+// +groupName=kubean.io
 package v1alpha1
diff --git a/api/apis/kubeancluster/v1alpha1/zz_generated.register.go b/api/apis/kubeancluster/v1alpha1/zz_generated.register.go
index d0b08dba1..e6a382795 100644
--- a/api/apis/kubeancluster/v1alpha1/zz_generated.register.go
+++ b/api/apis/kubeancluster/v1alpha1/zz_generated.register.go
@@ -9,7 +9,7 @@ import (
 )
 
 // GroupName specifies the group name used to register the objects.
-const GroupName = "kubeancluster.kubean.io"
+const GroupName = "kubean.io"
 
 // GroupVersion specifies the group and the version used to register the objects.
 var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
diff --git a/api/apis/kubeanclusterops/v1alpha1/doc.go b/api/apis/kubeanclusterops/v1alpha1/doc.go
index d2235a9e6..7bde91537 100644
--- a/api/apis/kubeanclusterops/v1alpha1/doc.go
+++ b/api/apis/kubeanclusterops/v1alpha1/doc.go
@@ -1,4 +1,4 @@
 // Package v1alpha1 is the v1alpha1 version of the API.
 // +k8s:deepcopy-gen=package,register
-// +groupName=kubeanclusterops.kubean.io
+// +groupName=kubean.io
 package v1alpha1
diff --git a/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go b/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go
index 9e1c8bc75..7e82aed26 100644
--- a/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go
+++ b/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go
@@ -9,7 +9,7 @@ import (
 )
 
 // GroupName specifies the group name used to register the objects.
-const GroupName = "kubeanclusterops.kubean.io"
+const GroupName = "kubean.io"
 
 // GroupVersion specifies the group and the version used to register the objects.
 var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
diff --git a/api/charts/_crds/kubeanclusterops.kubean.io_kubeanclusterops.yaml b/api/charts/_crds/kubean.io_kubeanclusterops.yaml
similarity index 98%
rename from api/charts/_crds/kubeanclusterops.kubean.io_kubeanclusterops.yaml
rename to api/charts/_crds/kubean.io_kubeanclusterops.yaml
index 0ccb09b02..3011a2aa8 100644
--- a/api/charts/_crds/kubeanclusterops.kubean.io_kubeanclusterops.yaml
+++ b/api/charts/_crds/kubean.io_kubeanclusterops.yaml
@@ -6,9 +6,9 @@ metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.6.2
   creationTimestamp: null
-  name: kubeanclusterops.kubeanclusterops.kubean.io
+  name: kubeanclusterops.kubean.io
 spec:
-  group: kubeanclusterops.kubean.io
+  group: kubean.io
   names:
     kind: KuBeanClusterOps
     listKind: KuBeanClusterOpsList
diff --git a/api/charts/_crds/kubeancluster.kubean.io_kubeanclusters.yaml b/api/charts/_crds/kubean.io_kubeanclusters.yaml
similarity index 98%
rename from api/charts/_crds/kubeancluster.kubean.io_kubeanclusters.yaml
rename to api/charts/_crds/kubean.io_kubeanclusters.yaml
index 98bd9da3a..f4f2199ac 100644
--- a/api/charts/_crds/kubeancluster.kubean.io_kubeanclusters.yaml
+++ b/api/charts/_crds/kubean.io_kubeanclusters.yaml
@@ -6,9 +6,9 @@ metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.6.2
   creationTimestamp: null
-  name: kubeanclusters.kubeancluster.kubean.io
+  name: kubeanclusters.kubean.io
 spec:
-  group: kubeancluster.kubean.io
+  group: kubean.io
   names:
     kind: KuBeanCluster
     listKind: KuBeanClusterList
diff --git a/api/generated/kubeancluster/clientset/versioned/clientset.go b/api/generated/kubeancluster/clientset/versioned/clientset.go
index f5cfed731..710e685d8 100644
--- a/api/generated/kubeancluster/clientset/versioned/clientset.go
+++ b/api/generated/kubeancluster/clientset/versioned/clientset.go
@@ -9,24 +9,24 @@ import (
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
-	kubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
 )
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface
+	KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	kubeanclusterV1alpha1 *kubeanclusterv1alpha1.KubeanclusterV1alpha1Client
+	kubeanV1alpha1 *kubeanv1alpha1.KubeanV1alpha1Client
 }
 
-// KubeanclusterV1alpha1 retrieves the KubeanclusterV1alpha1Client
-func (c *Clientset) KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface {
-	return c.kubeanclusterV1alpha1
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return c.kubeanV1alpha1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -73,7 +73,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 
 	var cs Clientset
 	var err error
-	cs.kubeanclusterV1alpha1, err = kubeanclusterv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
+	cs.kubeanV1alpha1, err = kubeanv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +98,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.kubeanclusterV1alpha1 = kubeanclusterv1alpha1.New(c)
+	cs.kubeanV1alpha1 = kubeanv1alpha1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go b/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go
index e7c13285b..c95c91d5e 100644
--- a/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go
+++ b/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go
@@ -9,8 +9,8 @@ import (
 	fakediscovery "k8s.io/client-go/discovery/fake"
 	"k8s.io/client-go/testing"
 	clientset "kubean.io/api/generated/kubeancluster/clientset/versioned"
-	kubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
-	fakekubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
+	fakekubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake"
 )
 
 // NewSimpleClientset returns a clientset that will respond with the provided objects.
@@ -63,7 +63,7 @@ var (
 	_ testing.FakeClient  = &Clientset{}
 )
 
-// KubeanclusterV1alpha1 retrieves the KubeanclusterV1alpha1Client
-func (c *Clientset) KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface {
-	return &fakekubeanclusterv1alpha1.FakeKubeanclusterV1alpha1{Fake: &c.Fake}
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return &fakekubeanv1alpha1.FakeKubeanV1alpha1{Fake: &c.Fake}
 }
diff --git a/api/generated/kubeancluster/clientset/versioned/fake/register.go b/api/generated/kubeancluster/clientset/versioned/fake/register.go
index e1f9ed017..a8126cdac 100644
--- a/api/generated/kubeancluster/clientset/versioned/fake/register.go
+++ b/api/generated/kubeancluster/clientset/versioned/fake/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
 )
 
 var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusterv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeancluster/clientset/versioned/scheme/register.go b/api/generated/kubeancluster/clientset/versioned/scheme/register.go
index 6c9231ef1..74dece76a 100644
--- a/api/generated/kubeancluster/clientset/versioned/scheme/register.go
+++ b/api/generated/kubeancluster/clientset/versioned/scheme/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
 )
 
 var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusterv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
index d0047ce8b..8d19207dd 100644
--- a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
+++ b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
@@ -16,12 +16,12 @@ import (
 
 // FakeKuBeanClusters implements KuBeanClusterInterface
 type FakeKuBeanClusters struct {
-	Fake *FakeKubeanclusterV1alpha1
+	Fake *FakeKubeanV1alpha1
 }
 
-var kubeanclustersResource = schema.GroupVersionResource{Group: "kubeancluster.kubean.io", Version: "v1alpha1", Resource: "kubeanclusters"}
+var kubeanclustersResource = schema.GroupVersionResource{Group: "kubean.io", Version: "v1alpha1", Resource: "kubeanclusters"}
 
-var kubeanclustersKind = schema.GroupVersionKind{Group: "kubeancluster.kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"}
+var kubeanclustersKind = schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"}
 
 // Get takes name of the kuBeanCluster, and returns the corresponding kuBeanCluster object, and an error if there is any.
 func (c *FakeKuBeanClusters) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KuBeanCluster, err error) {
diff --git a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
index 3ef7c372e..722119b6d 100644
--- a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
+++ b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
@@ -8,17 +8,17 @@ import (
 	v1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
 )
 
-type FakeKubeanclusterV1alpha1 struct {
+type FakeKubeanV1alpha1 struct {
 	*testing.Fake
 }
 
-func (c *FakeKubeanclusterV1alpha1) KuBeanClusters() v1alpha1.KuBeanClusterInterface {
+func (c *FakeKubeanV1alpha1) KuBeanClusters() v1alpha1.KuBeanClusterInterface {
 	return &FakeKuBeanClusters{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeKubeanclusterV1alpha1) RESTClient() rest.Interface {
+func (c *FakeKubeanV1alpha1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
index 21478630d..839b16eb4 100644
--- a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
+++ b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
@@ -40,7 +40,7 @@ type kuBeanClusters struct {
 }
 
 // newKuBeanClusters returns a KuBeanClusters
-func newKuBeanClusters(c *KubeanclusterV1alpha1Client) *kuBeanClusters {
+func newKuBeanClusters(c *KubeanV1alpha1Client) *kuBeanClusters {
 	return &kuBeanClusters{
 		client: c.RESTClient(),
 	}
diff --git a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
index 9cd53f212..6ae42dfbf 100644
--- a/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
+++ b/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
@@ -10,24 +10,24 @@ import (
 	"kubean.io/api/generated/kubeancluster/clientset/versioned/scheme"
 )
 
-type KubeanclusterV1alpha1Interface interface {
+type KubeanV1alpha1Interface interface {
 	RESTClient() rest.Interface
 	KuBeanClustersGetter
 }
 
-// KubeanclusterV1alpha1Client is used to interact with features provided by the kubeancluster.kubean.io group.
-type KubeanclusterV1alpha1Client struct {
+// KubeanV1alpha1Client is used to interact with features provided by the kubean.io group.
+type KubeanV1alpha1Client struct {
 	restClient rest.Interface
 }
 
-func (c *KubeanclusterV1alpha1Client) KuBeanClusters() KuBeanClusterInterface {
+func (c *KubeanV1alpha1Client) KuBeanClusters() KuBeanClusterInterface {
 	return newKuBeanClusters(c)
 }
 
-// NewForConfig creates a new KubeanclusterV1alpha1Client for the given config.
+// NewForConfig creates a new KubeanV1alpha1Client for the given config.
 // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
 // where httpClient was generated with rest.HTTPClientFor(c).
-func NewForConfig(c *rest.Config) (*KubeanclusterV1alpha1Client, error) {
+func NewForConfig(c *rest.Config) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -39,9 +39,9 @@ func NewForConfig(c *rest.Config) (*KubeanclusterV1alpha1Client, error) {
 	return NewForConfigAndClient(&config, httpClient)
 }
 
-// NewForConfigAndClient creates a new KubeanclusterV1alpha1Client for the given config and http client.
+// NewForConfigAndClient creates a new KubeanV1alpha1Client for the given config and http client.
 // Note the http client provided takes precedence over the configured transport values.
-func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusterV1alpha1Client, error) {
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -50,12 +50,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusterV1alph
 	if err != nil {
 		return nil, err
 	}
-	return &KubeanclusterV1alpha1Client{client}, nil
+	return &KubeanV1alpha1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new KubeanclusterV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new KubeanV1alpha1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *KubeanclusterV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *KubeanV1alpha1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -63,9 +63,9 @@ func NewForConfigOrDie(c *rest.Config) *KubeanclusterV1alpha1Client {
 	return client
 }
 
-// New creates a new KubeanclusterV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *KubeanclusterV1alpha1Client {
-	return &KubeanclusterV1alpha1Client{c}
+// New creates a new KubeanV1alpha1Client for the given RESTClient.
+func New(c rest.Interface) *KubeanV1alpha1Client {
+	return &KubeanV1alpha1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
@@ -83,7 +83,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *KubeanclusterV1alpha1Client) RESTClient() rest.Interface {
+func (c *KubeanV1alpha1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}
diff --git a/api/generated/kubeancluster/informers/externalversions/factory.go b/api/generated/kubeancluster/informers/externalversions/factory.go
index b7657573f..d2f76fec7 100644
--- a/api/generated/kubeancluster/informers/externalversions/factory.go
+++ b/api/generated/kubeancluster/informers/externalversions/factory.go
@@ -156,9 +156,9 @@ type SharedInformerFactory interface {
 	ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
 	WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
 
-	Kubeancluster() kubeancluster.Interface
+	Kubean() kubeancluster.Interface
 }
 
-func (f *sharedInformerFactory) Kubeancluster() kubeancluster.Interface {
+func (f *sharedInformerFactory) Kubean() kubeancluster.Interface {
 	return kubeancluster.New(f, f.namespace, f.tweakListOptions)
 }
diff --git a/api/generated/kubeancluster/informers/externalversions/generic.go b/api/generated/kubeancluster/informers/externalversions/generic.go
index 49287f48e..170ae27a1 100644
--- a/api/generated/kubeancluster/informers/externalversions/generic.go
+++ b/api/generated/kubeancluster/informers/externalversions/generic.go
@@ -36,9 +36,9 @@ func (f *genericInformer) Lister() cache.GenericLister {
 // TODO extend this to unknown resources with a client pool
 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
 	switch resource {
-	// Group=kubeancluster.kubean.io, Version=v1alpha1
+	// Group=kubean.io, Version=v1alpha1
 	case v1alpha1.SchemeGroupVersion.WithResource("kubeanclusters"):
-		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubeancluster().V1alpha1().KuBeanClusters().Informer()}, nil
+		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubean().V1alpha1().KuBeanClusters().Informer()}, nil
 
 	}
 
diff --git a/api/generated/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go b/api/generated/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go
index 53e689d36..2e86fea8c 100644
--- a/api/generated/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go
+++ b/api/generated/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go
@@ -45,13 +45,13 @@ func NewFilteredKuBeanClusterInformer(client versioned.Interface, resyncPeriod t
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusterV1alpha1().KuBeanClusters().List(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusters().List(context.TODO(), options)
 			},
 			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusterV1alpha1().KuBeanClusters().Watch(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusters().Watch(context.TODO(), options)
 			},
 		},
 		&kubeanclusterv1alpha1.KuBeanCluster{},
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/clientset.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/clientset.go
index f5cfed731..710e685d8 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/clientset.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/clientset.go
@@ -9,24 +9,24 @@ import (
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
-	kubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
 )
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface
+	KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	kubeanclusterV1alpha1 *kubeanclusterv1alpha1.KubeanclusterV1alpha1Client
+	kubeanV1alpha1 *kubeanv1alpha1.KubeanV1alpha1Client
 }
 
-// KubeanclusterV1alpha1 retrieves the KubeanclusterV1alpha1Client
-func (c *Clientset) KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface {
-	return c.kubeanclusterV1alpha1
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return c.kubeanV1alpha1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -73,7 +73,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 
 	var cs Clientset
 	var err error
-	cs.kubeanclusterV1alpha1, err = kubeanclusterv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
+	cs.kubeanV1alpha1, err = kubeanv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +98,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.kubeanclusterV1alpha1 = kubeanclusterv1alpha1.New(c)
+	cs.kubeanV1alpha1 = kubeanv1alpha1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/clientset_generated.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/clientset_generated.go
index e7c13285b..c95c91d5e 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/clientset_generated.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/clientset_generated.go
@@ -9,8 +9,8 @@ import (
 	fakediscovery "k8s.io/client-go/discovery/fake"
 	"k8s.io/client-go/testing"
 	clientset "kubean.io/api/generated/kubeancluster/clientset/versioned"
-	kubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
-	fakekubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
+	fakekubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake"
 )
 
 // NewSimpleClientset returns a clientset that will respond with the provided objects.
@@ -63,7 +63,7 @@ var (
 	_ testing.FakeClient  = &Clientset{}
 )
 
-// KubeanclusterV1alpha1 retrieves the KubeanclusterV1alpha1Client
-func (c *Clientset) KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface {
-	return &fakekubeanclusterv1alpha1.FakeKubeanclusterV1alpha1{Fake: &c.Fake}
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return &fakekubeanv1alpha1.FakeKubeanV1alpha1{Fake: &c.Fake}
 }
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/register.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/register.go
index e1f9ed017..a8126cdac 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/register.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/fake/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
 )
 
 var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusterv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/scheme/register.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/scheme/register.go
index 6c9231ef1..74dece76a 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/scheme/register.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/scheme/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
 )
 
 var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusterv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
index d0047ce8b..8d19207dd 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
@@ -16,12 +16,12 @@ import (
 
 // FakeKuBeanClusters implements KuBeanClusterInterface
 type FakeKuBeanClusters struct {
-	Fake *FakeKubeanclusterV1alpha1
+	Fake *FakeKubeanV1alpha1
 }
 
-var kubeanclustersResource = schema.GroupVersionResource{Group: "kubeancluster.kubean.io", Version: "v1alpha1", Resource: "kubeanclusters"}
+var kubeanclustersResource = schema.GroupVersionResource{Group: "kubean.io", Version: "v1alpha1", Resource: "kubeanclusters"}
 
-var kubeanclustersKind = schema.GroupVersionKind{Group: "kubeancluster.kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"}
+var kubeanclustersKind = schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"}
 
 // Get takes name of the kuBeanCluster, and returns the corresponding kuBeanCluster object, and an error if there is any.
 func (c *FakeKuBeanClusters) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KuBeanCluster, err error) {
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
index 3ef7c372e..722119b6d 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
@@ -8,17 +8,17 @@ import (
 	v1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
 )
 
-type FakeKubeanclusterV1alpha1 struct {
+type FakeKubeanV1alpha1 struct {
 	*testing.Fake
 }
 
-func (c *FakeKubeanclusterV1alpha1) KuBeanClusters() v1alpha1.KuBeanClusterInterface {
+func (c *FakeKubeanV1alpha1) KuBeanClusters() v1alpha1.KuBeanClusterInterface {
 	return &FakeKuBeanClusters{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeKubeanclusterV1alpha1) RESTClient() rest.Interface {
+func (c *FakeKubeanV1alpha1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
index 21478630d..839b16eb4 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
@@ -40,7 +40,7 @@ type kuBeanClusters struct {
 }
 
 // newKuBeanClusters returns a KuBeanClusters
-func newKuBeanClusters(c *KubeanclusterV1alpha1Client) *kuBeanClusters {
+func newKuBeanClusters(c *KubeanV1alpha1Client) *kuBeanClusters {
 	return &kuBeanClusters{
 		client: c.RESTClient(),
 	}
diff --git a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
index 9cd53f212..6ae42dfbf 100644
--- a/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
+++ b/api/generated/kubeancluster/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
@@ -10,24 +10,24 @@ import (
 	"kubean.io/api/generated/kubeancluster/clientset/versioned/scheme"
 )
 
-type KubeanclusterV1alpha1Interface interface {
+type KubeanV1alpha1Interface interface {
 	RESTClient() rest.Interface
 	KuBeanClustersGetter
 }
 
-// KubeanclusterV1alpha1Client is used to interact with features provided by the kubeancluster.kubean.io group.
-type KubeanclusterV1alpha1Client struct {
+// KubeanV1alpha1Client is used to interact with features provided by the kubean.io group.
+type KubeanV1alpha1Client struct {
 	restClient rest.Interface
 }
 
-func (c *KubeanclusterV1alpha1Client) KuBeanClusters() KuBeanClusterInterface {
+func (c *KubeanV1alpha1Client) KuBeanClusters() KuBeanClusterInterface {
 	return newKuBeanClusters(c)
 }
 
-// NewForConfig creates a new KubeanclusterV1alpha1Client for the given config.
+// NewForConfig creates a new KubeanV1alpha1Client for the given config.
 // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
 // where httpClient was generated with rest.HTTPClientFor(c).
-func NewForConfig(c *rest.Config) (*KubeanclusterV1alpha1Client, error) {
+func NewForConfig(c *rest.Config) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -39,9 +39,9 @@ func NewForConfig(c *rest.Config) (*KubeanclusterV1alpha1Client, error) {
 	return NewForConfigAndClient(&config, httpClient)
 }
 
-// NewForConfigAndClient creates a new KubeanclusterV1alpha1Client for the given config and http client.
+// NewForConfigAndClient creates a new KubeanV1alpha1Client for the given config and http client.
 // Note the http client provided takes precedence over the configured transport values.
-func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusterV1alpha1Client, error) {
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -50,12 +50,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusterV1alph
 	if err != nil {
 		return nil, err
 	}
-	return &KubeanclusterV1alpha1Client{client}, nil
+	return &KubeanV1alpha1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new KubeanclusterV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new KubeanV1alpha1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *KubeanclusterV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *KubeanV1alpha1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -63,9 +63,9 @@ func NewForConfigOrDie(c *rest.Config) *KubeanclusterV1alpha1Client {
 	return client
 }
 
-// New creates a new KubeanclusterV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *KubeanclusterV1alpha1Client {
-	return &KubeanclusterV1alpha1Client{c}
+// New creates a new KubeanV1alpha1Client for the given RESTClient.
+func New(c rest.Interface) *KubeanV1alpha1Client {
+	return &KubeanV1alpha1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
@@ -83,7 +83,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *KubeanclusterV1alpha1Client) RESTClient() rest.Interface {
+func (c *KubeanV1alpha1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}
diff --git a/api/generated/kubeancluster/kubeancluster/informers/externalversions/factory.go b/api/generated/kubeancluster/kubeancluster/informers/externalversions/factory.go
index b7657573f..d2f76fec7 100644
--- a/api/generated/kubeancluster/kubeancluster/informers/externalversions/factory.go
+++ b/api/generated/kubeancluster/kubeancluster/informers/externalversions/factory.go
@@ -156,9 +156,9 @@ type SharedInformerFactory interface {
 	ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
 	WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
 
-	Kubeancluster() kubeancluster.Interface
+	Kubean() kubeancluster.Interface
 }
 
-func (f *sharedInformerFactory) Kubeancluster() kubeancluster.Interface {
+func (f *sharedInformerFactory) Kubean() kubeancluster.Interface {
 	return kubeancluster.New(f, f.namespace, f.tweakListOptions)
 }
diff --git a/api/generated/kubeancluster/kubeancluster/informers/externalversions/generic.go b/api/generated/kubeancluster/kubeancluster/informers/externalversions/generic.go
index 49287f48e..170ae27a1 100644
--- a/api/generated/kubeancluster/kubeancluster/informers/externalversions/generic.go
+++ b/api/generated/kubeancluster/kubeancluster/informers/externalversions/generic.go
@@ -36,9 +36,9 @@ func (f *genericInformer) Lister() cache.GenericLister {
 // TODO extend this to unknown resources with a client pool
 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
 	switch resource {
-	// Group=kubeancluster.kubean.io, Version=v1alpha1
+	// Group=kubean.io, Version=v1alpha1
 	case v1alpha1.SchemeGroupVersion.WithResource("kubeanclusters"):
-		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubeancluster().V1alpha1().KuBeanClusters().Informer()}, nil
+		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubean().V1alpha1().KuBeanClusters().Informer()}, nil
 
 	}
 
diff --git a/api/generated/kubeancluster/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go b/api/generated/kubeancluster/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go
index 53e689d36..2e86fea8c 100644
--- a/api/generated/kubeancluster/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go
+++ b/api/generated/kubeancluster/kubeancluster/informers/externalversions/kubeancluster/v1alpha1/kubeancluster.go
@@ -45,13 +45,13 @@ func NewFilteredKuBeanClusterInformer(client versioned.Interface, resyncPeriod t
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusterV1alpha1().KuBeanClusters().List(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusters().List(context.TODO(), options)
 			},
 			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusterV1alpha1().KuBeanClusters().Watch(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusters().Watch(context.TODO(), options)
 			},
 		},
 		&kubeanclusterv1alpha1.KuBeanCluster{},
diff --git a/api/generated/kubeanclusterops/clientset/versioned/clientset.go b/api/generated/kubeanclusterops/clientset/versioned/clientset.go
index 05601865b..43499f3e8 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/clientset.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/clientset.go
@@ -9,24 +9,24 @@ import (
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
-	kubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
 )
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface
+	KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	kubeanclusteropsV1alpha1 *kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Client
+	kubeanV1alpha1 *kubeanv1alpha1.KubeanV1alpha1Client
 }
 
-// KubeanclusteropsV1alpha1 retrieves the KubeanclusteropsV1alpha1Client
-func (c *Clientset) KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface {
-	return c.kubeanclusteropsV1alpha1
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return c.kubeanV1alpha1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -73,7 +73,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 
 	var cs Clientset
 	var err error
-	cs.kubeanclusteropsV1alpha1, err = kubeanclusteropsv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
+	cs.kubeanV1alpha1, err = kubeanv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +98,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.kubeanclusteropsV1alpha1 = kubeanclusteropsv1alpha1.New(c)
+	cs.kubeanV1alpha1 = kubeanv1alpha1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go b/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
index 93a16e1fd..3d34267de 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
@@ -9,8 +9,8 @@ import (
 	fakediscovery "k8s.io/client-go/discovery/fake"
 	"k8s.io/client-go/testing"
 	clientset "kubean.io/api/generated/kubeanclusterops/clientset/versioned"
-	kubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
-	fakekubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
+	fakekubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake"
 )
 
 // NewSimpleClientset returns a clientset that will respond with the provided objects.
@@ -63,7 +63,7 @@ var (
 	_ testing.FakeClient  = &Clientset{}
 )
 
-// KubeanclusteropsV1alpha1 retrieves the KubeanclusteropsV1alpha1Client
-func (c *Clientset) KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface {
-	return &fakekubeanclusteropsv1alpha1.FakeKubeanclusteropsV1alpha1{Fake: &c.Fake}
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return &fakekubeanv1alpha1.FakeKubeanV1alpha1{Fake: &c.Fake}
 }
diff --git a/api/generated/kubeanclusterops/clientset/versioned/fake/register.go b/api/generated/kubeanclusterops/clientset/versioned/fake/register.go
index c7822e1ef..365858286 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/fake/register.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/fake/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 )
 
 var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusteropsv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go b/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go
index e1f7dc325..62f109638 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 )
 
 var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusteropsv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
index 0c2d31b7b..708b12ce5 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
@@ -16,12 +16,12 @@ import (
 
 // FakeKuBeanClusterOps implements KuBeanClusterOpsInterface
 type FakeKuBeanClusterOps struct {
-	Fake *FakeKubeanclusteropsV1alpha1
+	Fake *FakeKubeanV1alpha1
 }
 
-var kubeanclusteropsResource = schema.GroupVersionResource{Group: "kubeanclusterops.kubean.io", Version: "v1alpha1", Resource: "kubeanclusterops"}
+var kubeanclusteropsResource = schema.GroupVersionResource{Group: "kubean.io", Version: "v1alpha1", Resource: "kubeanclusterops"}
 
-var kubeanclusteropsKind = schema.GroupVersionKind{Group: "kubeanclusterops.kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"}
+var kubeanclusteropsKind = schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"}
 
 // Get takes name of the kuBeanClusterOps, and returns the corresponding kuBeanClusterOps object, and an error if there is any.
 func (c *FakeKuBeanClusterOps) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KuBeanClusterOps, err error) {
diff --git a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
index 2a5a687b2..db22950e3 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
@@ -8,17 +8,17 @@ import (
 	v1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
 )
 
-type FakeKubeanclusteropsV1alpha1 struct {
+type FakeKubeanV1alpha1 struct {
 	*testing.Fake
 }
 
-func (c *FakeKubeanclusteropsV1alpha1) KuBeanClusterOps() v1alpha1.KuBeanClusterOpsInterface {
+func (c *FakeKubeanV1alpha1) KuBeanClusterOps() v1alpha1.KuBeanClusterOpsInterface {
 	return &FakeKuBeanClusterOps{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeKubeanclusteropsV1alpha1) RESTClient() rest.Interface {
+func (c *FakeKubeanV1alpha1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
index 70a5130a1..968121136 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
@@ -40,7 +40,7 @@ type kuBeanClusterOps struct {
 }
 
 // newKuBeanClusterOps returns a KuBeanClusterOps
-func newKuBeanClusterOps(c *KubeanclusteropsV1alpha1Client) *kuBeanClusterOps {
+func newKuBeanClusterOps(c *KubeanV1alpha1Client) *kuBeanClusterOps {
 	return &kuBeanClusterOps{
 		client: c.RESTClient(),
 	}
diff --git a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
index 5df016b54..2b1e782a2 100644
--- a/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
+++ b/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
@@ -10,24 +10,24 @@ import (
 	"kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme"
 )
 
-type KubeanclusteropsV1alpha1Interface interface {
+type KubeanV1alpha1Interface interface {
 	RESTClient() rest.Interface
 	KuBeanClusterOpsGetter
 }
 
-// KubeanclusteropsV1alpha1Client is used to interact with features provided by the kubeanclusterops.kubean.io group.
-type KubeanclusteropsV1alpha1Client struct {
+// KubeanV1alpha1Client is used to interact with features provided by the kubean.io group.
+type KubeanV1alpha1Client struct {
 	restClient rest.Interface
 }
 
-func (c *KubeanclusteropsV1alpha1Client) KuBeanClusterOps() KuBeanClusterOpsInterface {
+func (c *KubeanV1alpha1Client) KuBeanClusterOps() KuBeanClusterOpsInterface {
 	return newKuBeanClusterOps(c)
 }
 
-// NewForConfig creates a new KubeanclusteropsV1alpha1Client for the given config.
+// NewForConfig creates a new KubeanV1alpha1Client for the given config.
 // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
 // where httpClient was generated with rest.HTTPClientFor(c).
-func NewForConfig(c *rest.Config) (*KubeanclusteropsV1alpha1Client, error) {
+func NewForConfig(c *rest.Config) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -39,9 +39,9 @@ func NewForConfig(c *rest.Config) (*KubeanclusteropsV1alpha1Client, error) {
 	return NewForConfigAndClient(&config, httpClient)
 }
 
-// NewForConfigAndClient creates a new KubeanclusteropsV1alpha1Client for the given config and http client.
+// NewForConfigAndClient creates a new KubeanV1alpha1Client for the given config and http client.
 // Note the http client provided takes precedence over the configured transport values.
-func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusteropsV1alpha1Client, error) {
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -50,12 +50,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusteropsV1a
 	if err != nil {
 		return nil, err
 	}
-	return &KubeanclusteropsV1alpha1Client{client}, nil
+	return &KubeanV1alpha1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new KubeanclusteropsV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new KubeanV1alpha1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *KubeanclusteropsV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *KubeanV1alpha1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -63,9 +63,9 @@ func NewForConfigOrDie(c *rest.Config) *KubeanclusteropsV1alpha1Client {
 	return client
 }
 
-// New creates a new KubeanclusteropsV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *KubeanclusteropsV1alpha1Client {
-	return &KubeanclusteropsV1alpha1Client{c}
+// New creates a new KubeanV1alpha1Client for the given RESTClient.
+func New(c rest.Interface) *KubeanV1alpha1Client {
+	return &KubeanV1alpha1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
@@ -83,7 +83,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *KubeanclusteropsV1alpha1Client) RESTClient() rest.Interface {
+func (c *KubeanV1alpha1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}
diff --git a/api/generated/kubeanclusterops/informers/externalversions/factory.go b/api/generated/kubeanclusterops/informers/externalversions/factory.go
index 9335991c6..bda6063c7 100644
--- a/api/generated/kubeanclusterops/informers/externalversions/factory.go
+++ b/api/generated/kubeanclusterops/informers/externalversions/factory.go
@@ -156,9 +156,9 @@ type SharedInformerFactory interface {
 	ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
 	WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
 
-	Kubeanclusterops() kubeanclusterops.Interface
+	Kubean() kubeanclusterops.Interface
 }
 
-func (f *sharedInformerFactory) Kubeanclusterops() kubeanclusterops.Interface {
+func (f *sharedInformerFactory) Kubean() kubeanclusterops.Interface {
 	return kubeanclusterops.New(f, f.namespace, f.tweakListOptions)
 }
diff --git a/api/generated/kubeanclusterops/informers/externalversions/generic.go b/api/generated/kubeanclusterops/informers/externalversions/generic.go
index 8f6dd4606..4ef1c665f 100644
--- a/api/generated/kubeanclusterops/informers/externalversions/generic.go
+++ b/api/generated/kubeanclusterops/informers/externalversions/generic.go
@@ -36,9 +36,9 @@ func (f *genericInformer) Lister() cache.GenericLister {
 // TODO extend this to unknown resources with a client pool
 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
 	switch resource {
-	// Group=kubeanclusterops.kubean.io, Version=v1alpha1
+	// Group=kubean.io, Version=v1alpha1
 	case v1alpha1.SchemeGroupVersion.WithResource("kubeanclusterops"):
-		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubeanclusterops().V1alpha1().KuBeanClusterOps().Informer()}, nil
+		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubean().V1alpha1().KuBeanClusterOps().Informer()}, nil
 
 	}
 
diff --git a/api/generated/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go b/api/generated/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go
index b72e84bc2..da3a28b0f 100644
--- a/api/generated/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go
+++ b/api/generated/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go
@@ -45,13 +45,13 @@ func NewFilteredKuBeanClusterOpsInformer(client versioned.Interface, resyncPerio
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusterOps().List(context.TODO(), options)
 			},
 			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusteropsV1alpha1().KuBeanClusterOps().Watch(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusterOps().Watch(context.TODO(), options)
 			},
 		},
 		&kubeanclusteropsv1alpha1.KuBeanClusterOps{},
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/clientset.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/clientset.go
index 05601865b..43499f3e8 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/clientset.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/clientset.go
@@ -9,24 +9,24 @@ import (
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
-	kubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
 )
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface
+	KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	kubeanclusteropsV1alpha1 *kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Client
+	kubeanV1alpha1 *kubeanv1alpha1.KubeanV1alpha1Client
 }
 
-// KubeanclusteropsV1alpha1 retrieves the KubeanclusteropsV1alpha1Client
-func (c *Clientset) KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface {
-	return c.kubeanclusteropsV1alpha1
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return c.kubeanV1alpha1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -73,7 +73,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 
 	var cs Clientset
 	var err error
-	cs.kubeanclusteropsV1alpha1, err = kubeanclusteropsv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
+	cs.kubeanV1alpha1, err = kubeanv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +98,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.kubeanclusteropsV1alpha1 = kubeanclusteropsv1alpha1.New(c)
+	cs.kubeanV1alpha1 = kubeanv1alpha1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/clientset_generated.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
index 93a16e1fd..3d34267de 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
@@ -9,8 +9,8 @@ import (
 	fakediscovery "k8s.io/client-go/discovery/fake"
 	"k8s.io/client-go/testing"
 	clientset "kubean.io/api/generated/kubeanclusterops/clientset/versioned"
-	kubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
-	fakekubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
+	fakekubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake"
 )
 
 // NewSimpleClientset returns a clientset that will respond with the provided objects.
@@ -63,7 +63,7 @@ var (
 	_ testing.FakeClient  = &Clientset{}
 )
 
-// KubeanclusteropsV1alpha1 retrieves the KubeanclusteropsV1alpha1Client
-func (c *Clientset) KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface {
-	return &fakekubeanclusteropsv1alpha1.FakeKubeanclusteropsV1alpha1{Fake: &c.Fake}
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return &fakekubeanv1alpha1.FakeKubeanV1alpha1{Fake: &c.Fake}
 }
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/register.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/register.go
index c7822e1ef..365858286 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/register.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/fake/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 )
 
 var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusteropsv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/scheme/register.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/scheme/register.go
index e1f7dc325..62f109638 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/scheme/register.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/scheme/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 )
 
 var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusteropsv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
index 0c2d31b7b..708b12ce5 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
@@ -16,12 +16,12 @@ import (
 
 // FakeKuBeanClusterOps implements KuBeanClusterOpsInterface
 type FakeKuBeanClusterOps struct {
-	Fake *FakeKubeanclusteropsV1alpha1
+	Fake *FakeKubeanV1alpha1
 }
 
-var kubeanclusteropsResource = schema.GroupVersionResource{Group: "kubeanclusterops.kubean.io", Version: "v1alpha1", Resource: "kubeanclusterops"}
+var kubeanclusteropsResource = schema.GroupVersionResource{Group: "kubean.io", Version: "v1alpha1", Resource: "kubeanclusterops"}
 
-var kubeanclusteropsKind = schema.GroupVersionKind{Group: "kubeanclusterops.kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"}
+var kubeanclusteropsKind = schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"}
 
 // Get takes name of the kuBeanClusterOps, and returns the corresponding kuBeanClusterOps object, and an error if there is any.
 func (c *FakeKuBeanClusterOps) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KuBeanClusterOps, err error) {
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
index 2a5a687b2..db22950e3 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
@@ -8,17 +8,17 @@ import (
 	v1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
 )
 
-type FakeKubeanclusteropsV1alpha1 struct {
+type FakeKubeanV1alpha1 struct {
 	*testing.Fake
 }
 
-func (c *FakeKubeanclusteropsV1alpha1) KuBeanClusterOps() v1alpha1.KuBeanClusterOpsInterface {
+func (c *FakeKubeanV1alpha1) KuBeanClusterOps() v1alpha1.KuBeanClusterOpsInterface {
 	return &FakeKuBeanClusterOps{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeKubeanclusteropsV1alpha1) RESTClient() rest.Interface {
+func (c *FakeKubeanV1alpha1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
index 70a5130a1..968121136 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
@@ -40,7 +40,7 @@ type kuBeanClusterOps struct {
 }
 
 // newKuBeanClusterOps returns a KuBeanClusterOps
-func newKuBeanClusterOps(c *KubeanclusteropsV1alpha1Client) *kuBeanClusterOps {
+func newKuBeanClusterOps(c *KubeanV1alpha1Client) *kuBeanClusterOps {
 	return &kuBeanClusterOps{
 		client: c.RESTClient(),
 	}
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
index 5df016b54..2b1e782a2 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
@@ -10,24 +10,24 @@ import (
 	"kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme"
 )
 
-type KubeanclusteropsV1alpha1Interface interface {
+type KubeanV1alpha1Interface interface {
 	RESTClient() rest.Interface
 	KuBeanClusterOpsGetter
 }
 
-// KubeanclusteropsV1alpha1Client is used to interact with features provided by the kubeanclusterops.kubean.io group.
-type KubeanclusteropsV1alpha1Client struct {
+// KubeanV1alpha1Client is used to interact with features provided by the kubean.io group.
+type KubeanV1alpha1Client struct {
 	restClient rest.Interface
 }
 
-func (c *KubeanclusteropsV1alpha1Client) KuBeanClusterOps() KuBeanClusterOpsInterface {
+func (c *KubeanV1alpha1Client) KuBeanClusterOps() KuBeanClusterOpsInterface {
 	return newKuBeanClusterOps(c)
 }
 
-// NewForConfig creates a new KubeanclusteropsV1alpha1Client for the given config.
+// NewForConfig creates a new KubeanV1alpha1Client for the given config.
 // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
 // where httpClient was generated with rest.HTTPClientFor(c).
-func NewForConfig(c *rest.Config) (*KubeanclusteropsV1alpha1Client, error) {
+func NewForConfig(c *rest.Config) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -39,9 +39,9 @@ func NewForConfig(c *rest.Config) (*KubeanclusteropsV1alpha1Client, error) {
 	return NewForConfigAndClient(&config, httpClient)
 }
 
-// NewForConfigAndClient creates a new KubeanclusteropsV1alpha1Client for the given config and http client.
+// NewForConfigAndClient creates a new KubeanV1alpha1Client for the given config and http client.
 // Note the http client provided takes precedence over the configured transport values.
-func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusteropsV1alpha1Client, error) {
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -50,12 +50,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusteropsV1a
 	if err != nil {
 		return nil, err
 	}
-	return &KubeanclusteropsV1alpha1Client{client}, nil
+	return &KubeanV1alpha1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new KubeanclusteropsV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new KubeanV1alpha1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *KubeanclusteropsV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *KubeanV1alpha1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -63,9 +63,9 @@ func NewForConfigOrDie(c *rest.Config) *KubeanclusteropsV1alpha1Client {
 	return client
 }
 
-// New creates a new KubeanclusteropsV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *KubeanclusteropsV1alpha1Client {
-	return &KubeanclusteropsV1alpha1Client{c}
+// New creates a new KubeanV1alpha1Client for the given RESTClient.
+func New(c rest.Interface) *KubeanV1alpha1Client {
+	return &KubeanV1alpha1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
@@ -83,7 +83,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *KubeanclusteropsV1alpha1Client) RESTClient() rest.Interface {
+func (c *KubeanV1alpha1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/factory.go b/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/factory.go
index 9335991c6..bda6063c7 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/factory.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/factory.go
@@ -156,9 +156,9 @@ type SharedInformerFactory interface {
 	ForResource(resource schema.GroupVersionResource) (GenericInformer, error)
 	WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
 
-	Kubeanclusterops() kubeanclusterops.Interface
+	Kubean() kubeanclusterops.Interface
 }
 
-func (f *sharedInformerFactory) Kubeanclusterops() kubeanclusterops.Interface {
+func (f *sharedInformerFactory) Kubean() kubeanclusterops.Interface {
 	return kubeanclusterops.New(f, f.namespace, f.tweakListOptions)
 }
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/generic.go b/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/generic.go
index 8f6dd4606..4ef1c665f 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/generic.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/generic.go
@@ -36,9 +36,9 @@ func (f *genericInformer) Lister() cache.GenericLister {
 // TODO extend this to unknown resources with a client pool
 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
 	switch resource {
-	// Group=kubeanclusterops.kubean.io, Version=v1alpha1
+	// Group=kubean.io, Version=v1alpha1
 	case v1alpha1.SchemeGroupVersion.WithResource("kubeanclusterops"):
-		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubeanclusterops().V1alpha1().KuBeanClusterOps().Informer()}, nil
+		return &genericInformer{resource: resource.GroupResource(), informer: f.Kubean().V1alpha1().KuBeanClusterOps().Informer()}, nil
 
 	}
 
diff --git a/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go b/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go
index b72e84bc2..da3a28b0f 100644
--- a/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go
+++ b/api/generated/kubeanclusterops/kubeanclusterops/informers/externalversions/kubeanclusterops/v1alpha1/kubeanclusterops.go
@@ -45,13 +45,13 @@ func NewFilteredKuBeanClusterOpsInformer(client versioned.Interface, resyncPerio
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusterOps().List(context.TODO(), options)
 			},
 			WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
 				if tweakListOptions != nil {
 					tweakListOptions(&options)
 				}
-				return client.KubeanclusteropsV1alpha1().KuBeanClusterOps().Watch(context.TODO(), options)
+				return client.KubeanV1alpha1().KuBeanClusterOps().Watch(context.TODO(), options)
 			},
 		},
 		&kubeanclusteropsv1alpha1.KuBeanClusterOps{},
diff --git a/artifacts/demo/kubeanCluster.yml b/artifacts/demo/kubeanCluster.yml
index ad6c19a58..a49951c4a 100644
--- a/artifacts/demo/kubeanCluster.yml
+++ b/artifacts/demo/kubeanCluster.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeancluster.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanCluster
 metadata:
   name: cluster1-demo
diff --git a/artifacts/demo/kubeanClusterOps.yml b/artifacts/demo/kubeanClusterOps.yml
index b2ff82e4d..b3e2b2ec2 100644
--- a/artifacts/demo/kubeanClusterOps.yml
+++ b/artifacts/demo/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: cluster1-demo-ops-1
diff --git a/artifacts/offlineDemo/kubeanCluster.yml b/artifacts/offlineDemo/kubeanCluster.yml
index a5f142b59..26c579e84 100644
--- a/artifacts/offlineDemo/kubeanCluster.yml
+++ b/artifacts/offlineDemo/kubeanCluster.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeancluster.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanCluster
 metadata:
   name: cluster1-offline-demo
diff --git a/artifacts/offlineDemo/kubeanClusterOps.yml b/artifacts/offlineDemo/kubeanClusterOps.yml
index 4a2c811ef..465938f12 100644
--- a/artifacts/offlineDemo/kubeanClusterOps.yml
+++ b/artifacts/offlineDemo/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: cluster1-offline-demo-ops-1
diff --git a/charts/kubean/_crds/kubeanclusterops.kubean.io_kubeanclusterops.yaml b/charts/kubean/_crds/kubean.io_kubeanclusterops.yaml
similarity index 98%
rename from charts/kubean/_crds/kubeanclusterops.kubean.io_kubeanclusterops.yaml
rename to charts/kubean/_crds/kubean.io_kubeanclusterops.yaml
index 0ccb09b02..3011a2aa8 100644
--- a/charts/kubean/_crds/kubeanclusterops.kubean.io_kubeanclusterops.yaml
+++ b/charts/kubean/_crds/kubean.io_kubeanclusterops.yaml
@@ -6,9 +6,9 @@ metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.6.2
   creationTimestamp: null
-  name: kubeanclusterops.kubeanclusterops.kubean.io
+  name: kubeanclusterops.kubean.io
 spec:
-  group: kubeanclusterops.kubean.io
+  group: kubean.io
   names:
     kind: KuBeanClusterOps
     listKind: KuBeanClusterOpsList
diff --git a/charts/kubean/_crds/kubeancluster.kubean.io_kubeanclusters.yaml b/charts/kubean/_crds/kubean.io_kubeanclusters.yaml
similarity index 98%
rename from charts/kubean/_crds/kubeancluster.kubean.io_kubeanclusters.yaml
rename to charts/kubean/_crds/kubean.io_kubeanclusters.yaml
index 98bd9da3a..f4f2199ac 100644
--- a/charts/kubean/_crds/kubeancluster.kubean.io_kubeanclusters.yaml
+++ b/charts/kubean/_crds/kubean.io_kubeanclusters.yaml
@@ -6,9 +6,9 @@ metadata:
   annotations:
     controller-gen.kubebuilder.io/version: v0.6.2
   creationTimestamp: null
-  name: kubeanclusters.kubeancluster.kubean.io
+  name: kubeanclusters.kubean.io
 spec:
-  group: kubeancluster.kubean.io
+  group: kubean.io
   names:
     kind: KuBeanCluster
     listKind: KuBeanClusterList
diff --git a/doc/offline.zh.md b/doc/offline.zh.md
index 0ac3732c4..669dc00cb 100644
--- a/doc/offline.zh.md
+++ b/doc/offline.zh.md
@@ -176,7 +176,7 @@ sslverify=0
 由于创建源的过程涉及到集群的所有节点, 手动脚本操作相对繁琐, 这里提供了一种 playbook 的解决方式:
 
 ``` yaml
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: cluster-ops-01
diff --git a/pkg/controllers/cluster/controller.go b/pkg/controllers/cluster/controller.go
index 5b91ab2ce..8dc4c798d 100644
--- a/pkg/controllers/cluster/controller.go
+++ b/pkg/controllers/cluster/controller.go
@@ -73,7 +73,7 @@ func CompareClusterConditions(condAList, condBList []kubeanclusterv1alpha1.Clust
 
 func (c *Controller) UpdateStatus(cluster *kubeanclusterv1alpha1.KuBeanCluster) error {
 	listOpt := metav1.ListOptions{LabelSelector: fmt.Sprintf("clusterName=%s", cluster.Name)}
-	clusterOpsList, err := c.KubeanClusterOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.Background(), listOpt)
+	clusterOpsList, err := c.KubeanClusterOpsSet.KubeanV1alpha1().KuBeanClusterOps().List(context.Background(), listOpt)
 	if err != nil {
 		return err
 	}
@@ -102,7 +102,7 @@ func (c *Controller) UpdateStatus(cluster *kubeanclusterv1alpha1.KuBeanCluster)
 // CleanExcessClusterOps clean up excess KuBeanClusterOps.
 func (c *Controller) CleanExcessClusterOps(cluster *kubeanclusterv1alpha1.KuBeanCluster) (bool, error) {
 	listOpt := metav1.ListOptions{LabelSelector: fmt.Sprintf("clusterName=%s", cluster.Name)}
-	clusterOpsList, err := c.KubeanClusterOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.Background(), listOpt)
+	clusterOpsList, err := c.KubeanClusterOpsSet.KubeanV1alpha1().KuBeanClusterOps().List(context.Background(), listOpt)
 	if err != nil {
 		return false, err
 	}
@@ -117,7 +117,7 @@ func (c *Controller) CleanExcessClusterOps(cluster *kubeanclusterv1alpha1.KuBean
 	excessClusterOpsList := clusterOpsList.Items[OpsBackupNum:]
 	for _, item := range excessClusterOpsList {
 		klog.Warningf("Delete KuBeanClusterOps: name: %s, createTime: %s", item.Name, item.CreationTimestamp.String())
-		c.KubeanClusterOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Delete(context.Background(), item.Name, metav1.DeleteOptions{})
+		c.KubeanClusterOpsSet.KubeanV1alpha1().KuBeanClusterOps().Delete(context.Background(), item.Name, metav1.DeleteOptions{})
 	}
 	return true, nil
 }
diff --git a/pkg/controllers/clusterops/controller.go b/pkg/controllers/clusterops/controller.go
index b37308393..0b9346b49 100644
--- a/pkg/controllers/clusterops/controller.go
+++ b/pkg/controllers/clusterops/controller.go
@@ -151,7 +151,7 @@ func (c *Controller) FetchJobStatus(clusterOps *kubeanclusteropsv1alpha1.KuBeanC
 }
 
 func (c *Controller) ListClusterOps(clusterName string) ([]kubeanclusteropsv1alpha1.KuBeanClusterOps, error) {
-	list, err := c.KubeanClusterOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{constants.KubeanClusterLabelKey: clusterName}).String()})
+	list, err := c.KubeanClusterOpsSet.KubeanV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{LabelSelector: labels.SelectorFromSet(map[string]string{constants.KubeanClusterLabelKey: clusterName}).String()})
 	if err != nil {
 		return nil, err
 	}
@@ -459,7 +459,7 @@ func (c *Controller) CreateKubeSprayJob(clusterOps *kubeanclusteropsv1alpha1.KuB
 // GetKuBeanCluster fetch the cluster which clusterOps belongs to.
 func (c *Controller) GetKuBeanCluster(clusterOps *kubeanclusteropsv1alpha1.KuBeanClusterOps) (*kubeanclusterv1alpha1.KuBeanCluster, error) {
 	// cluster has many clusterOps.
-	return c.KubeanClusterSet.KubeanclusterV1alpha1().KuBeanClusters().Get(context.Background(), clusterOps.Spec.KuBeanCluster, metav1.GetOptions{})
+	return c.KubeanClusterSet.KubeanV1alpha1().KuBeanClusters().Get(context.Background(), clusterOps.Spec.KuBeanCluster, metav1.GetOptions{})
 }
 
 // CreateEntryPointShellConfigMap create configMap to store entrypoint.sh.
diff --git a/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/doc.go b/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/doc.go
index 19a511b40..7bde91537 100644
--- a/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/doc.go
+++ b/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/doc.go
@@ -1,4 +1,4 @@
 // Package v1alpha1 is the v1alpha1 version of the API.
 // +k8s:deepcopy-gen=package,register
-// +groupName=kubeancluster.kubean.io
+// +groupName=kubean.io
 package v1alpha1
diff --git a/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/zz_generated.register.go b/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/zz_generated.register.go
index d0b08dba1..e6a382795 100644
--- a/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/zz_generated.register.go
+++ b/vendor/kubean.io/api/apis/kubeancluster/v1alpha1/zz_generated.register.go
@@ -9,7 +9,7 @@ import (
 )
 
 // GroupName specifies the group name used to register the objects.
-const GroupName = "kubeancluster.kubean.io"
+const GroupName = "kubean.io"
 
 // GroupVersion specifies the group and the version used to register the objects.
 var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
diff --git a/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/doc.go b/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/doc.go
index d2235a9e6..7bde91537 100644
--- a/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/doc.go
+++ b/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/doc.go
@@ -1,4 +1,4 @@
 // Package v1alpha1 is the v1alpha1 version of the API.
 // +k8s:deepcopy-gen=package,register
-// +groupName=kubeanclusterops.kubean.io
+// +groupName=kubean.io
 package v1alpha1
diff --git a/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go b/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go
index 9e1c8bc75..7e82aed26 100644
--- a/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go
+++ b/vendor/kubean.io/api/apis/kubeanclusterops/v1alpha1/zz_generated.register.go
@@ -9,7 +9,7 @@ import (
 )
 
 // GroupName specifies the group name used to register the objects.
-const GroupName = "kubeanclusterops.kubean.io"
+const GroupName = "kubean.io"
 
 // GroupVersion specifies the group and the version used to register the objects.
 var GroupVersion = v1.GroupVersion{Group: GroupName, Version: "v1alpha1"}
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/clientset.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/clientset.go
index f5cfed731..710e685d8 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/clientset.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/clientset.go
@@ -9,24 +9,24 @@ import (
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
-	kubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
 )
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface
+	KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	kubeanclusterV1alpha1 *kubeanclusterv1alpha1.KubeanclusterV1alpha1Client
+	kubeanV1alpha1 *kubeanv1alpha1.KubeanV1alpha1Client
 }
 
-// KubeanclusterV1alpha1 retrieves the KubeanclusterV1alpha1Client
-func (c *Clientset) KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface {
-	return c.kubeanclusterV1alpha1
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return c.kubeanV1alpha1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -73,7 +73,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 
 	var cs Clientset
 	var err error
-	cs.kubeanclusterV1alpha1, err = kubeanclusterv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
+	cs.kubeanV1alpha1, err = kubeanv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +98,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.kubeanclusterV1alpha1 = kubeanclusterv1alpha1.New(c)
+	cs.kubeanV1alpha1 = kubeanv1alpha1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go
index e7c13285b..c95c91d5e 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/clientset_generated.go
@@ -9,8 +9,8 @@ import (
 	fakediscovery "k8s.io/client-go/discovery/fake"
 	"k8s.io/client-go/testing"
 	clientset "kubean.io/api/generated/kubeancluster/clientset/versioned"
-	kubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
-	fakekubeanclusterv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
+	fakekubeanv1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake"
 )
 
 // NewSimpleClientset returns a clientset that will respond with the provided objects.
@@ -63,7 +63,7 @@ var (
 	_ testing.FakeClient  = &Clientset{}
 )
 
-// KubeanclusterV1alpha1 retrieves the KubeanclusterV1alpha1Client
-func (c *Clientset) KubeanclusterV1alpha1() kubeanclusterv1alpha1.KubeanclusterV1alpha1Interface {
-	return &fakekubeanclusterv1alpha1.FakeKubeanclusterV1alpha1{Fake: &c.Fake}
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return &fakekubeanv1alpha1.FakeKubeanV1alpha1{Fake: &c.Fake}
 }
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/register.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/register.go
index e1f9ed017..a8126cdac 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/register.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/fake/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
 )
 
 var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusterv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/scheme/register.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/scheme/register.go
index 6c9231ef1..74dece76a 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/scheme/register.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/scheme/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
 )
 
 var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusterv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
index d0047ce8b..8d19207dd 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster.go
@@ -16,12 +16,12 @@ import (
 
 // FakeKuBeanClusters implements KuBeanClusterInterface
 type FakeKuBeanClusters struct {
-	Fake *FakeKubeanclusterV1alpha1
+	Fake *FakeKubeanV1alpha1
 }
 
-var kubeanclustersResource = schema.GroupVersionResource{Group: "kubeancluster.kubean.io", Version: "v1alpha1", Resource: "kubeanclusters"}
+var kubeanclustersResource = schema.GroupVersionResource{Group: "kubean.io", Version: "v1alpha1", Resource: "kubeanclusters"}
 
-var kubeanclustersKind = schema.GroupVersionKind{Group: "kubeancluster.kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"}
+var kubeanclustersKind = schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"}
 
 // Get takes name of the kuBeanCluster, and returns the corresponding kuBeanCluster object, and an error if there is any.
 func (c *FakeKuBeanClusters) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KuBeanCluster, err error) {
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
index 3ef7c372e..722119b6d 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/fake/fake_kubeancluster_client.go
@@ -8,17 +8,17 @@ import (
 	v1alpha1 "kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1"
 )
 
-type FakeKubeanclusterV1alpha1 struct {
+type FakeKubeanV1alpha1 struct {
 	*testing.Fake
 }
 
-func (c *FakeKubeanclusterV1alpha1) KuBeanClusters() v1alpha1.KuBeanClusterInterface {
+func (c *FakeKubeanV1alpha1) KuBeanClusters() v1alpha1.KuBeanClusterInterface {
 	return &FakeKuBeanClusters{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeKubeanclusterV1alpha1) RESTClient() rest.Interface {
+func (c *FakeKubeanV1alpha1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
index 21478630d..839b16eb4 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster.go
@@ -40,7 +40,7 @@ type kuBeanClusters struct {
 }
 
 // newKuBeanClusters returns a KuBeanClusters
-func newKuBeanClusters(c *KubeanclusterV1alpha1Client) *kuBeanClusters {
+func newKuBeanClusters(c *KubeanV1alpha1Client) *kuBeanClusters {
 	return &kuBeanClusters{
 		client: c.RESTClient(),
 	}
diff --git a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
index 9cd53f212..6ae42dfbf 100644
--- a/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
+++ b/vendor/kubean.io/api/generated/kubeancluster/clientset/versioned/typed/kubeancluster/v1alpha1/kubeancluster_client.go
@@ -10,24 +10,24 @@ import (
 	"kubean.io/api/generated/kubeancluster/clientset/versioned/scheme"
 )
 
-type KubeanclusterV1alpha1Interface interface {
+type KubeanV1alpha1Interface interface {
 	RESTClient() rest.Interface
 	KuBeanClustersGetter
 }
 
-// KubeanclusterV1alpha1Client is used to interact with features provided by the kubeancluster.kubean.io group.
-type KubeanclusterV1alpha1Client struct {
+// KubeanV1alpha1Client is used to interact with features provided by the kubean.io group.
+type KubeanV1alpha1Client struct {
 	restClient rest.Interface
 }
 
-func (c *KubeanclusterV1alpha1Client) KuBeanClusters() KuBeanClusterInterface {
+func (c *KubeanV1alpha1Client) KuBeanClusters() KuBeanClusterInterface {
 	return newKuBeanClusters(c)
 }
 
-// NewForConfig creates a new KubeanclusterV1alpha1Client for the given config.
+// NewForConfig creates a new KubeanV1alpha1Client for the given config.
 // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
 // where httpClient was generated with rest.HTTPClientFor(c).
-func NewForConfig(c *rest.Config) (*KubeanclusterV1alpha1Client, error) {
+func NewForConfig(c *rest.Config) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -39,9 +39,9 @@ func NewForConfig(c *rest.Config) (*KubeanclusterV1alpha1Client, error) {
 	return NewForConfigAndClient(&config, httpClient)
 }
 
-// NewForConfigAndClient creates a new KubeanclusterV1alpha1Client for the given config and http client.
+// NewForConfigAndClient creates a new KubeanV1alpha1Client for the given config and http client.
 // Note the http client provided takes precedence over the configured transport values.
-func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusterV1alpha1Client, error) {
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -50,12 +50,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusterV1alph
 	if err != nil {
 		return nil, err
 	}
-	return &KubeanclusterV1alpha1Client{client}, nil
+	return &KubeanV1alpha1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new KubeanclusterV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new KubeanV1alpha1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *KubeanclusterV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *KubeanV1alpha1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -63,9 +63,9 @@ func NewForConfigOrDie(c *rest.Config) *KubeanclusterV1alpha1Client {
 	return client
 }
 
-// New creates a new KubeanclusterV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *KubeanclusterV1alpha1Client {
-	return &KubeanclusterV1alpha1Client{c}
+// New creates a new KubeanV1alpha1Client for the given RESTClient.
+func New(c rest.Interface) *KubeanV1alpha1Client {
+	return &KubeanV1alpha1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
@@ -83,7 +83,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *KubeanclusterV1alpha1Client) RESTClient() rest.Interface {
+func (c *KubeanV1alpha1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/clientset.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/clientset.go
index 05601865b..43499f3e8 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/clientset.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/clientset.go
@@ -9,24 +9,24 @@ import (
 	discovery "k8s.io/client-go/discovery"
 	rest "k8s.io/client-go/rest"
 	flowcontrol "k8s.io/client-go/util/flowcontrol"
-	kubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
 )
 
 type Interface interface {
 	Discovery() discovery.DiscoveryInterface
-	KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface
+	KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface
 }
 
 // Clientset contains the clients for groups. Each group has exactly one
 // version included in a Clientset.
 type Clientset struct {
 	*discovery.DiscoveryClient
-	kubeanclusteropsV1alpha1 *kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Client
+	kubeanV1alpha1 *kubeanv1alpha1.KubeanV1alpha1Client
 }
 
-// KubeanclusteropsV1alpha1 retrieves the KubeanclusteropsV1alpha1Client
-func (c *Clientset) KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface {
-	return c.kubeanclusteropsV1alpha1
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return c.kubeanV1alpha1
 }
 
 // Discovery retrieves the DiscoveryClient
@@ -73,7 +73,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset,
 
 	var cs Clientset
 	var err error
-	cs.kubeanclusteropsV1alpha1, err = kubeanclusteropsv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
+	cs.kubeanV1alpha1, err = kubeanv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)
 	if err != nil {
 		return nil, err
 	}
@@ -98,7 +98,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset {
 // New creates a new Clientset for the given RESTClient.
 func New(c rest.Interface) *Clientset {
 	var cs Clientset
-	cs.kubeanclusteropsV1alpha1 = kubeanclusteropsv1alpha1.New(c)
+	cs.kubeanV1alpha1 = kubeanv1alpha1.New(c)
 
 	cs.DiscoveryClient = discovery.NewDiscoveryClient(c)
 	return &cs
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
index 93a16e1fd..3d34267de 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/clientset_generated.go
@@ -9,8 +9,8 @@ import (
 	fakediscovery "k8s.io/client-go/discovery/fake"
 	"k8s.io/client-go/testing"
 	clientset "kubean.io/api/generated/kubeanclusterops/clientset/versioned"
-	kubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
-	fakekubeanclusteropsv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake"
+	kubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
+	fakekubeanv1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake"
 )
 
 // NewSimpleClientset returns a clientset that will respond with the provided objects.
@@ -63,7 +63,7 @@ var (
 	_ testing.FakeClient  = &Clientset{}
 )
 
-// KubeanclusteropsV1alpha1 retrieves the KubeanclusteropsV1alpha1Client
-func (c *Clientset) KubeanclusteropsV1alpha1() kubeanclusteropsv1alpha1.KubeanclusteropsV1alpha1Interface {
-	return &fakekubeanclusteropsv1alpha1.FakeKubeanclusteropsV1alpha1{Fake: &c.Fake}
+// KubeanV1alpha1 retrieves the KubeanV1alpha1Client
+func (c *Clientset) KubeanV1alpha1() kubeanv1alpha1.KubeanV1alpha1Interface {
+	return &fakekubeanv1alpha1.FakeKubeanV1alpha1{Fake: &c.Fake}
 }
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/register.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/register.go
index c7822e1ef..365858286 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/register.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/fake/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 )
 
 var scheme = runtime.NewScheme()
 var codecs = serializer.NewCodecFactory(scheme)
 
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusteropsv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go
index e1f7dc325..62f109638 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme/register.go
@@ -8,14 +8,14 @@ import (
 	schema "k8s.io/apimachinery/pkg/runtime/schema"
 	serializer "k8s.io/apimachinery/pkg/runtime/serializer"
 	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
-	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
+	kubeanv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 )
 
 var Scheme = runtime.NewScheme()
 var Codecs = serializer.NewCodecFactory(Scheme)
 var ParameterCodec = runtime.NewParameterCodec(Scheme)
 var localSchemeBuilder = runtime.SchemeBuilder{
-	kubeanclusteropsv1alpha1.AddToScheme,
+	kubeanv1alpha1.AddToScheme,
 }
 
 // AddToScheme adds all types of this clientset into the given scheme. This allows composition
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
index 0c2d31b7b..708b12ce5 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops.go
@@ -16,12 +16,12 @@ import (
 
 // FakeKuBeanClusterOps implements KuBeanClusterOpsInterface
 type FakeKuBeanClusterOps struct {
-	Fake *FakeKubeanclusteropsV1alpha1
+	Fake *FakeKubeanV1alpha1
 }
 
-var kubeanclusteropsResource = schema.GroupVersionResource{Group: "kubeanclusterops.kubean.io", Version: "v1alpha1", Resource: "kubeanclusterops"}
+var kubeanclusteropsResource = schema.GroupVersionResource{Group: "kubean.io", Version: "v1alpha1", Resource: "kubeanclusterops"}
 
-var kubeanclusteropsKind = schema.GroupVersionKind{Group: "kubeanclusterops.kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"}
+var kubeanclusteropsKind = schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"}
 
 // Get takes name of the kuBeanClusterOps, and returns the corresponding kuBeanClusterOps object, and an error if there is any.
 func (c *FakeKuBeanClusterOps) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KuBeanClusterOps, err error) {
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
index 2a5a687b2..db22950e3 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/fake/fake_kubeanclusterops_client.go
@@ -8,17 +8,17 @@ import (
 	v1alpha1 "kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1"
 )
 
-type FakeKubeanclusteropsV1alpha1 struct {
+type FakeKubeanV1alpha1 struct {
 	*testing.Fake
 }
 
-func (c *FakeKubeanclusteropsV1alpha1) KuBeanClusterOps() v1alpha1.KuBeanClusterOpsInterface {
+func (c *FakeKubeanV1alpha1) KuBeanClusterOps() v1alpha1.KuBeanClusterOpsInterface {
 	return &FakeKuBeanClusterOps{c}
 }
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *FakeKubeanclusteropsV1alpha1) RESTClient() rest.Interface {
+func (c *FakeKubeanV1alpha1) RESTClient() rest.Interface {
 	var ret *rest.RESTClient
 	return ret
 }
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
index 70a5130a1..968121136 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops.go
@@ -40,7 +40,7 @@ type kuBeanClusterOps struct {
 }
 
 // newKuBeanClusterOps returns a KuBeanClusterOps
-func newKuBeanClusterOps(c *KubeanclusteropsV1alpha1Client) *kuBeanClusterOps {
+func newKuBeanClusterOps(c *KubeanV1alpha1Client) *kuBeanClusterOps {
 	return &kuBeanClusterOps{
 		client: c.RESTClient(),
 	}
diff --git a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
index 5df016b54..2b1e782a2 100644
--- a/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
+++ b/vendor/kubean.io/api/generated/kubeanclusterops/clientset/versioned/typed/kubeanclusterops/v1alpha1/kubeanclusterops_client.go
@@ -10,24 +10,24 @@ import (
 	"kubean.io/api/generated/kubeanclusterops/clientset/versioned/scheme"
 )
 
-type KubeanclusteropsV1alpha1Interface interface {
+type KubeanV1alpha1Interface interface {
 	RESTClient() rest.Interface
 	KuBeanClusterOpsGetter
 }
 
-// KubeanclusteropsV1alpha1Client is used to interact with features provided by the kubeanclusterops.kubean.io group.
-type KubeanclusteropsV1alpha1Client struct {
+// KubeanV1alpha1Client is used to interact with features provided by the kubean.io group.
+type KubeanV1alpha1Client struct {
 	restClient rest.Interface
 }
 
-func (c *KubeanclusteropsV1alpha1Client) KuBeanClusterOps() KuBeanClusterOpsInterface {
+func (c *KubeanV1alpha1Client) KuBeanClusterOps() KuBeanClusterOpsInterface {
 	return newKuBeanClusterOps(c)
 }
 
-// NewForConfig creates a new KubeanclusteropsV1alpha1Client for the given config.
+// NewForConfig creates a new KubeanV1alpha1Client for the given config.
 // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),
 // where httpClient was generated with rest.HTTPClientFor(c).
-func NewForConfig(c *rest.Config) (*KubeanclusteropsV1alpha1Client, error) {
+func NewForConfig(c *rest.Config) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -39,9 +39,9 @@ func NewForConfig(c *rest.Config) (*KubeanclusteropsV1alpha1Client, error) {
 	return NewForConfigAndClient(&config, httpClient)
 }
 
-// NewForConfigAndClient creates a new KubeanclusteropsV1alpha1Client for the given config and http client.
+// NewForConfigAndClient creates a new KubeanV1alpha1Client for the given config and http client.
 // Note the http client provided takes precedence over the configured transport values.
-func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusteropsV1alpha1Client, error) {
+func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanV1alpha1Client, error) {
 	config := *c
 	if err := setConfigDefaults(&config); err != nil {
 		return nil, err
@@ -50,12 +50,12 @@ func NewForConfigAndClient(c *rest.Config, h *http.Client) (*KubeanclusteropsV1a
 	if err != nil {
 		return nil, err
 	}
-	return &KubeanclusteropsV1alpha1Client{client}, nil
+	return &KubeanV1alpha1Client{client}, nil
 }
 
-// NewForConfigOrDie creates a new KubeanclusteropsV1alpha1Client for the given config and
+// NewForConfigOrDie creates a new KubeanV1alpha1Client for the given config and
 // panics if there is an error in the config.
-func NewForConfigOrDie(c *rest.Config) *KubeanclusteropsV1alpha1Client {
+func NewForConfigOrDie(c *rest.Config) *KubeanV1alpha1Client {
 	client, err := NewForConfig(c)
 	if err != nil {
 		panic(err)
@@ -63,9 +63,9 @@ func NewForConfigOrDie(c *rest.Config) *KubeanclusteropsV1alpha1Client {
 	return client
 }
 
-// New creates a new KubeanclusteropsV1alpha1Client for the given RESTClient.
-func New(c rest.Interface) *KubeanclusteropsV1alpha1Client {
-	return &KubeanclusteropsV1alpha1Client{c}
+// New creates a new KubeanV1alpha1Client for the given RESTClient.
+func New(c rest.Interface) *KubeanV1alpha1Client {
+	return &KubeanV1alpha1Client{c}
 }
 
 func setConfigDefaults(config *rest.Config) error {
@@ -83,7 +83,7 @@ func setConfigDefaults(config *rest.Config) error {
 
 // RESTClient returns a RESTClient that is used to communicate
 // with API server by this client implementation.
-func (c *KubeanclusteropsV1alpha1Client) RESTClient() rest.Interface {
+func (c *KubeanV1alpha1Client) RESTClient() rest.Interface {
 	if c == nil {
 		return nil
 	}


Test patch:
diff --git a/pkg/util/cluster_test.go b/pkg/util/cluster_test.go
index 007381518..39e68a5f6 100644
--- a/pkg/util/cluster_test.go
+++ b/pkg/util/cluster_test.go
@@ -6,6 +6,8 @@ import (
 	"k8s.io/apimachinery/pkg/runtime"
 	"k8s.io/apimachinery/pkg/runtime/schema"
 
+	kubeanclusterv1alpha1 "kubean.io/api/apis/kubeancluster/v1alpha1"
+	kubeanclusteropsv1alpha1 "kubean.io/api/apis/kubeanclusterops/v1alpha1"
 	kubeaninfomanifestv1alpha1 "kubean.io/api/apis/kubeaninfomanifest/v1alpha1"
 	kubeanofflineversionv1alpha1 "kubean.io/api/apis/kubeanofflineversion/v1alpha1"
 )
@@ -27,6 +29,16 @@ func TestNewSchema(t *testing.T) {
 			obj:     &kubeanofflineversionv1alpha1.KuBeanOfflineVersion{},
 			wantGVK: schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanOfflineVersion"},
 		},
+		{
+			name:    "KuBeanCluster gvk",
+			obj:     &kubeanclusterv1alpha1.KuBeanCluster{},
+			wantGVK: schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanCluster"},
+		},
+		{
+			name:    "KuBeanClusterOps gvk",
+			obj:     &kubeanclusteropsv1alpha1.KuBeanClusterOps{},
+			wantGVK: schema.GroupVersionKind{Group: "kubean.io", Version: "v1alpha1", Kind: "KuBeanClusterOps"},
+		},
 	}
 	for _, test := range tests {
 		t.Run(test.name, func(t *testing.T) {
diff --git a/test/common/kubeanCluster.yml b/test/common/kubeanCluster.yml
index f9271bac8..ba991c6dd 100644
--- a/test/common/kubeanCluster.yml
+++ b/test/common/kubeanCluster.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeancluster.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanCluster
 metadata:
   name: cluster1
diff --git a/test/kubeanOps_functions_e2e/backofflimit-clusterops/kubeanClusterOps.yml b/test/kubeanOps_functions_e2e/backofflimit-clusterops/kubeanClusterOps.yml
index 1cc0a710a..f7a60d1b3 100644
--- a/test/kubeanOps_functions_e2e/backofflimit-clusterops/kubeanClusterOps.yml
+++ b/test/kubeanOps_functions_e2e/backofflimit-clusterops/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: backofflimit0-clusterops-test
diff --git a/test/kubeanOps_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml b/test/kubeanOps_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml
index cbe0a5624..8fdae3f79 100644
--- a/test/kubeanOps_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml
+++ b/test/kubeanOps_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: e2e-cluster1-ops1
diff --git a/test/kubeanOps_functions_e2e/kubeanOps_test.go b/test/kubeanOps_functions_e2e/kubeanOps_test.go
index 70efe51c8..715420e51 100644
--- a/test/kubeanOps_functions_e2e/kubeanOps_test.go
+++ b/test/kubeanOps_functions_e2e/kubeanOps_test.go
@@ -33,7 +33,7 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 		out, _ := tools.DoCmd(*cmd)
 		fmt.Println(out.String())
 		for {
-			clusterOps, _ := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
+			clusterOps, _ := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
 			status := string(clusterOps.Status.Status)
 			ginkgo.GinkgoWriter.Printf("* wait for ops status: %s\n", status)
 			if status == "Running" {
@@ -53,7 +53,7 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 		out, _ = tools.DoCmd(*cmd)
 		fmt.Println(out.String())
 		for {
-			clusterOpsSecond, _ := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsNameSecond, metav1.GetOptions{})
+			clusterOpsSecond, _ := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsNameSecond, metav1.GetOptions{})
 			statusSecond := string(clusterOpsSecond.Status.Status)
 			if statusSecond == "" {
 				time.Sleep(10 * time.Second)
@@ -65,10 +65,10 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 			}
 		}
 		//delete all ops to prepare for the next testcase
-		clusterOpsList, _ := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{})
+		clusterOpsList, _ := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{})
 		for _, ops := range clusterOpsList.Items {
 			fmt.Println("delete cluster1 clusterOps: ", ops.Name)
-			clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Delete(context.Background(), ops.Name, metav1.DeleteOptions{})
+			clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Delete(context.Background(), ops.Name, metav1.DeleteOptions{})
 		}
 
 	})
@@ -84,7 +84,7 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 			time.Sleep(10 * time.Second)
 		}
 		// step2 check cluster1 should exists 5 ops
-		clusterOpsList, _ := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{})
+		clusterOpsList, _ := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{})
 		fmt.Println("step2 - clusterOps count in cluster1: ", len(clusterOpsList.Items))
 		ginkgo.It("the cluster1 should exists 5 ops", func() {
 			gomega.Expect(len(clusterOpsList.Items)).Should(gomega.BeNumerically("==", 5))
@@ -98,7 +98,7 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 		fmt.Println(out.String())
 		// step4 check the oldest ops is removed
 		for {
-			_, err := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Get(context.Background(), "e2e-cluster1-ops-copies1", metav1.GetOptions{})
+			_, err := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Get(context.Background(), "e2e-cluster1-ops-copies1", metav1.GetOptions{})
 			if err == nil {
 				time.Sleep(5 * time.Second)
 			} else {
@@ -109,10 +109,10 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 		}
 
 		//delete all ops to prepare for the next testcase
-		clusterOpsList, _ = clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{})
+		clusterOpsList, _ = clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().List(context.Background(), metav1.ListOptions{})
 		for _, ops := range clusterOpsList.Items {
 			fmt.Println("delete cluster1 clusterOps: ", ops.Name)
-			clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Delete(context.Background(), ops.Name, metav1.DeleteOptions{})
+			clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Delete(context.Background(), ops.Name, metav1.DeleteOptions{})
 		}
 	})
 
@@ -126,7 +126,7 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 		out, _ := tools.DoCmd(*cmd)
 		fmt.Println(out.String())
 		for {
-			clusterOps, _ := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
+			clusterOps, _ := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
 			status := string(clusterOps.Status.Status)
 			ginkgo.GinkgoWriter.Printf("* wait for e2e-hasmodified-ops status: %s\n", status)
 			if status == "Running" {
@@ -139,12 +139,12 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 			}
 		}
 	})
-	clusterOps, err := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
+	clusterOps, err := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
 	fmt.Println("before patch e2e-hasmodified-ops KuBeanClusterOps.Spec.Action: ", clusterOps.Spec.Action)
 	gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed to check e2e-hasmodified-ops KuBeanClusterOps Spec.hasModified")
 	ginkgo.Context("when fetching e2e-hasmodified-ops KuBeanClusterOps", func() {
 		clusterOps.Spec.Action = "e2e-hasmodified-ops"
-		newClusterOps, err := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Update(context.Background(), clusterOps, metav1.UpdateOptions{})
+		newClusterOps, err := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Update(context.Background(), clusterOps, metav1.UpdateOptions{})
 		time.Sleep(30 * time.Second)
 		fmt.Println(newClusterOps.Spec.Action)
 		ginkgo.It("e2e-hasmodified-ops KuBeanClusterOps.Spec.Action update success", func() {
@@ -152,7 +152,7 @@ var _ = ginkgo.Describe("kubean ops e2e test", func() {
 			gomega.Expect(string(newClusterOps.Spec.Action)).Should(gomega.ContainSubstring("e2e-hasmodified-ops"))
 		})
 		for {
-			updatedClusterOps, _ := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
+			updatedClusterOps, _ := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Get(context.Background(), clusterOpsName, metav1.GetOptions{})
 			hasModified := updatedClusterOps.Status.HasModified
 			if hasModified {
 				ginkgo.It("KuBeanClusterOps.Status.hasModified should be true", func() {
diff --git a/test/kubean_add_remove_worker_e2e/add-worker-node/kubeanClusterOps.yml b/test/kubean_add_remove_worker_e2e/add-worker-node/kubeanClusterOps.yml
index 8a4c9fe88..814892116 100644
--- a/test/kubean_add_remove_worker_e2e/add-worker-node/kubeanClusterOps.yml
+++ b/test/kubean_add_remove_worker_e2e/add-worker-node/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: cluster1-add-worker-ops
diff --git a/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanCluster.yml b/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanCluster.yml
index e7f5aad81..689bc7d12 100644
--- a/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanCluster.yml
+++ b/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanCluster.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeancluster.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanCluster
 metadata:
   name: cluster1
diff --git a/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanClusterOps.yml b/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanClusterOps.yml
index 6488d8b89..bc48ce682 100644
--- a/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanClusterOps.yml
+++ b/test/kubean_add_remove_worker_e2e/e2e-install-1node-cluster-prikey/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: e2e-1node-cluster-install
diff --git a/test/kubean_add_remove_worker_e2e/kubean_add_remove_worker_test.go b/test/kubean_add_remove_worker_e2e/kubean_add_remove_worker_test.go
index e271d9330..7fd7b9192 100644
--- a/test/kubean_add_remove_worker_e2e/kubean_add_remove_worker_test.go
+++ b/test/kubean_add_remove_worker_e2e/kubean_add_remove_worker_test.go
@@ -113,7 +113,7 @@ var _ = ginkgo.Describe("e2e add worker node operation", func() {
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed new client set")
 
 		// from KuBeanCluster: cluster1 get kubeconfRef: name: cluster1-kubeconf namespace: kubean-system
-		cluster1, err := clusterClientSet.KubeanclusterV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
+		cluster1, err := clusterClientSet.KubeanV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
 		fmt.Println("Name:", cluster1.Spec.KubeConfRef.Name, "NameSpace:", cluster1.Spec.KubeConfRef.NameSpace)
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed to get KuBeanCluster")
 
diff --git a/test/kubean_add_remove_worker_e2e/remove-worker-node/kubeanClusterOps.yml b/test/kubean_add_remove_worker_e2e/remove-worker-node/kubeanClusterOps.yml
index 3864195f6..b92533043 100644
--- a/test/kubean_add_remove_worker_e2e/remove-worker-node/kubeanClusterOps.yml
+++ b/test/kubean_add_remove_worker_e2e/remove-worker-node/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: cluster1-remove-worker-ops
diff --git a/test/kubean_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml b/test/kubean_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml
index d552f180d..f998f2116 100644
--- a/test/kubean_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml
+++ b/test/kubean_functions_e2e/e2e-install-cluster/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: e2e-cluster1-install
diff --git a/test/kubean_functions_e2e/e2e-reset-cluster/kubeanClusterOps.yml b/test/kubean_functions_e2e/e2e-reset-cluster/kubeanClusterOps.yml
index c1c0c385a..7a896b4ea 100644
--- a/test/kubean_functions_e2e/e2e-reset-cluster/kubeanClusterOps.yml
+++ b/test/kubean_functions_e2e/e2e-reset-cluster/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: e2e-cluster1-reset
diff --git a/test/kubean_functions_e2e/kubean_cluster_install_test.go b/test/kubean_functions_e2e/kubean_cluster_install_test.go
index cf9ee647f..e45c23bff 100644
--- a/test/kubean_functions_e2e/kubean_cluster_install_test.go
+++ b/test/kubean_functions_e2e/kubean_cluster_install_test.go
@@ -78,7 +78,7 @@ var _ = ginkgo.Describe("e2e test cluster operation", func() {
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed new client set")
 
 		// from KuBeanCluster: cluster1 get kubeconfRef: name: cluster1-kubeconf namespace: kubean-system
-		cluster1, err := clusterClientSet.KubeanclusterV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
+		cluster1, err := clusterClientSet.KubeanV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
 		fmt.Println("Name:", cluster1.Spec.KubeConfRef.Name, "NameSpace:", cluster1.Spec.KubeConfRef.NameSpace)
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed to get KuBeanCluster")
 
@@ -401,7 +401,7 @@ var _ = ginkgo.Describe("e2e test cluster operation", func() {
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed new client set")
 
 		// from KuBeanCluster: cluster1 get kubeconfRef: name: cluster1-kubeconf namespace: kubean-system
-		cluster1, err := clusterClientSet.KubeanclusterV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
+		cluster1, err := clusterClientSet.KubeanV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
 		fmt.Println("Name:", cluster1.Spec.KubeConfRef.Name, "NameSpace:", cluster1.Spec.KubeConfRef.NameSpace)
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed to get KuBeanCluster")
 
diff --git a/test/kubean_sonobouy_e2e/e2e-install-cluster-sonobouy/kubeanClusterOps.yml b/test/kubean_sonobouy_e2e/e2e-install-cluster-sonobouy/kubeanClusterOps.yml
index a9dfff0e1..f164df2b9 100644
--- a/test/kubean_sonobouy_e2e/e2e-install-cluster-sonobouy/kubeanClusterOps.yml
+++ b/test/kubean_sonobouy_e2e/e2e-install-cluster-sonobouy/kubeanClusterOps.yml
@@ -1,4 +1,4 @@
-apiVersion: kubeanclusterops.kubean.io/v1alpha1
+apiVersion: kubean.io/v1alpha1
 kind: KuBeanClusterOps
 metadata:
   name: e2e-cluster1-install-sonobouy
diff --git a/test/kubean_sonobouy_e2e/kubean_cluster_sonobouy_test.go b/test/kubean_sonobouy_e2e/kubean_cluster_sonobouy_test.go
index 0ca6cb55d..25a1a3ac1 100644
--- a/test/kubean_sonobouy_e2e/kubean_cluster_sonobouy_test.go
+++ b/test/kubean_sonobouy_e2e/kubean_cluster_sonobouy_test.go
@@ -66,7 +66,7 @@ var _ = ginkgo.Describe("e2e test cluster 1 master + 1 worker sonobouy check", f
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed new client set")
 
 		// from KuBeanCluster: cluster1 get kubeconfRef: name: cluster1-kubeconf namespace: kubean-system
-		cluster1, err := clusterClientSet.KubeanclusterV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
+		cluster1, err := clusterClientSet.KubeanV1alpha1().KuBeanClusters().Get(context.Background(), "cluster1", metav1.GetOptions{})
 		fmt.Println("Name:", cluster1.Spec.KubeConfRef.Name, "NameSpace:", cluster1.Spec.KubeConfRef.NameSpace)
 		gomega.ExpectWithOffset(2, err).NotTo(gomega.HaveOccurred(), "failed to get KuBeanCluster")
 
diff --git a/test/tools/kubean_create_CR.go b/test/tools/kubean_create_CR.go
index 939a8d2a3..e9bcf970d 100644
--- a/test/tools/kubean_create_CR.go
+++ b/test/tools/kubean_create_CR.go
@@ -165,17 +165,17 @@ func CreatCR() {
 	hostsDataRef := apis.ConfigMapRef{Name: hostsConfigMapName, NameSpace: kubeanNamespace}
 	varsDataRef := apis.ConfigMapRef{Name: varsConfigMapName, NameSpace: kubeanNamespace}
 	kubeclusterObj := &kubeancluster.KuBeanCluster{
-		TypeMeta:   metav1.TypeMeta{Kind: "KuBeanCluster", APIVersion: "kubeancluster.kubean.io/v1alpha1"},
+		TypeMeta:   metav1.TypeMeta{Kind: "KuBeanCluster", APIVersion: "kubean.io/v1alpha1"},
 		ObjectMeta: metav1.ObjectMeta{Name: kubeClusterName, Labels: map[string]string{"ClusterName": kubeClusterLabelName}},
 		Spec:       kubeancluster.Spec{HostsConfRef: &hostsDataRef, VarsConfRef: &varsDataRef},
 	}
-	_, err = clusterClientSet.KubeanclusterV1alpha1().KuBeanClusters().Get(context.Background(), kubeClusterName, metav1.GetOptions{})
+	_, err = clusterClientSet.KubeanV1alpha1().KuBeanClusters().Get(context.Background(), kubeClusterName, metav1.GetOptions{})
 	if err != nil {
 		if !apierrors.IsNotFound(err) {
 			fmt.Println(err)
 			return
 		}
-		result, err := clusterClientSet.KubeanclusterV1alpha1().KuBeanClusters().Create(context.Background(), kubeclusterObj, metav1.CreateOptions{})
+		result, err := clusterClientSet.KubeanV1alpha1().KuBeanClusters().Create(context.Background(), kubeclusterObj, metav1.CreateOptions{})
 		if err != nil {
 			panic(err)
 		}
@@ -197,7 +197,7 @@ func CreatCR() {
 	kubeclusterOpsObj := &kubeanclusterops.KuBeanClusterOps{
 		TypeMeta: metav1.TypeMeta{
 			Kind:       "KuBeanClusterOps",
-			APIVersion: "kubeanclusterops.kubean.io/v1alpha1",
+			APIVersion: "kubean.io/v1alpha1",
 		},
 		ObjectMeta: metav1.ObjectMeta{
 			Name: kubeanClusterOpsName,
@@ -215,7 +215,7 @@ func CreatCR() {
 			PostHook:      postHook,
 		},
 	}
-	result1, err := clusterClientOpsSet.KubeanclusteropsV1alpha1().KuBeanClusterOps().Create(context.Background(), kubeclusterOpsObj, metav1.CreateOptions{})
+	result1, err := clusterClientOpsSet.KubeanV1alpha1().KuBeanClusterOps().Create(context.Background(), kubeclusterOpsObj, metav1.CreateOptions{})
 	if err != nil {
 		panic(err)
 	}