@@ -33,12 +33,15 @@ import (
33
33
"k8s.io/client-go/tools/leaderelection/resourcelock"
34
34
"k8s.io/client-go/util/flowcontrol"
35
35
cliflag "k8s.io/component-base/cli/flag"
36
+ "k8s.io/component-base/logs"
37
+ logsv1 "k8s.io/component-base/logs/api/v1"
36
38
"k8s.io/component-base/term"
37
39
"k8s.io/klog/v2"
38
40
ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
39
41
40
42
"github.com/karmada-io/karmada/cmd/descheduler/app/options"
41
43
"github.com/karmada-io/karmada/pkg/descheduler"
44
+ "github.com/karmada-io/karmada/pkg/features"
42
45
karmadaclientset "github.com/karmada-io/karmada/pkg/generated/clientset/versioned"
43
46
versionmetrics "github.com/karmada-io/karmada/pkg/metrics"
44
47
"github.com/karmada-io/karmada/pkg/sharedcli"
@@ -80,12 +83,22 @@ const (
80
83
81
84
// NewDeschedulerCommand creates a *cobra.Command object with default parameters
82
85
func NewDeschedulerCommand (ctx context.Context ) * cobra.Command {
86
+ logConfig := logsv1 .NewLoggingConfiguration ()
87
+ fss := cliflag.NamedFlagSets {}
88
+
89
+ logsFlagSet := fss .FlagSet ("logs" )
90
+ logs .AddFlags (logsFlagSet , logs .SkipLoggingConfigurationFlags ())
91
+ logsv1 .AddFlags (logConfig , logsFlagSet )
92
+ klogflag .Add (logsFlagSet )
93
+
94
+ genericFlagSet := fss .FlagSet ("generic" )
83
95
opts := options .NewOptions ()
96
+ opts .AddFlags (genericFlagSet )
84
97
85
98
cmd := & cobra.Command {
86
99
Use : names .KarmadaDeschedulerComponentName ,
87
100
Long : `The karmada-descheduler evicts replicas from member clusters
88
- if they are failed to be scheduled for a period of time. It relies on
101
+ if they are failed to be scheduled for a period of time. It relies on
89
102
karmada-scheduler-estimator to get replica status.` ,
90
103
RunE : func (_ * cobra.Command , _ []string ) error {
91
104
// validate options
@@ -105,17 +118,15 @@ karmada-scheduler-estimator to get replica status.`,
105
118
}
106
119
return nil
107
120
},
121
+ PersistentPreRunE : func (_ * cobra.Command , _ []string ) error {
122
+ if err := logsv1 .ValidateAndApply (logConfig , features .FeatureGate ); err != nil {
123
+ return err
124
+ }
125
+ logs .InitLogs ()
126
+ return nil
127
+ },
108
128
}
109
129
110
- fss := cliflag.NamedFlagSets {}
111
-
112
- genericFlagSet := fss .FlagSet ("generic" )
113
- opts .AddFlags (genericFlagSet )
114
-
115
- // Set klog flags
116
- logsFlagSet := fss .FlagSet ("logs" )
117
- klogflag .Add (logsFlagSet )
118
-
119
130
cmd .AddCommand (sharedcommand .NewCmdVersion (names .KarmadaDeschedulerComponentName ))
120
131
cmd .Flags ().AddFlagSet (genericFlagSet )
121
132
cmd .Flags ().AddFlagSet (logsFlagSet )
0 commit comments