diff --git a/cmd/webhook/app/webhook.go b/cmd/webhook/app/webhook.go index e0181610f..c8633787d 100644 --- a/cmd/webhook/app/webhook.go +++ b/cmd/webhook/app/webhook.go @@ -8,6 +8,8 @@ import ( "os" "github.com/spf13/cobra" + cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/term" "k8s.io/klog/v2" controllerruntime "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/healthz" @@ -15,6 +17,8 @@ import ( "sigs.k8s.io/controller-runtime/pkg/webhook/conversion" "github.com/karmada-io/karmada/cmd/webhook/app/options" + "github.com/karmada-io/karmada/pkg/sharedcli" + "github.com/karmada-io/karmada/pkg/sharedcli/klogflag" "github.com/karmada-io/karmada/pkg/util/gclient" "github.com/karmada-io/karmada/pkg/version" "github.com/karmada-io/karmada/pkg/version/sharedcommand" @@ -54,14 +58,22 @@ func NewWebhookCommand(ctx context.Context) *cobra.Command { }, } - // Init log flags - // TODO(@RainbowMango): Group the flags to "logs" flag set. - klog.InitFlags(flag.CommandLine) + fss := cliflag.NamedFlagSets{} + + genericFlagSet := fss.FlagSet("generic") + genericFlagSet.AddGoFlagSet(flag.CommandLine) + opts.AddFlags(genericFlagSet) + + // Set klog flags + logsFlagSet := fss.FlagSet("logs") + klogflag.Add(logsFlagSet) - cmd.Flags().AddGoFlagSet(flag.CommandLine) cmd.AddCommand(sharedcommand.NewCmdVersion(os.Stdout, "karmada-webhook")) - opts.AddFlags(cmd.Flags()) + cmd.Flags().AddFlagSet(genericFlagSet) + cmd.Flags().AddFlagSet(logsFlagSet) + cols, _, _ := term.TerminalSize(cmd.OutOrStdout()) + sharedcli.SetUsageAndHelpFunc(cmd, fss, cols) return cmd }