mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #91522 from SataQiu/add-logging-format-flag-20200528
Add '--logging-format' flag to kube-scheduler
This commit is contained in:
commit
36083e4292
@ -39,6 +39,7 @@ go_library(
|
||||
"//staging/src/k8s.io/component-base/config:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/config/options:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/config/v1alpha1:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/logs:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/metrics:go_default_library",
|
||||
"//staging/src/k8s.io/kube-scheduler/config/v1beta1:go_default_library",
|
||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||
@ -77,6 +78,7 @@ go_test(
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/config:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/logs:go_default_library",
|
||||
"//vendor/github.com/google/go-cmp/cmp:go_default_library",
|
||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||
],
|
||||
|
@ -41,6 +41,7 @@ import (
|
||||
componentbaseconfig "k8s.io/component-base/config"
|
||||
"k8s.io/component-base/config/options"
|
||||
configv1alpha1 "k8s.io/component-base/config/v1alpha1"
|
||||
"k8s.io/component-base/logs"
|
||||
"k8s.io/component-base/metrics"
|
||||
"k8s.io/klog/v2"
|
||||
kubeschedulerconfigv1beta1 "k8s.io/kube-scheduler/config/v1beta1"
|
||||
@ -61,6 +62,7 @@ type Options struct {
|
||||
Authentication *apiserveroptions.DelegatingAuthenticationOptions
|
||||
Authorization *apiserveroptions.DelegatingAuthorizationOptions
|
||||
Metrics *metrics.Options
|
||||
Logs *logs.Options
|
||||
Deprecated *DeprecatedOptions
|
||||
|
||||
// ConfigFile is the location of the scheduler server's configuration file.
|
||||
@ -106,6 +108,7 @@ func NewOptions() (*Options, error) {
|
||||
HardPodAffinitySymmetricWeight: 1,
|
||||
},
|
||||
Metrics: metrics.NewOptions(),
|
||||
Logs: logs.NewOptions(),
|
||||
}
|
||||
|
||||
o.Authentication.TolerateInClusterLookupFailure = true
|
||||
@ -167,6 +170,7 @@ func (o *Options) Flags() (nfs cliflag.NamedFlagSets) {
|
||||
options.BindLeaderElectionFlags(&o.ComponentConfig.LeaderElection, nfs.FlagSet("leader election"))
|
||||
utilfeature.DefaultMutableFeatureGate.AddFlag(nfs.FlagSet("feature gate"))
|
||||
o.Metrics.AddFlags(nfs.FlagSet("metrics"))
|
||||
o.Logs.AddFlags(nfs.FlagSet("logs"))
|
||||
|
||||
return nfs
|
||||
}
|
||||
@ -219,6 +223,7 @@ func (o *Options) ApplyTo(c *schedulerappconfig.Config) error {
|
||||
}
|
||||
}
|
||||
o.Metrics.Apply()
|
||||
o.Logs.Apply()
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -244,6 +249,7 @@ func (o *Options) Validate() []error {
|
||||
errs = append(errs, o.Authorization.Validate()...)
|
||||
errs = append(errs, o.Deprecated.Validate()...)
|
||||
errs = append(errs, o.Metrics.Validate()...)
|
||||
errs = append(errs, o.Logs.Validate()...)
|
||||
|
||||
return errs
|
||||
}
|
||||
|
@ -29,13 +29,14 @@ import (
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
||||
componentbaseconfig "k8s.io/component-base/config"
|
||||
"k8s.io/component-base/logs"
|
||||
kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
|
||||
)
|
||||
|
||||
func TestSchedulerOptions(t *testing.T) {
|
||||
@ -293,6 +294,7 @@ profiles:
|
||||
RemoteKubeConfigFileOptional: true,
|
||||
AlwaysAllowPaths: []string{"/healthz"}, // note: this does not match /healthz/ or /healthz/*
|
||||
},
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedUsername: "config",
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
@ -337,18 +339,25 @@ profiles:
|
||||
}
|
||||
return *cfg
|
||||
}(),
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedError: "no kind \"KubeSchedulerConfiguration\" is registered for version \"componentconfig/v1alpha1\"",
|
||||
},
|
||||
|
||||
{
|
||||
name: "unknown version kubescheduler.config.k8s.io/unknown",
|
||||
options: &Options{ConfigFile: unknownVersionConfig},
|
||||
name: "unknown version kubescheduler.config.k8s.io/unknown",
|
||||
options: &Options{
|
||||
ConfigFile: unknownVersionConfig,
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedError: "no kind \"KubeSchedulerConfiguration\" is registered for version \"kubescheduler.config.k8s.io/unknown\"",
|
||||
},
|
||||
{
|
||||
name: "config file with no version",
|
||||
options: &Options{ConfigFile: noVersionConfig},
|
||||
name: "config file with no version",
|
||||
options: &Options{
|
||||
ConfigFile: noVersionConfig,
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedError: "Object 'apiVersion' is missing",
|
||||
},
|
||||
{
|
||||
@ -382,6 +391,7 @@ profiles:
|
||||
RemoteKubeConfigFileOptional: true,
|
||||
AlwaysAllowPaths: []string{"/healthz"}, // note: this does not match /healthz/ or /healthz/*
|
||||
},
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedUsername: "flag",
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
@ -446,6 +456,7 @@ profiles:
|
||||
RemoteKubeConfigFileOptional: true,
|
||||
AlwaysAllowPaths: []string{"/healthz"}, // note: this does not match /healthz/ or /healthz/*
|
||||
},
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
AlgorithmSource: kubeschedulerconfig.SchedulerAlgorithmSource{Provider: &defaultSource},
|
||||
@ -483,6 +494,7 @@ profiles:
|
||||
name: "plugin config",
|
||||
options: &Options{
|
||||
ConfigFile: pluginConfigFile,
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedUsername: "config",
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
@ -556,6 +568,7 @@ profiles:
|
||||
name: "multiple profiles",
|
||||
options: &Options{
|
||||
ConfigFile: multiProfilesConfig,
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedUsername: "config",
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
@ -614,8 +627,10 @@ profiles:
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "no config",
|
||||
options: &Options{},
|
||||
name: "no config",
|
||||
options: &Options{
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedError: "no configuration has been provided",
|
||||
},
|
||||
{
|
||||
@ -629,6 +644,7 @@ profiles:
|
||||
Deprecated: &DeprecatedOptions{
|
||||
HardPodAffinitySymmetricWeight: 5,
|
||||
},
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedUsername: "flag",
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
@ -680,6 +696,7 @@ profiles:
|
||||
SchedulerName: "my-nice-scheduler",
|
||||
HardPodAffinitySymmetricWeight: 1,
|
||||
},
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedUsername: "flag",
|
||||
expectedConfig: kubeschedulerconfig.KubeSchedulerConfiguration{
|
||||
@ -735,6 +752,7 @@ profiles:
|
||||
name: "unknown field",
|
||||
options: &Options{
|
||||
ConfigFile: unknownFieldConfig,
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedError: "found unknown field: foo",
|
||||
checkErrFn: runtime.IsStrictDecodingError,
|
||||
@ -743,6 +761,7 @@ profiles:
|
||||
name: "duplicate fields",
|
||||
options: &Options{
|
||||
ConfigFile: duplicateFieldConfig,
|
||||
Logs: logs.NewOptions(),
|
||||
},
|
||||
expectedError: `key "leaderElect" already set`,
|
||||
checkErrFn: runtime.IsStrictDecodingError,
|
||||
|
Loading…
Reference in New Issue
Block a user