diff --git a/cmd/kube-controller-manager/app/options/BUILD b/cmd/kube-controller-manager/app/options/BUILD index 0cd243601eba..b2f110089e46 100644 --- a/cmd/kube-controller-manager/app/options/BUILD +++ b/cmd/kube-controller-manager/app/options/BUILD @@ -72,6 +72,7 @@ go_library( "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/record:go_default_library", "//staging/src/k8s.io/component-base/cli/flag: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-controller-manager/config/v1alpha1:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", @@ -125,6 +126,7 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/util/diff: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", "//staging/src/k8s.io/component-base/metrics:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", ], diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index 110dc7c7b17f..56ecefc1abbc 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -33,6 +33,7 @@ import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/record" cliflag "k8s.io/component-base/cli/flag" + "k8s.io/component-base/logs" "k8s.io/component-base/metrics" kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" @@ -88,6 +89,7 @@ type KubeControllerManagerOptions struct { Authentication *apiserveroptions.DelegatingAuthenticationOptions Authorization *apiserveroptions.DelegatingAuthorizationOptions Metrics *metrics.Options + Logs *logs.Options Master string Kubeconfig string @@ -179,6 +181,7 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) { Authentication: apiserveroptions.NewDelegatingAuthenticationOptions(), Authorization: apiserveroptions.NewDelegatingAuthorizationOptions(), Metrics: metrics.NewOptions(), + Logs: logs.NewOptions(), } s.Authentication.RemoteKubeConfigFileOptional = true @@ -249,6 +252,7 @@ func (s *KubeControllerManagerOptions) Flags(allControllers []string, disabledBy s.SAController.AddFlags(fss.FlagSet("serviceaccount controller")) s.TTLAfterFinishedController.AddFlags(fss.FlagSet("ttl-after-finished controller")) s.Metrics.AddFlags(fss.FlagSet("metrics")) + s.Logs.AddFlags(fss.FlagSet("logs")) fs := fss.FlagSet("misc") fs.StringVar(&s.Master, "master", s.Master, "The address of the Kubernetes API server (overrides any value in kubeconfig).") @@ -388,6 +392,7 @@ func (s *KubeControllerManagerOptions) Validate(allControllers []string, disable errs = append(errs, s.Authentication.Validate()...) errs = append(errs, s.Authorization.Validate()...) errs = append(errs, s.Metrics.Validate()...) + errs = append(errs, s.Logs.Validate()...) // TODO: validate component config, master and kubeconfig @@ -437,6 +442,8 @@ func (s KubeControllerManagerOptions) Config(allControllers []string, disabledBy } s.Metrics.Apply() + s.Logs.Apply() + return c, nil } diff --git a/cmd/kube-controller-manager/app/options/options_test.go b/cmd/kube-controller-manager/app/options/options_test.go index 3cf81f70d2c1..da0e24564971 100644 --- a/cmd/kube-controller-manager/app/options/options_test.go +++ b/cmd/kube-controller-manager/app/options/options_test.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/diff" apiserveroptions "k8s.io/apiserver/pkg/server/options" componentbaseconfig "k8s.io/component-base/config" + "k8s.io/component-base/logs" "k8s.io/component-base/metrics" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" kubecontrollerconfig "k8s.io/kubernetes/cmd/kube-controller-manager/app/config" @@ -383,6 +384,7 @@ func TestAddFlags(t *testing.T) { Kubeconfig: "/kubeconfig", Master: "192.168.4.20", Metrics: &metrics.Options{}, + Logs: logs.NewOptions(), } // Sort GCIgnoredResources because it's built from a map, which means the