This is an automated email from the ASF dual-hosted git repository.
zhongxjian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-kubernetes.git
The following commit(s) were added to refs/heads/master by this push:
new 2c105da3 [operator] Command table combing logic
2c105da3 is described below
commit 2c105da3436168a7e2f6aa1be0f344a2c86d80b1
Author: mfordjody <[email protected]>
AuthorDate: Thu Dec 5 12:03:50 2024 +0800
[operator] Command table combing logic
---
dubboctl/cmd/root.go | 6 +++++-
dubboctl/pkg/cli/context.go | 20 +++++++++++++++++++-
dubboctl/pkg/cli/options.go | 8 ++++----
3 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/dubboctl/cmd/root.go b/dubboctl/cmd/root.go
index a5b93ed7..973de7d3 100644
--- a/dubboctl/cmd/root.go
+++ b/dubboctl/cmd/root.go
@@ -34,8 +34,12 @@ func GetRootCmd(args []string) *cobra.Command {
Long: `Dubbo configuration command line utility for debug and
use dubbo applications.`,
}
rootCmd.SetArgs(args)
+ flags := rootCmd.PersistentFlags()
- installCmd := cluster.InstallCmd(nil)
+ rootOptions := cli.AddRootFlags(flags)
+ ctx := cli.NewCLIContext(rootOptions)
+
+ installCmd := cluster.InstallCmd(ctx)
rootCmd.AddCommand(installCmd)
AddFlags(installCmd)
hideFlags(installCmd, cli.NamespaceFlag, cli.DubboNamespaceFlag,
cli.ChartFlag)
diff --git a/dubboctl/pkg/cli/context.go b/dubboctl/pkg/cli/context.go
index b4fbaf3b..82107a0b 100644
--- a/dubboctl/pkg/cli/context.go
+++ b/dubboctl/pkg/cli/context.go
@@ -1,15 +1,33 @@
package cli
-import "github.com/apache/dubbo-kubernetes/pkg/kube"
+import (
+ "github.com/apache/dubbo-kubernetes/pkg/kube"
+ "github.com/apache/dubbo-kubernetes/pkg/pointer"
+)
type instance struct {
client map[string]kube.CLIClient
+ RootFlags
}
type Context interface {
CLIClient() (kube.CLIClient, error)
}
+func NewCLIContext(rootFlags *RootFlags) Context {
+ if rootFlags == nil {
+ rootFlags = &RootFlags{
+ kubeconfig: pointer.Of[string](""),
+ Context: pointer.Of[string](""),
+ namespace: pointer.Of[string](""),
+ dubboNamespace: pointer.Of[string](""),
+ }
+ }
+ return &instance{
+ RootFlags: *rootFlags,
+ }
+}
+
func (i *instance) CLIClient() (kube.CLIClient, error) {
return nil, nil
}
diff --git a/dubboctl/pkg/cli/options.go b/dubboctl/pkg/cli/options.go
index 85096f67..6b4ce431 100644
--- a/dubboctl/pkg/cli/options.go
+++ b/dubboctl/pkg/cli/options.go
@@ -11,13 +11,13 @@ const (
KubeConfigFlag = "kubeconfig"
ContextFlag = "context"
NamespaceFlag = "namespace"
- DubboNamespaceFlag = "dubboNamespace"
+ DubboNamespaceFlag = "dubbo-namespace"
ChartFlag = "charts"
)
type RootFlags struct {
kubeconfig *string
- cfgContext *string
+ Context *string
namespace *string
dubboNamespace *string
}
@@ -25,12 +25,12 @@ type RootFlags struct {
func AddRootFlags(flags *pflag.FlagSet) *RootFlags {
rootFlags := &RootFlags{
kubeconfig: pointer.Of[string](""),
- cfgContext: pointer.Of[string](""),
+ Context: pointer.Of[string](""),
namespace: pointer.Of[string](""),
dubboNamespace: pointer.Of[string](""),
}
flags.StringVarP(rootFlags.kubeconfig, KubeConfigFlag, "c", "",
"Kubernetes configuration file")
- flags.StringVar(rootFlags.cfgContext, ContextFlag, "", "Kubernetes
configuration context")
+ flags.StringVar(rootFlags.Context, ContextFlag, "", "Kubernetes
configuration context")
flags.StringVarP(rootFlags.namespace, NamespaceFlag, "n",
v1.NamespaceAll, "Kubernetes namespace")
flags.StringVarP(rootFlags.dubboNamespace, DubboNamespaceFlag, "i",
viper.GetString(DubboNamespaceFlag), "Dubbo system namespace")
return rootFlags