diff --git a/docs/user_docs/cli/kbcli_cluster_create_elasticsearch.md b/docs/user_docs/cli/kbcli_cluster_create_elasticsearch.md index cdb523001..791bdbe8b 100644 --- a/docs/user_docs/cli/kbcli_cluster_create_elasticsearch.md +++ b/docs/user_docs/cli/kbcli_cluster_create_elasticsearch.md @@ -31,7 +31,7 @@ kbcli cluster create elasticsearch NAME [flags] --node-labels stringToString Node label selector (default []) -o, --output format Prints the output in the specified format. Allowed values: JSON and YAML (default yaml) --pod-anti-affinity string Pod anti-affinity type, one of: (Preferred, Required) (default "Preferred") - --rbac-enabled Specify whether rbac resources will be created by client, otherwise KubeBlocks server will try to create rbac resources. (default true) + --rbac-enabled Specify whether rbac resources will be created by client, otherwise KubeBlocks server will try to create rbac resources. --replicas int The number of replicas, for single-node mode, the replicas is 1, for multi-node mode, the default replicas is 3. Value range [1, 5]. (default 1) --storage float Storage size, the unit is Gi. Value range [1, 10000]. (default 20) --tenancy string Tenancy options, one of: (SharedNode, DedicatedNode) (default "SharedNode") diff --git a/docs/user_docs/cli/kbcli_cluster_delete.md b/docs/user_docs/cli/kbcli_cluster_delete.md index 2f68418b8..09dcdcf17 100644 --- a/docs/user_docs/cli/kbcli_cluster_delete.md +++ b/docs/user_docs/cli/kbcli_cluster_delete.md @@ -26,7 +26,6 @@ kbcli cluster delete NAME [flags] --grace-period int Period of time in seconds given to the resource to terminate gracefully. Ignored if negative. Set to 1 for immediate shutdown. Can only be set to 0 when --force is true (force deletion). (default -1) -h, --help help for delete --now If true, resources are signaled for immediate shutdown (same as --grace-period=1). - --rbac-enabled Specify whether rbac resources will be deleted by kbcli -l, --selector string Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2). Matching objects must satisfy all of the specified label constraints. ``` diff --git a/pkg/cmd/cluster/create_util.go b/pkg/cmd/cluster/create_util.go index e52a86a45..7c006b42b 100644 --- a/pkg/cmd/cluster/create_util.go +++ b/pkg/cmd/cluster/create_util.go @@ -38,11 +38,7 @@ import ( ) var ( - resetEngineFlagValues = map[string]map[string]string{ - "elasticsearch": { - "rbac-enabled": "true", - }, - } + resetEngineFlagValues = map[string]map[string]string{} ) // addCreateFlags adds the flags for creating a cluster, these flags are built by the cluster schema. @@ -61,7 +57,7 @@ func addCreateFlags(cmd *cobra.Command, f cmdutil.Factory, c *cluster.ChartInfo, return err } - // reset engine related flags default value, such as rbac-enabled for elasticsearch should be true by default + // reset engine related flags default value resetEngineDefaultFlagsValue(cmd.Flags(), engine) return nil } diff --git a/pkg/cmd/cluster/delete.go b/pkg/cmd/cluster/delete.go index f4194837c..e0688801c 100644 --- a/pkg/cmd/cluster/delete.go +++ b/pkg/cmd/cluster/delete.go @@ -20,18 +20,12 @@ along with this program. If not, see . package cluster import ( - "context" "fmt" "github.com/spf13/cobra" - apierrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/util/errors" "k8s.io/cli-runtime/pkg/genericiooptions" - "k8s.io/client-go/kubernetes" - "k8s.io/klog/v2" cmdutil "k8s.io/kubectl/pkg/cmd/util" "k8s.io/kubectl/pkg/util/templates" @@ -49,8 +43,6 @@ var ( # delete a cluster by label selector kbcli cluster delete --selector clusterdefinition.kubeblocks.io/name=apecloud-mysql `) - - rbacEnabled = false ) func NewDeleteCmd(f cmdutil.Factory, streams genericiooptions.IOStreams) *cobra.Command { @@ -68,7 +60,6 @@ func NewDeleteCmd(f cmdutil.Factory, streams genericiooptions.IOStreams) *cobra. }, } o.AddFlags(cmd) - cmd.Flags().BoolVar(&rbacEnabled, "rbac-enabled", false, "Specify whether rbac resources will be deleted by kbcli") return cmd } @@ -100,81 +91,11 @@ func clusterPostDeleteHook(o *action.DeleteOptions, object runtime.Object) error return nil } - c, err := getClusterFromObject(object) - if err != nil { - return err - } - - client, err := o.Factory.KubernetesClientSet() - if err != nil { - return err - } + // currently no hook is defined - if err = deleteDependencies(client, c.Namespace, c.Name); err != nil { - return err - } return nil } -func deleteDependencies(client kubernetes.Interface, ns string, name string) error { - if !rbacEnabled { - return nil - } - - klog.V(1).Infof("delete dependencies for cluster %s", name) - var ( - saName = saNamePrefix + name - roleName = roleNamePrefix + name - roleBindingName = roleBindingNamePrefix + name - clusterRoleName = clusterRolePrefix + name - clusterRoleBindingName = clusterRoleBindingPrefix + name - allErr []error - ) - - // now, delete the dependencies, for postgresql, we delete sa, role and rolebinding - ctx := context.TODO() - gracePeriod := int64(0) - deleteOptions := metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod} - checkErr := func(err error) bool { - if err != nil && !apierrors.IsNotFound(err) { - return true - } - return false - } - - // delete cluster role binding - klog.V(1).Infof("delete cluster role binding %s", clusterRoleBindingName) - if err := client.RbacV1().ClusterRoleBindings().Delete(ctx, clusterRoleBindingName, deleteOptions); checkErr(err) { - allErr = append(allErr, err) - } - - // delete cluster role - klog.V(1).Infof("delete cluster role %s", clusterRoleName) - if err := client.RbacV1().ClusterRoles().Delete(ctx, clusterRoleName, deleteOptions); checkErr(err) { - allErr = append(allErr, err) - } - - // delete role binding - klog.V(1).Infof("delete role binding %s", roleBindingName) - if err := client.RbacV1().RoleBindings(ns).Delete(ctx, roleBindingName, deleteOptions); checkErr(err) { - allErr = append(allErr, err) - } - - // delete role - klog.V(1).Infof("delete role %s", roleName) - if err := client.RbacV1().Roles(ns).Delete(ctx, roleName, deleteOptions); checkErr(err) { - allErr = append(allErr, err) - } - - // delete service account - klog.V(1).Infof("delete service account %s", saName) - if err := client.CoreV1().ServiceAccounts(ns).Delete(ctx, saName, deleteOptions); checkErr(err) { - allErr = append(allErr, err) - } - - return errors.NewAggregate(allErr) -} - func getClusterFromObject(object runtime.Object) (*appsv1alpha1.Cluster, error) { if object.GetObjectKind().GroupVersionKind().Kind != appsv1alpha1.ClusterKind { return nil, fmt.Errorf("object %s is not of kind %s", object.GetObjectKind().GroupVersionKind().Kind, appsv1alpha1.ClusterKind)