From 3518fb400c869544081abfdb70d667c79c615e60 Mon Sep 17 00:00:00 2001 From: stewart-yu Date: Sun, 13 Jan 2019 15:04:36 +0800 Subject: [PATCH] fix all reference for wrap componentconfig type --- .../app/options/options.go | 6 +- .../app/options/options_test.go | 131 ++++++----- .../app/options/options.go | 65 ++---- .../app/options/options_test.go | 218 +++++++++++------- 4 files changed, 236 insertions(+), 184 deletions(-) diff --git a/cmd/cloud-controller-manager/app/options/options.go b/cmd/cloud-controller-manager/app/options/options.go index c3eea94ec46..e10491c298f 100644 --- a/cmd/cloud-controller-manager/app/options/options.go +++ b/cmd/cloud-controller-manager/app/options/options.go @@ -82,10 +82,10 @@ func NewCloudControllerManagerOptions() (*CloudControllerManagerOptions, error) } s := CloudControllerManagerOptions{ - Generic: cmoptions.NewGenericControllerManagerConfigurationOptions(componentConfig.Generic), - KubeCloudShared: cmoptions.NewKubeCloudSharedOptions(componentConfig.KubeCloudShared), + Generic: cmoptions.NewGenericControllerManagerConfigurationOptions(&componentConfig.Generic), + KubeCloudShared: cmoptions.NewKubeCloudSharedOptions(&componentConfig.KubeCloudShared), ServiceController: &cmoptions.ServiceControllerOptions{ - ConcurrentServiceSyncs: componentConfig.ServiceController.ConcurrentServiceSyncs, + ServiceControllerConfiguration: &componentConfig.ServiceController, }, SecureServing: apiserveroptions.NewSecureServingOptions().WithLoopback(), InsecureServing: (&apiserveroptions.DeprecatedInsecureServingOptions{ diff --git a/cmd/cloud-controller-manager/app/options/options_test.go b/cmd/cloud-controller-manager/app/options/options_test.go index 3f78c261731..4a9d3c3bced 100644 --- a/cmd/cloud-controller-manager/app/options/options_test.go +++ b/cmd/cloud-controller-manager/app/options/options_test.go @@ -29,6 +29,7 @@ import ( apiserveroptions "k8s.io/apiserver/pkg/server/options" componentbaseconfig "k8s.io/component-base/config" cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options" + kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config" ) func TestDefaultFlags(t *testing.T) { @@ -36,42 +37,52 @@ func TestDefaultFlags(t *testing.T) { expected := &CloudControllerManagerOptions{ Generic: &cmoptions.GenericControllerManagerConfigurationOptions{ - Port: DefaultInsecureCloudControllerManagerPort, // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config - Address: "0.0.0.0", // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config - MinResyncPeriod: metav1.Duration{Duration: 12 * time.Hour}, - ClientConnection: componentbaseconfig.ClientConnectionConfiguration{ - ContentType: "application/vnd.kubernetes.protobuf", - QPS: 20.0, - Burst: 30, - }, - ControllerStartInterval: metav1.Duration{Duration: 0}, - LeaderElection: componentbaseconfig.LeaderElectionConfiguration{ - ResourceLock: "endpoints", - LeaderElect: true, - LeaseDuration: metav1.Duration{Duration: 15 * time.Second}, - RenewDeadline: metav1.Duration{Duration: 10 * time.Second}, - RetryPeriod: metav1.Duration{Duration: 2 * time.Second}, + GenericControllerManagerConfiguration: &kubectrlmgrconfig.GenericControllerManagerConfiguration{ + Port: DefaultInsecureCloudControllerManagerPort, // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config + Address: "0.0.0.0", // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config + MinResyncPeriod: metav1.Duration{Duration: 12 * time.Hour}, + ClientConnection: componentbaseconfig.ClientConnectionConfiguration{ + ContentType: "application/vnd.kubernetes.protobuf", + QPS: 20.0, + Burst: 30, + }, + ControllerStartInterval: metav1.Duration{Duration: 0}, + LeaderElection: componentbaseconfig.LeaderElectionConfiguration{ + ResourceLock: "endpoints", + LeaderElect: true, + LeaseDuration: metav1.Duration{Duration: 15 * time.Second}, + RenewDeadline: metav1.Duration{Duration: 10 * time.Second}, + RetryPeriod: metav1.Duration{Duration: 2 * time.Second}, + }, + Controllers: []string{"*"}, }, Debugging: &cmoptions.DebuggingOptions{ - EnableContentionProfiling: false, + DebuggingConfiguration: &componentbaseconfig.DebuggingConfiguration{ + EnableContentionProfiling: false, + }, }, - Controllers: []string{"*"}, }, KubeCloudShared: &cmoptions.KubeCloudSharedOptions{ - RouteReconciliationPeriod: metav1.Duration{Duration: 10 * time.Second}, - NodeMonitorPeriod: metav1.Duration{Duration: 5 * time.Second}, - ClusterName: "kubernetes", - ClusterCIDR: "", - AllocateNodeCIDRs: false, - CIDRAllocatorType: "", - ConfigureCloudRoutes: true, + KubeCloudSharedConfiguration: &kubectrlmgrconfig.KubeCloudSharedConfiguration{ + RouteReconciliationPeriod: metav1.Duration{Duration: 10 * time.Second}, + NodeMonitorPeriod: metav1.Duration{Duration: 5 * time.Second}, + ClusterName: "kubernetes", + ClusterCIDR: "", + AllocateNodeCIDRs: false, + CIDRAllocatorType: "", + ConfigureCloudRoutes: true, + }, CloudProvider: &cmoptions.CloudProviderOptions{ - Name: "", - CloudConfigFile: "", + CloudProviderConfiguration: &kubectrlmgrconfig.CloudProviderConfiguration{ + Name: "", + CloudConfigFile: "", + }, }, }, ServiceController: &cmoptions.ServiceControllerOptions{ - ConcurrentServiceSyncs: 1, + ServiceControllerConfiguration: &kubectrlmgrconfig.ServiceControllerConfiguration{ + ConcurrentServiceSyncs: 1, + }, }, SecureServing: (&apiserveroptions.SecureServingOptions{ BindPort: 10258, @@ -155,42 +166,52 @@ func TestAddFlags(t *testing.T) { expected := &CloudControllerManagerOptions{ Generic: &cmoptions.GenericControllerManagerConfigurationOptions{ - Port: DefaultInsecureCloudControllerManagerPort, // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config - Address: "0.0.0.0", // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config - MinResyncPeriod: metav1.Duration{Duration: 100 * time.Minute}, - ClientConnection: componentbaseconfig.ClientConnectionConfiguration{ - ContentType: "application/vnd.kubernetes.protobuf", - QPS: 50.0, - Burst: 100, - }, - ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute}, - LeaderElection: componentbaseconfig.LeaderElectionConfiguration{ - ResourceLock: "configmap", - LeaderElect: false, - LeaseDuration: metav1.Duration{Duration: 30 * time.Second}, - RenewDeadline: metav1.Duration{Duration: 15 * time.Second}, - RetryPeriod: metav1.Duration{Duration: 5 * time.Second}, + GenericControllerManagerConfiguration: &kubectrlmgrconfig.GenericControllerManagerConfiguration{ + Port: DefaultInsecureCloudControllerManagerPort, // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config + Address: "0.0.0.0", // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config + MinResyncPeriod: metav1.Duration{Duration: 100 * time.Minute}, + ClientConnection: componentbaseconfig.ClientConnectionConfiguration{ + ContentType: "application/vnd.kubernetes.protobuf", + QPS: 50.0, + Burst: 100, + }, + ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute}, + LeaderElection: componentbaseconfig.LeaderElectionConfiguration{ + ResourceLock: "configmap", + LeaderElect: false, + LeaseDuration: metav1.Duration{Duration: 30 * time.Second}, + RenewDeadline: metav1.Duration{Duration: 15 * time.Second}, + RetryPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Controllers: []string{"foo", "bar"}, }, Debugging: &cmoptions.DebuggingOptions{ - EnableContentionProfiling: true, + DebuggingConfiguration: &componentbaseconfig.DebuggingConfiguration{ + EnableContentionProfiling: true, + }, }, - Controllers: []string{"foo", "bar"}, }, KubeCloudShared: &cmoptions.KubeCloudSharedOptions{ - CloudProvider: &cmoptions.CloudProviderOptions{ - Name: "gce", - CloudConfigFile: "/cloud-config", + KubeCloudSharedConfiguration: &kubectrlmgrconfig.KubeCloudSharedConfiguration{ + RouteReconciliationPeriod: metav1.Duration{Duration: 30 * time.Second}, + NodeMonitorPeriod: metav1.Duration{Duration: 5 * time.Second}, + ClusterName: "k8s", + ClusterCIDR: "1.2.3.4/24", + AllocateNodeCIDRs: true, + CIDRAllocatorType: "RangeAllocator", + ConfigureCloudRoutes: false, + }, + CloudProvider: &cmoptions.CloudProviderOptions{ + CloudProviderConfiguration: &kubectrlmgrconfig.CloudProviderConfiguration{ + Name: "gce", + CloudConfigFile: "/cloud-config", + }, }, - RouteReconciliationPeriod: metav1.Duration{Duration: 30 * time.Second}, - NodeMonitorPeriod: metav1.Duration{Duration: 5 * time.Second}, - ClusterName: "k8s", - ClusterCIDR: "1.2.3.4/24", - AllocateNodeCIDRs: true, - CIDRAllocatorType: "RangeAllocator", - ConfigureCloudRoutes: false, }, ServiceController: &cmoptions.ServiceControllerOptions{ - ConcurrentServiceSyncs: 1, + ServiceControllerConfiguration: &kubectrlmgrconfig.ServiceControllerConfiguration{ + ConcurrentServiceSyncs: 1, + }, }, SecureServing: (&apiserveroptions.SecureServingOptions{ BindPort: 10001, diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index 21f6dc050eb..a80a43bdb11 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -96,84 +96,67 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) { } s := KubeControllerManagerOptions{ - Generic: cmoptions.NewGenericControllerManagerConfigurationOptions(componentConfig.Generic), - KubeCloudShared: cmoptions.NewKubeCloudSharedOptions(componentConfig.KubeCloudShared), + Generic: cmoptions.NewGenericControllerManagerConfigurationOptions(&componentConfig.Generic), + KubeCloudShared: cmoptions.NewKubeCloudSharedOptions(&componentConfig.KubeCloudShared), + ServiceController: &cmoptions.ServiceControllerOptions{ + ServiceControllerConfiguration: &componentConfig.ServiceController, + }, AttachDetachController: &AttachDetachControllerOptions{ - ReconcilerSyncLoopPeriod: componentConfig.AttachDetachController.ReconcilerSyncLoopPeriod, + &componentConfig.AttachDetachController, }, CSRSigningController: &CSRSigningControllerOptions{ - ClusterSigningCertFile: componentConfig.CSRSigningController.ClusterSigningCertFile, - ClusterSigningKeyFile: componentConfig.CSRSigningController.ClusterSigningKeyFile, - ClusterSigningDuration: componentConfig.CSRSigningController.ClusterSigningDuration, + &componentConfig.CSRSigningController, }, DaemonSetController: &DaemonSetControllerOptions{ - ConcurrentDaemonSetSyncs: componentConfig.DaemonSetController.ConcurrentDaemonSetSyncs, + &componentConfig.DaemonSetController, }, DeploymentController: &DeploymentControllerOptions{ - ConcurrentDeploymentSyncs: componentConfig.DeploymentController.ConcurrentDeploymentSyncs, - DeploymentControllerSyncPeriod: componentConfig.DeploymentController.DeploymentControllerSyncPeriod, + &componentConfig.DeploymentController, }, DeprecatedFlags: &DeprecatedControllerOptions{ - RegisterRetryCount: componentConfig.DeprecatedController.RegisterRetryCount, + &componentConfig.DeprecatedController, }, EndpointController: &EndpointControllerOptions{ - ConcurrentEndpointSyncs: componentConfig.EndpointController.ConcurrentEndpointSyncs, + &componentConfig.EndpointController, }, GarbageCollectorController: &GarbageCollectorControllerOptions{ - ConcurrentGCSyncs: componentConfig.GarbageCollectorController.ConcurrentGCSyncs, - EnableGarbageCollector: componentConfig.GarbageCollectorController.EnableGarbageCollector, + &componentConfig.GarbageCollectorController, }, HPAController: &HPAControllerOptions{ - HorizontalPodAutoscalerSyncPeriod: componentConfig.HPAController.HorizontalPodAutoscalerSyncPeriod, - HorizontalPodAutoscalerUpscaleForbiddenWindow: componentConfig.HPAController.HorizontalPodAutoscalerUpscaleForbiddenWindow, - HorizontalPodAutoscalerDownscaleForbiddenWindow: componentConfig.HPAController.HorizontalPodAutoscalerDownscaleForbiddenWindow, - HorizontalPodAutoscalerDownscaleStabilizationWindow: componentConfig.HPAController.HorizontalPodAutoscalerDownscaleStabilizationWindow, - HorizontalPodAutoscalerCPUInitializationPeriod: componentConfig.HPAController.HorizontalPodAutoscalerCPUInitializationPeriod, - HorizontalPodAutoscalerInitialReadinessDelay: componentConfig.HPAController.HorizontalPodAutoscalerInitialReadinessDelay, - HorizontalPodAutoscalerTolerance: componentConfig.HPAController.HorizontalPodAutoscalerTolerance, - HorizontalPodAutoscalerUseRESTClients: componentConfig.HPAController.HorizontalPodAutoscalerUseRESTClients, + &componentConfig.HPAController, }, JobController: &JobControllerOptions{ - ConcurrentJobSyncs: componentConfig.JobController.ConcurrentJobSyncs, + &componentConfig.JobController, }, NamespaceController: &NamespaceControllerOptions{ - NamespaceSyncPeriod: componentConfig.NamespaceController.NamespaceSyncPeriod, - ConcurrentNamespaceSyncs: componentConfig.NamespaceController.ConcurrentNamespaceSyncs, + &componentConfig.NamespaceController, }, NodeIPAMController: &NodeIPAMControllerOptions{ - NodeCIDRMaskSize: componentConfig.NodeIPAMController.NodeCIDRMaskSize, + &componentConfig.NodeIPAMController, }, NodeLifecycleController: &NodeLifecycleControllerOptions{ - EnableTaintManager: componentConfig.NodeLifecycleController.EnableTaintManager, - NodeMonitorGracePeriod: componentConfig.NodeLifecycleController.NodeMonitorGracePeriod, - NodeStartupGracePeriod: componentConfig.NodeLifecycleController.NodeStartupGracePeriod, - PodEvictionTimeout: componentConfig.NodeLifecycleController.PodEvictionTimeout, + &componentConfig.NodeLifecycleController, }, PersistentVolumeBinderController: &PersistentVolumeBinderControllerOptions{ - PVClaimBinderSyncPeriod: componentConfig.PersistentVolumeBinderController.PVClaimBinderSyncPeriod, - VolumeConfiguration: componentConfig.PersistentVolumeBinderController.VolumeConfiguration, + &componentConfig.PersistentVolumeBinderController, }, PodGCController: &PodGCControllerOptions{ - TerminatedPodGCThreshold: componentConfig.PodGCController.TerminatedPodGCThreshold, + &componentConfig.PodGCController, }, ReplicaSetController: &ReplicaSetControllerOptions{ - ConcurrentRSSyncs: componentConfig.ReplicaSetController.ConcurrentRSSyncs, + &componentConfig.ReplicaSetController, }, ReplicationController: &ReplicationControllerOptions{ - ConcurrentRCSyncs: componentConfig.ReplicationController.ConcurrentRCSyncs, + &componentConfig.ReplicationController, }, ResourceQuotaController: &ResourceQuotaControllerOptions{ - ResourceQuotaSyncPeriod: componentConfig.ResourceQuotaController.ResourceQuotaSyncPeriod, - ConcurrentResourceQuotaSyncs: componentConfig.ResourceQuotaController.ConcurrentResourceQuotaSyncs, + &componentConfig.ResourceQuotaController, }, SAController: &SAControllerOptions{ - ConcurrentSATokenSyncs: componentConfig.SAController.ConcurrentSATokenSyncs, - }, - ServiceController: &cmoptions.ServiceControllerOptions{ - ConcurrentServiceSyncs: componentConfig.ServiceController.ConcurrentServiceSyncs, + &componentConfig.SAController, }, TTLAfterFinishedController: &TTLAfterFinishedControllerOptions{ - ConcurrentTTLSyncs: componentConfig.TTLAfterFinishedController.ConcurrentTTLSyncs, + &componentConfig.TTLAfterFinishedController, }, SecureServing: apiserveroptions.NewSecureServingOptions().WithLoopback(), InsecureServing: (&apiserveroptions.DeprecatedInsecureServingOptions{ diff --git a/cmd/kube-controller-manager/app/options/options_test.go b/cmd/kube-controller-manager/app/options/options_test.go index f47431ec0ea..770253e2f35 100644 --- a/cmd/kube-controller-manager/app/options/options_test.go +++ b/cmd/kube-controller-manager/app/options/options_test.go @@ -124,139 +124,187 @@ func TestAddFlags(t *testing.T) { expected := &KubeControllerManagerOptions{ Generic: &cmoptions.GenericControllerManagerConfigurationOptions{ - Port: 10252, // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config - Address: "0.0.0.0", // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config - MinResyncPeriod: metav1.Duration{Duration: 8 * time.Hour}, - ClientConnection: componentbaseconfig.ClientConnectionConfiguration{ - ContentType: "application/json", - QPS: 50.0, - Burst: 100, - }, - ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute}, - LeaderElection: componentbaseconfig.LeaderElectionConfiguration{ - ResourceLock: "configmap", - LeaderElect: false, - LeaseDuration: metav1.Duration{Duration: 30 * time.Second}, - RenewDeadline: metav1.Duration{Duration: 15 * time.Second}, - RetryPeriod: metav1.Duration{Duration: 5 * time.Second}, + GenericControllerManagerConfiguration: &kubectrlmgrconfig.GenericControllerManagerConfiguration{ + Port: 10252, // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config + Address: "0.0.0.0", // Note: InsecureServingOptions.ApplyTo will write the flag value back into the component config + MinResyncPeriod: metav1.Duration{Duration: 8 * time.Hour}, + ClientConnection: componentbaseconfig.ClientConnectionConfiguration{ + ContentType: "application/json", + QPS: 50.0, + Burst: 100, + }, + ControllerStartInterval: metav1.Duration{Duration: 2 * time.Minute}, + LeaderElection: componentbaseconfig.LeaderElectionConfiguration{ + ResourceLock: "configmap", + LeaderElect: false, + LeaseDuration: metav1.Duration{Duration: 30 * time.Second}, + RenewDeadline: metav1.Duration{Duration: 15 * time.Second}, + RetryPeriod: metav1.Duration{Duration: 5 * time.Second}, + }, + Controllers: []string{"foo", "bar"}, }, Debugging: &cmoptions.DebuggingOptions{ - EnableProfiling: false, - EnableContentionProfiling: true, + DebuggingConfiguration: &componentbaseconfig.DebuggingConfiguration{ + EnableProfiling: false, + EnableContentionProfiling: true, + }, }, - Controllers: []string{"foo", "bar"}, }, KubeCloudShared: &cmoptions.KubeCloudSharedOptions{ - UseServiceAccountCredentials: true, - RouteReconciliationPeriod: metav1.Duration{Duration: 30 * time.Second}, - NodeMonitorPeriod: metav1.Duration{Duration: 10 * time.Second}, - ClusterName: "k8s", - ClusterCIDR: "1.2.3.4/24", - AllocateNodeCIDRs: true, - CIDRAllocatorType: "CloudAllocator", - ConfigureCloudRoutes: false, + KubeCloudSharedConfiguration: &kubectrlmgrconfig.KubeCloudSharedConfiguration{ + UseServiceAccountCredentials: true, + RouteReconciliationPeriod: metav1.Duration{Duration: 30 * time.Second}, + NodeMonitorPeriod: metav1.Duration{Duration: 10 * time.Second}, + ClusterName: "k8s", + ClusterCIDR: "1.2.3.4/24", + AllocateNodeCIDRs: true, + CIDRAllocatorType: "CloudAllocator", + ConfigureCloudRoutes: false, + }, CloudProvider: &cmoptions.CloudProviderOptions{ - Name: "gce", - CloudConfigFile: "/cloud-config", + CloudProviderConfiguration: &kubectrlmgrconfig.CloudProviderConfiguration{ + Name: "gce", + CloudConfigFile: "/cloud-config", + }, + }, + }, + ServiceController: &cmoptions.ServiceControllerOptions{ + ServiceControllerConfiguration: &kubectrlmgrconfig.ServiceControllerConfiguration{ + ConcurrentServiceSyncs: 2, }, }, AttachDetachController: &AttachDetachControllerOptions{ - ReconcilerSyncLoopPeriod: metav1.Duration{Duration: 30 * time.Second}, - DisableAttachDetachReconcilerSync: true, + &kubectrlmgrconfig.AttachDetachControllerConfiguration{ + ReconcilerSyncLoopPeriod: metav1.Duration{Duration: 30 * time.Second}, + DisableAttachDetachReconcilerSync: true, + }, }, CSRSigningController: &CSRSigningControllerOptions{ - ClusterSigningCertFile: "/cluster-signing-cert", - ClusterSigningKeyFile: "/cluster-signing-key", - ClusterSigningDuration: metav1.Duration{Duration: 10 * time.Hour}, + &kubectrlmgrconfig.CSRSigningControllerConfiguration{ + ClusterSigningCertFile: "/cluster-signing-cert", + ClusterSigningKeyFile: "/cluster-signing-key", + ClusterSigningDuration: metav1.Duration{Duration: 10 * time.Hour}, + }, }, DaemonSetController: &DaemonSetControllerOptions{ - ConcurrentDaemonSetSyncs: 2, + &kubectrlmgrconfig.DaemonSetControllerConfiguration{ + ConcurrentDaemonSetSyncs: 2, + }, }, DeploymentController: &DeploymentControllerOptions{ - ConcurrentDeploymentSyncs: 10, - DeploymentControllerSyncPeriod: metav1.Duration{Duration: 45 * time.Second}, + &kubectrlmgrconfig.DeploymentControllerConfiguration{ + ConcurrentDeploymentSyncs: 10, + DeploymentControllerSyncPeriod: metav1.Duration{Duration: 45 * time.Second}, + }, }, DeprecatedFlags: &DeprecatedControllerOptions{ - DeletingPodsQPS: 0.1, - RegisterRetryCount: 10, + &kubectrlmgrconfig.DeprecatedControllerConfiguration{ + DeletingPodsQPS: 0.1, + RegisterRetryCount: 10, + }, }, EndpointController: &EndpointControllerOptions{ - ConcurrentEndpointSyncs: 10, + &kubectrlmgrconfig.EndpointControllerConfiguration{ + ConcurrentEndpointSyncs: 10, + }, }, GarbageCollectorController: &GarbageCollectorControllerOptions{ - ConcurrentGCSyncs: 30, - GCIgnoredResources: []kubectrlmgrconfig.GroupResource{ - {Group: "", Resource: "events"}, + &kubectrlmgrconfig.GarbageCollectorControllerConfiguration{ + ConcurrentGCSyncs: 30, + GCIgnoredResources: []kubectrlmgrconfig.GroupResource{ + {Group: "", Resource: "events"}, + }, + EnableGarbageCollector: false, }, - EnableGarbageCollector: false, }, HPAController: &HPAControllerOptions{ - HorizontalPodAutoscalerSyncPeriod: metav1.Duration{Duration: 45 * time.Second}, - HorizontalPodAutoscalerUpscaleForbiddenWindow: metav1.Duration{Duration: 1 * time.Minute}, - HorizontalPodAutoscalerDownscaleForbiddenWindow: metav1.Duration{Duration: 2 * time.Minute}, - HorizontalPodAutoscalerDownscaleStabilizationWindow: metav1.Duration{Duration: 3 * time.Minute}, - HorizontalPodAutoscalerCPUInitializationPeriod: metav1.Duration{Duration: 90 * time.Second}, - HorizontalPodAutoscalerInitialReadinessDelay: metav1.Duration{Duration: 50 * time.Second}, - HorizontalPodAutoscalerTolerance: 0.1, - HorizontalPodAutoscalerUseRESTClients: true, + &kubectrlmgrconfig.HPAControllerConfiguration{ + HorizontalPodAutoscalerSyncPeriod: metav1.Duration{Duration: 45 * time.Second}, + HorizontalPodAutoscalerUpscaleForbiddenWindow: metav1.Duration{Duration: 1 * time.Minute}, + HorizontalPodAutoscalerDownscaleForbiddenWindow: metav1.Duration{Duration: 2 * time.Minute}, + HorizontalPodAutoscalerDownscaleStabilizationWindow: metav1.Duration{Duration: 3 * time.Minute}, + HorizontalPodAutoscalerCPUInitializationPeriod: metav1.Duration{Duration: 90 * time.Second}, + HorizontalPodAutoscalerInitialReadinessDelay: metav1.Duration{Duration: 50 * time.Second}, + HorizontalPodAutoscalerTolerance: 0.1, + HorizontalPodAutoscalerUseRESTClients: true, + }, }, JobController: &JobControllerOptions{ - ConcurrentJobSyncs: 5, + &kubectrlmgrconfig.JobControllerConfiguration{ + ConcurrentJobSyncs: 5, + }, }, NamespaceController: &NamespaceControllerOptions{ - NamespaceSyncPeriod: metav1.Duration{Duration: 10 * time.Minute}, - ConcurrentNamespaceSyncs: 20, + &kubectrlmgrconfig.NamespaceControllerConfiguration{ + NamespaceSyncPeriod: metav1.Duration{Duration: 10 * time.Minute}, + ConcurrentNamespaceSyncs: 20, + }, }, NodeIPAMController: &NodeIPAMControllerOptions{ - NodeCIDRMaskSize: 48, + &kubectrlmgrconfig.NodeIPAMControllerConfiguration{ + NodeCIDRMaskSize: 48, + }, }, NodeLifecycleController: &NodeLifecycleControllerOptions{ - EnableTaintManager: false, - NodeEvictionRate: 0.2, - SecondaryNodeEvictionRate: 0.05, - NodeMonitorGracePeriod: metav1.Duration{Duration: 30 * time.Second}, - NodeStartupGracePeriod: metav1.Duration{Duration: 30 * time.Second}, - PodEvictionTimeout: metav1.Duration{Duration: 2 * time.Minute}, - LargeClusterSizeThreshold: 100, - UnhealthyZoneThreshold: 0.6, + &kubectrlmgrconfig.NodeLifecycleControllerConfiguration{ + EnableTaintManager: false, + NodeEvictionRate: 0.2, + SecondaryNodeEvictionRate: 0.05, + NodeMonitorGracePeriod: metav1.Duration{Duration: 30 * time.Second}, + NodeStartupGracePeriod: metav1.Duration{Duration: 30 * time.Second}, + PodEvictionTimeout: metav1.Duration{Duration: 2 * time.Minute}, + LargeClusterSizeThreshold: 100, + UnhealthyZoneThreshold: 0.6, + }, }, PersistentVolumeBinderController: &PersistentVolumeBinderControllerOptions{ - PVClaimBinderSyncPeriod: metav1.Duration{Duration: 30 * time.Second}, - VolumeConfiguration: kubectrlmgrconfig.VolumeConfiguration{ - EnableDynamicProvisioning: false, - EnableHostPathProvisioning: true, - FlexVolumePluginDir: "/flex-volume-plugin", - PersistentVolumeRecyclerConfiguration: kubectrlmgrconfig.PersistentVolumeRecyclerConfiguration{ - MaximumRetry: 3, - MinimumTimeoutNFS: 200, - IncrementTimeoutNFS: 45, - MinimumTimeoutHostPath: 45, - IncrementTimeoutHostPath: 45, + &kubectrlmgrconfig.PersistentVolumeBinderControllerConfiguration{ + PVClaimBinderSyncPeriod: metav1.Duration{Duration: 30 * time.Second}, + VolumeConfiguration: kubectrlmgrconfig.VolumeConfiguration{ + EnableDynamicProvisioning: false, + EnableHostPathProvisioning: true, + FlexVolumePluginDir: "/flex-volume-plugin", + PersistentVolumeRecyclerConfiguration: kubectrlmgrconfig.PersistentVolumeRecyclerConfiguration{ + MaximumRetry: 3, + MinimumTimeoutNFS: 200, + IncrementTimeoutNFS: 45, + MinimumTimeoutHostPath: 45, + IncrementTimeoutHostPath: 45, + }, }, }, }, PodGCController: &PodGCControllerOptions{ - TerminatedPodGCThreshold: 12000, + &kubectrlmgrconfig.PodGCControllerConfiguration{ + TerminatedPodGCThreshold: 12000, + }, }, ReplicaSetController: &ReplicaSetControllerOptions{ - ConcurrentRSSyncs: 10, + &kubectrlmgrconfig.ReplicaSetControllerConfiguration{ + ConcurrentRSSyncs: 10, + }, }, ReplicationController: &ReplicationControllerOptions{ - ConcurrentRCSyncs: 10, + &kubectrlmgrconfig.ReplicationControllerConfiguration{ + ConcurrentRCSyncs: 10, + }, }, ResourceQuotaController: &ResourceQuotaControllerOptions{ - ResourceQuotaSyncPeriod: metav1.Duration{Duration: 10 * time.Minute}, - ConcurrentResourceQuotaSyncs: 10, + &kubectrlmgrconfig.ResourceQuotaControllerConfiguration{ + ResourceQuotaSyncPeriod: metav1.Duration{Duration: 10 * time.Minute}, + ConcurrentResourceQuotaSyncs: 10, + }, }, SAController: &SAControllerOptions{ - ServiceAccountKeyFile: "/service-account-private-key", - ConcurrentSATokenSyncs: 10, - }, - ServiceController: &cmoptions.ServiceControllerOptions{ - ConcurrentServiceSyncs: 2, + &kubectrlmgrconfig.SAControllerConfiguration{ + ServiceAccountKeyFile: "/service-account-private-key", + ConcurrentSATokenSyncs: 10, + }, }, TTLAfterFinishedController: &TTLAfterFinishedControllerOptions{ - ConcurrentTTLSyncs: 8, + &kubectrlmgrconfig.TTLAfterFinishedControllerConfiguration{ + ConcurrentTTLSyncs: 8, + }, }, SecureServing: (&apiserveroptions.SecureServingOptions{ BindPort: 10001,