From fd35e02a3f922c01c6d727687bfd97f782172ddf Mon Sep 17 00:00:00 2001 From: Shanshan Date: Wed, 6 Aug 2025 10:33:20 +0800 Subject: [PATCH] fix: respect namespace set by user --- Makefile | 2 +- .../cli/kbcli_cluster_create_oriol.md | 79 ------------------- .../cli/kbcli_cluster_create_tidb.md | 75 ------------------ .../cli/kbcli_cluster_upgrade-to-v1.md | 58 ++++++++++++++ pkg/cmd/report/report.go | 10 ++- 5 files changed, 65 insertions(+), 159 deletions(-) delete mode 100644 docs/user_docs/cli/kbcli_cluster_create_oriol.md delete mode 100644 docs/user_docs/cli/kbcli_cluster_create_tidb.md create mode 100644 docs/user_docs/cli/kbcli_cluster_upgrade-to-v1.md diff --git a/Makefile b/Makefile index 4693a830a..1471a3b5b 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ ################################################################################ APP_NAME = kbcli -VERSION ?= 0.9.0-alpha.0 +VERSION ?= 1.0.1-beta.0 GITHUB_PROXY ?= GIT_COMMIT = $(shell git rev-list -1 HEAD) GIT_VERSION = $(shell git describe --always --abbrev=0 --tag) diff --git a/docs/user_docs/cli/kbcli_cluster_create_oriol.md b/docs/user_docs/cli/kbcli_cluster_create_oriol.md deleted file mode 100644 index dfe0d62f6..000000000 --- a/docs/user_docs/cli/kbcli_cluster_create_oriol.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: kbcli cluster create oriol ---- - -Create a oriol cluster. - -``` -kbcli cluster create oriol NAME [flags] -``` - -### Examples - -``` - # Create a cluster with the default values - kbcli cluster create oriol - - # Create a cluster with the specified cpu, memory and storage - kbcli cluster create oriol --cpu 1 --memory 2 --storage 10 -``` - -### Options - -``` - --availability-policy string The availability policy of cluster. Legal values [none, node, zone]. (default "node") - --cpu float CPU cores. Value range [0.5, 64]. (default 0.5) - --dry-run string[="unchanged"] Must be "client", or "server". If with client strategy, only print the object that would be sent, and no data is actually sent. If with server strategy, submit the server-side request, but no data is persistent. (default "none") - --edit Edit the API resource before creating - --etcd.cluster string The patroni dependency etcd cluster name (default "etcd") - --etcd.namespace string The patroni dependency etcd cluster namespace (default "default") - -h, --help help for oriol - --host-network-accessible Specify whether the cluster can be accessed from within the VPC. - --memory float Memory, the unit is Gi. Value range [0.5, 1000]. (default 0.5) - --mode string Legal values [standalone, replication]. (default "standalone") - --monitor-enabled Enable or disable monitor. - --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") - --publicly-accessible Specify whether the cluster can be accessed from the public internet. - --rbac-enabled Specify whether rbac resources will be created by client, otherwise KubeBlocks server will try to create rbac resources. - --replicas int Value range [1, 5]. (default 1) - --storage float Storage size, the unit is Gi. Value range [1, 10000]. (default 20) - --storage-class-name string Storage class name of the data volume - --tenancy string The tenancy of cluster. Legal values [SharedNode, DedicatedNode]. (default "SharedNode") - --termination-policy string The termination policy of cluster. Legal values [DoNotTerminate, Halt, Delete, WipeOut]. (default "Delete") - --tolerations strings Tolerations for cluster, such as "key=value:effect,key:effect", for example '"engineType=mongo:NoSchedule", "diskType:NoSchedule"' - --topology-keys stringArray Topology keys for affinity - --version string (default "orioledb-beta1") -``` - -### Options inherited from parent commands - -``` - --as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace. - --as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups. - --as-uid string UID to impersonate for the operation. - --cache-dir string Default cache directory (default "$HOME/.kube/cache") - --certificate-authority string Path to a cert file for the certificate authority - --client-certificate string Path to a client certificate file for TLS - --client-key string Path to a client key file for TLS - --cluster string The name of the kubeconfig cluster to use - --context string The name of the kubeconfig context to use - --disable-compression If true, opt-out of response compression for all requests to the server - --insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure - --kubeconfig string Path to the kubeconfig file to use for CLI requests. - --match-server-version Require server version to match client version - -n, --namespace string If present, the namespace scope for this CLI request - --request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0") - -s, --server string The address and port of the Kubernetes API server - --tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used - --token string Bearer token for authentication to the API server - --user string The name of the kubeconfig user to use -``` - -### SEE ALSO - -* [kbcli cluster create](kbcli_cluster_create.md) - Create a cluster. - -#### Go Back to [CLI Overview](cli.md) Homepage. - diff --git a/docs/user_docs/cli/kbcli_cluster_create_tidb.md b/docs/user_docs/cli/kbcli_cluster_create_tidb.md deleted file mode 100644 index b6d711e06..000000000 --- a/docs/user_docs/cli/kbcli_cluster_create_tidb.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: kbcli cluster create tidb ---- - -Create a tidb cluster. - -``` -kbcli cluster create tidb NAME [flags] -``` - -### Examples - -``` - # Create a cluster with the default values - kbcli cluster create tidb - - # Create a cluster with the specified cpu, memory and storage - kbcli cluster create tidb --cpu 1 --memory 2 --storage 10 -``` - -### Options - -``` - --dry-run string[="unchanged"] Must be "client", or "server". If with client strategy, only print the object that would be sent, and no data is actually sent. If with server strategy, submit the server-side request, but no data is persistent. (default "none") - --edit Edit the API resource before creating - -h, --help help for tidb - --node-labels stringToString Node label selector (default []) - -o, --output format Prints the output in the specified format. Allowed values: JSON and YAML (default yaml) - --pd.cpu float CPU cores. Value range [2, 64]. (default 2) - --pd.memory float Memory, the unit is Gi. Value range [4, 1000]. (default 4) - --pd.replicas int The number of replicas Value range [1, 5]. (default 3) - --pd.storage float Storage size, the unit is Gi. Value range [1, 10000]. (default 20) - --pod-anti-affinity string Pod anti-affinity type, one of: (Preferred, Required) (default "Preferred") - --tenancy string Tenancy options, one of: (SharedNode, DedicatedNode) (default "SharedNode") - --termination-policy string The termination policy of cluster. Legal values [DoNotTerminate, Halt, Delete, WipeOut]. (default "Delete") - --tidb.cpu float CPU cores. Value range [2, 64]. (default 2) - --tidb.replicas int The number of replicas Value range [1, 5]. (default 2) - --tikv.cpu float CPU cores. Value range [2, 64]. (default 2) - --tikv.memory float Memory, the unit is Gi. Value range [4, 1000]. (default 4) - --tikv.replicas int The number of replicas Value range [1, 5]. (default 3) - --tikv.storage float Storage size, the unit is Gi. Value range [1, 10000]. (default 20) - --tolerations strings Tolerations for cluster, such as "key=value:effect,key:effect", for example '"engineType=mongo:NoSchedule", "diskType:NoSchedule"' - --topology-keys stringArray Topology keys for affinity -``` - -### Options inherited from parent commands - -``` - --as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace. - --as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups. - --as-uid string UID to impersonate for the operation. - --cache-dir string Default cache directory (default "$HOME/.kube/cache") - --certificate-authority string Path to a cert file for the certificate authority - --client-certificate string Path to a client certificate file for TLS - --client-key string Path to a client key file for TLS - --cluster string The name of the kubeconfig cluster to use - --context string The name of the kubeconfig context to use - --disable-compression If true, opt-out of response compression for all requests to the server - --insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure - --kubeconfig string Path to the kubeconfig file to use for CLI requests. - --match-server-version Require server version to match client version - -n, --namespace string If present, the namespace scope for this CLI request - --request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0") - -s, --server string The address and port of the Kubernetes API server - --tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used - --token string Bearer token for authentication to the API server - --user string The name of the kubeconfig user to use -``` - -### SEE ALSO - -* [kbcli cluster create](kbcli_cluster_create.md) - Create a cluster. - -#### Go Back to [CLI Overview](cli.md) Homepage. - diff --git a/docs/user_docs/cli/kbcli_cluster_upgrade-to-v1.md b/docs/user_docs/cli/kbcli_cluster_upgrade-to-v1.md new file mode 100644 index 000000000..1d91106f5 --- /dev/null +++ b/docs/user_docs/cli/kbcli_cluster_upgrade-to-v1.md @@ -0,0 +1,58 @@ +--- +title: kbcli cluster upgrade-to-v1 +--- + +upgrade cluster to v1 api version. + +``` +kbcli cluster upgrade-to-v1 [NAME] [flags] +``` + +### Examples + +``` + # upgrade a v1alpha1 cluster to v1 cluster + kbcli cluster upgrade-to-v1 mycluster + + # upgrade a v1alpha1 cluster with --dry-run + kbcli cluster upgrade-to-v1 mycluster --dry-run +``` + +### Options + +``` + --dry-run dry run mode + -h, --help help for upgrade-to-v1 + --no-diff only print the new cluster yaml +``` + +### Options inherited from parent commands + +``` + --as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace. + --as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups. + --as-uid string UID to impersonate for the operation. + --cache-dir string Default cache directory (default "$HOME/.kube/cache") + --certificate-authority string Path to a cert file for the certificate authority + --client-certificate string Path to a client certificate file for TLS + --client-key string Path to a client key file for TLS + --cluster string The name of the kubeconfig cluster to use + --context string The name of the kubeconfig context to use + --disable-compression If true, opt-out of response compression for all requests to the server + --insecure-skip-tls-verify If true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure + --kubeconfig string Path to the kubeconfig file to use for CLI requests. + --match-server-version Require server version to match client version + -n, --namespace string If present, the namespace scope for this CLI request + --request-timeout string The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests. (default "0") + -s, --server string The address and port of the Kubernetes API server + --tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used + --token string Bearer token for authentication to the API server + --user string The name of the kubeconfig user to use +``` + +### SEE ALSO + +* [kbcli cluster](kbcli_cluster.md) - Cluster command. + +#### Go Back to [CLI Overview](cli.md) Homepage. + diff --git a/pkg/cmd/report/report.go b/pkg/cmd/report/report.go index b9ef1f902..c26652e3c 100644 --- a/pkg/cmd/report/report.go +++ b/pkg/cmd/report/report.go @@ -437,10 +437,12 @@ func (o *reportClusterOptions) complete(f cmdutil.Factory) error { if err := o.reportOptions.complete(f); err != nil { return err } - // update namespace - o.namespace, _, err = f.ToRawKubeConfigLoader().Namespace() - if err != nil { - return err + // update namespace if not specified + if o.namespace == "" { + o.namespace, _, err = f.ToRawKubeConfigLoader().Namespace() + if err != nil { + return err + } } // complete file name