From 0ebdb21f8b509efa6b54ff6baa5db2cf57d118f7 Mon Sep 17 00:00:00 2001 From: zhangyukun <38148677+jameszhangyukun@users.noreply.github.com> Date: Tue, 15 Mar 2022 20:40:04 +0800 Subject: [PATCH] Implement flags grouping for karmada-scheduler Signed-off-by: zhangyukun <38148677+jameszhangyukun@users.noreply.github.com> --- cmd/scheduler/app/scheduler.go | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/cmd/scheduler/app/scheduler.go b/cmd/scheduler/app/scheduler.go index d68cfe0ed..fd5ea4445 100644 --- a/cmd/scheduler/app/scheduler.go +++ b/cmd/scheduler/app/scheduler.go @@ -2,7 +2,6 @@ package app import ( "context" - "flag" "fmt" "net" "net/http" @@ -18,11 +17,15 @@ import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/leaderelection" "k8s.io/client-go/tools/leaderelection/resourcelock" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/term" "k8s.io/klog/v2" "github.com/karmada-io/karmada/cmd/scheduler/app/options" karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned" "github.com/karmada-io/karmada/pkg/scheduler" + "github.com/karmada-io/karmada/pkg/sharedcli" + "github.com/karmada-io/karmada/pkg/sharedcli/klogflag" "github.com/karmada-io/karmada/pkg/version" "github.com/karmada-io/karmada/pkg/version/sharedcommand" ) @@ -54,13 +57,21 @@ func NewSchedulerCommand(stopChan <-chan struct{}) *cobra.Command { }, } - // Init log flags - // TODO(@RainbowMango): Group the flags to "logs" flag set. - klog.InitFlags(flag.CommandLine) + fss := cliflag.NamedFlagSets{} - opts.AddFlags(cmd.Flags()) + genericFlagSet := fss.FlagSet("generic") + opts.AddFlags(genericFlagSet) + + // Set klog flags + logsFlagSet := fss.FlagSet("logs") + klogflag.Add(logsFlagSet) cmd.AddCommand(sharedcommand.NewCmdVersion(os.Stdout, "karmada-scheduler")) - cmd.Flags().AddGoFlagSet(flag.CommandLine) + + cmd.Flags().AddFlagSet(genericFlagSet) + cmd.Flags().AddFlagSet(logsFlagSet) + + cols, _, _ := term.TerminalSize(cmd.OutOrStdout()) + sharedcli.SetUsageAndHelpFunc(cmd, fss, cols) return cmd }