Skip to content

Commit 36083e4

Browse files
authored
Merge pull request kubernetes#91522 from SataQiu/add-logging-format-flag-20200528
Add '--logging-format' flag to kube-scheduler
2 parents 6da4054 + 770706c commit 36083e4

File tree

3 files changed

+34
-7
lines changed

3 files changed

+34
-7
lines changed

cmd/kube-scheduler/app/options/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ go_library(
3939
"//staging/src/k8s.io/component-base/config:go_default_library",
4040
"//staging/src/k8s.io/component-base/config/options:go_default_library",
4141
"//staging/src/k8s.io/component-base/config/v1alpha1:go_default_library",
42+
"//staging/src/k8s.io/component-base/logs:go_default_library",
4243
"//staging/src/k8s.io/component-base/metrics:go_default_library",
4344
"//staging/src/k8s.io/kube-scheduler/config/v1beta1:go_default_library",
4445
"//vendor/github.com/spf13/pflag:go_default_library",
@@ -77,6 +78,7 @@ go_test(
7778
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
7879
"//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library",
7980
"//staging/src/k8s.io/component-base/config:go_default_library",
81+
"//staging/src/k8s.io/component-base/logs:go_default_library",
8082
"//vendor/github.com/google/go-cmp/cmp:go_default_library",
8183
"//vendor/github.com/stretchr/testify/assert:go_default_library",
8284
],

cmd/kube-scheduler/app/options/options.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ import (
4141
componentbaseconfig "k8s.io/component-base/config"
4242
"k8s.io/component-base/config/options"
4343
configv1alpha1 "k8s.io/component-base/config/v1alpha1"
44+
"k8s.io/component-base/logs"
4445
"k8s.io/component-base/metrics"
4546
"k8s.io/klog/v2"
4647
kubeschedulerconfigv1beta1 "k8s.io/kube-scheduler/config/v1beta1"
@@ -61,6 +62,7 @@ type Options struct {
6162
Authentication *apiserveroptions.DelegatingAuthenticationOptions
6263
Authorization *apiserveroptions.DelegatingAuthorizationOptions
6364
Metrics *metrics.Options
65+
Logs *logs.Options
6466
Deprecated *DeprecatedOptions
6567

6668
// ConfigFile is the location of the scheduler server's configuration file.
@@ -106,6 +108,7 @@ func NewOptions() (*Options, error) {
106108
HardPodAffinitySymmetricWeight: 1,
107109
},
108110
Metrics: metrics.NewOptions(),
111+
Logs: logs.NewOptions(),
109112
}
110113

111114
o.Authentication.TolerateInClusterLookupFailure = true
@@ -167,6 +170,7 @@ func (o *Options) Flags() (nfs cliflag.NamedFlagSets) {
167170
options.BindLeaderElectionFlags(&o.ComponentConfig.LeaderElection, nfs.FlagSet("leader election"))
168171
utilfeature.DefaultMutableFeatureGate.AddFlag(nfs.FlagSet("feature gate"))
169172
o.Metrics.AddFlags(nfs.FlagSet("metrics"))
173+
o.Logs.AddFlags(nfs.FlagSet("logs"))
170174

171175
return nfs
172176
}
@@ -219,6 +223,7 @@ func (o *Options) ApplyTo(c *schedulerappconfig.Config) error {
219223
}
220224
}
221225
o.Metrics.Apply()
226+
o.Logs.Apply()
222227
return nil
223228
}
224229

@@ -244,6 +249,7 @@ func (o *Options) Validate() []error {
244249
errs = append(errs, o.Authorization.Validate()...)
245250
errs = append(errs, o.Deprecated.Validate()...)
246251
errs = append(errs, o.Metrics.Validate()...)
252+
errs = append(errs, o.Logs.Validate()...)
247253

248254
return errs
249255
}

cmd/kube-scheduler/app/options/options_test.go

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@ import (
2929

3030
"github.com/google/go-cmp/cmp"
3131
"github.com/stretchr/testify/assert"
32-
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
3332

3433
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3534
"k8s.io/apimachinery/pkg/runtime"
3635
apiserveroptions "k8s.io/apiserver/pkg/server/options"
3736
componentbaseconfig "k8s.io/component-base/config"
37+
"k8s.io/component-base/logs"
3838
kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config"
39+
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
3940
)
4041

4142
func TestSchedulerOptions(t *testing.T) {
@@ -293,6 +294,7 @@ profiles:
293294
RemoteKubeConfigFileOptional: true,
294295
AlwaysAllowPaths: []string{"/healthz"}, // note: this does not match /healthz/ or /healthz/*
295296
},
297+
Logs: logs.NewOptions(),
296298
},
297299
expectedUsername: "config",
298300
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
@@ -337,18 +339,25 @@ profiles:
337339
}
338340
return *cfg
339341
}(),
342+
Logs: logs.NewOptions(),
340343
},
341344
expectedError: "no kind \"KubeSchedulerConfiguration\" is registered for version \"componentconfig/v1alpha1\"",
342345
},
343346

344347
{
345-
name: "unknown version kubescheduler.config.k8s.io/unknown",
346-
options: &Options{ConfigFile: unknownVersionConfig},
348+
name: "unknown version kubescheduler.config.k8s.io/unknown",
349+
options: &Options{
350+
ConfigFile: unknownVersionConfig,
351+
Logs: logs.NewOptions(),
352+
},
347353
expectedError: "no kind \"KubeSchedulerConfiguration\" is registered for version \"kubescheduler.config.k8s.io/unknown\"",
348354
},
349355
{
350-
name: "config file with no version",
351-
options: &Options{ConfigFile: noVersionConfig},
356+
name: "config file with no version",
357+
options: &Options{
358+
ConfigFile: noVersionConfig,
359+
Logs: logs.NewOptions(),
360+
},
352361
expectedError: "Object 'apiVersion' is missing",
353362
},
354363
{
@@ -382,6 +391,7 @@ profiles:
382391
RemoteKubeConfigFileOptional: true,
383392
AlwaysAllowPaths: []string{"/healthz"}, // note: this does not match /healthz/ or /healthz/*
384393
},
394+
Logs: logs.NewOptions(),
385395
},
386396
expectedUsername: "flag",
387397
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
@@ -446,6 +456,7 @@ profiles:
446456
RemoteKubeConfigFileOptional: true,
447457
AlwaysAllowPaths: []string{"/healthz"}, // note: this does not match /healthz/ or /healthz/*
448458
},
459+
Logs: logs.NewOptions(),
449460
},
450461
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
451462
AlgorithmSource: kubeschedulerconfig.SchedulerAlgorithmSource{Provider: &defaultSource},
@@ -483,6 +494,7 @@ profiles:
483494
name: "plugin config",
484495
options: &Options{
485496
ConfigFile: pluginConfigFile,
497+
Logs: logs.NewOptions(),
486498
},
487499
expectedUsername: "config",
488500
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
@@ -556,6 +568,7 @@ profiles:
556568
name: "multiple profiles",
557569
options: &Options{
558570
ConfigFile: multiProfilesConfig,
571+
Logs: logs.NewOptions(),
559572
},
560573
expectedUsername: "config",
561574
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
@@ -614,8 +627,10 @@ profiles:
614627
},
615628
},
616629
{
617-
name: "no config",
618-
options: &Options{},
630+
name: "no config",
631+
options: &Options{
632+
Logs: logs.NewOptions(),
633+
},
619634
expectedError: "no configuration has been provided",
620635
},
621636
{
@@ -629,6 +644,7 @@ profiles:
629644
Deprecated: &DeprecatedOptions{
630645
HardPodAffinitySymmetricWeight: 5,
631646
},
647+
Logs: logs.NewOptions(),
632648
},
633649
expectedUsername: "flag",
634650
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
@@ -680,6 +696,7 @@ profiles:
680696
SchedulerName: "my-nice-scheduler",
681697
HardPodAffinitySymmetricWeight: 1,
682698
},
699+
Logs: logs.NewOptions(),
683700
},
684701
expectedUsername: "flag",
685702
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
@@ -735,6 +752,7 @@ profiles:
735752
name: "unknown field",
736753
options: &Options{
737754
ConfigFile: unknownFieldConfig,
755+
Logs: logs.NewOptions(),
738756
},
739757
expectedError: "found unknown field: foo",
740758
checkErrFn: runtime.IsStrictDecodingError,
@@ -743,6 +761,7 @@ profiles:
743761
name: "duplicate fields",
744762
options: &Options{
745763
ConfigFile: duplicateFieldConfig,
764+
Logs: logs.NewOptions(),
746765
},
747766
expectedError: `key "leaderElect" already set`,
748767
checkErrFn: runtime.IsStrictDecodingError,

0 commit comments

Comments
 (0)