@@ -26,6 +26,8 @@ import (
26
26
"k8s.io/apimachinery/pkg/util/sets"
27
27
restclient "k8s.io/client-go/rest"
28
28
cliflag "k8s.io/component-base/cli/flag"
29
+ "k8s.io/component-base/logs"
30
+ logsv1 "k8s.io/component-base/logs/api/v1"
29
31
"k8s.io/component-base/term"
30
32
"k8s.io/klog/v2"
31
33
controllerruntime "sigs.k8s.io/controller-runtime"
@@ -40,6 +42,7 @@ import (
40
42
ctrlctx "github.com/karmada-io/karmada/operator/pkg/controller/context"
41
43
"github.com/karmada-io/karmada/operator/pkg/controller/karmada"
42
44
"github.com/karmada-io/karmada/operator/pkg/scheme"
45
+ "github.com/karmada-io/karmada/pkg/features"
43
46
versionmetrics "github.com/karmada-io/karmada/pkg/metrics"
44
47
"github.com/karmada-io/karmada/pkg/sharedcli"
45
48
"github.com/karmada-io/karmada/pkg/sharedcli/klogflag"
@@ -50,13 +53,32 @@ import (
50
53
// NewOperatorCommand creates a *cobra.Command object with default parameters
51
54
func NewOperatorCommand (ctx context.Context ) * cobra.Command {
52
55
o := options .NewOptions ()
56
+ logConfig := logsv1 .NewLoggingConfiguration ()
57
+ fss := cliflag.NamedFlagSets {}
58
+
59
+ // Set klog flags
60
+ logsFlagSet := fss .FlagSet ("logs" )
61
+ logs .AddFlags (logsFlagSet , logs .SkipLoggingConfigurationFlags ())
62
+ logsv1 .AddFlags (logConfig , logsFlagSet )
63
+ klogflag .Add (logsFlagSet )
64
+
65
+ genericFlagSet := fss .FlagSet ("generic" )
66
+ // Add the flag(--kubeconfig) that is added by controller-runtime
67
+ // (https://github.com/kubernetes-sigs/controller-runtime/blob/v0.11.1/pkg/client/config/config.go#L39).
68
+ genericFlagSet .AddGoFlagSet (flag .CommandLine )
69
+ o .AddFlags (genericFlagSet , controllers .ControllerNames (), sets .List (controllersDisabledByDefault ))
70
+
53
71
cmd := & cobra.Command {
54
72
Use : "karmada-operator" ,
55
73
PersistentPreRunE : func (* cobra.Command , []string ) error {
56
74
// silence client-go warnings.
57
75
// karmada-operator generically watches APIs (including deprecated ones),
58
76
// and CI ensures it works properly against matching kube-apiserver versions.
59
77
restclient .SetDefaultWarningHandler (restclient.NoWarnings {})
78
+ if err := logsv1 .ValidateAndApply (logConfig , features .FeatureGate ); err != nil {
79
+ return err
80
+ }
81
+ logs .InitLogs ()
60
82
return nil
61
83
},
62
84
RunE : func (_ * cobra.Command , _ []string ) error {
@@ -74,19 +96,6 @@ func NewOperatorCommand(ctx context.Context) *cobra.Command {
74
96
return nil
75
97
},
76
98
}
77
-
78
- fss := cliflag.NamedFlagSets {}
79
-
80
- genericFlagSet := fss .FlagSet ("generic" )
81
- // Add the flag(--kubeconfig) that is added by controller-runtime
82
- // (https://github.com/kubernetes-sigs/controller-runtime/blob/v0.11.1/pkg/client/config/config.go#L39).
83
- genericFlagSet .AddGoFlagSet (flag .CommandLine )
84
- o .AddFlags (genericFlagSet , controllers .ControllerNames (), sets .List (controllersDisabledByDefault ))
85
-
86
- // Set klog flags
87
- logsFlagSet := fss .FlagSet ("logs" )
88
- klogflag .Add (logsFlagSet )
89
-
90
99
cmd .AddCommand (sharedcommand .NewCmdVersion ("karmada-operator" ))
91
100
cmd .Flags ().AddFlagSet (genericFlagSet )
92
101
cmd .Flags ().AddFlagSet (logsFlagSet )
0 commit comments