Merge pull request #67469 from stewart-yu/stewart-controller-manager-kubecomponentconfig
Automatic merge from submit-queue (batch tested with PRs 65074, 67469). If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md. Move kube-controller-manager ComponentConfig external types to `k8s.io/kube-controller-manager` **What this PR does / why we need it**: As the title describe: split `kube-controller-manager` component api into their own packages: - external component api located in `k8s.io/kube-controller-manager/config/v1alpha/types.go`; - internal component api located in `pkg/controller/apis/config/types.go` **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes # ref: [kubernetes/community#2354](https://github.com/kubernetes/community/pull/2354) **Special notes for your reviewer**: **Release note**: ```release-note NONE ```
This commit is contained in:
commit
1fc36a5743
@ -57,115 +57,115 @@ API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentT
|
|||||||
API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,Type
|
API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,Type
|
||||||
API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,IntVal
|
API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,IntVal
|
||||||
API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,StrVal
|
API rule violation: names_match,k8s.io/apimachinery/pkg/util/intstr,IntOrString,StrVal
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,AttachDetachControllerConfiguration,DisableAttachDetachReconcilerSync
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,AttachDetachControllerConfiguration,ReconcilerSyncLoopPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningCertFile
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningKeyFile
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningDuration
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CloudProviderConfiguration,Name
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,CloudProviderConfiguration,CloudConfigFile
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQPS
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsBurst
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,DeprecatedControllerConfiguration,RegisterRetryCount
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,EndpointControllerConfiguration,ConcurrentEndpointSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GarbageCollectorControllerConfiguration,EnableGarbageCollector
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GarbageCollectorControllerConfiguration,ConcurrentGCSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GarbageCollectorControllerConfiguration,GCIgnoredResources
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,Port
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,Address
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,MinResyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,ClientConnection
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,ControllerStartInterval
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,LeaderElection
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,Controllers
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GenericControllerManagerConfiguration,Debugging
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GroupResource,Group
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,GroupResource,Resource
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerSyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerUpscaleForbiddenWindow
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerDownscaleStabilizationWindow
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerDownscaleForbiddenWindow
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerTolerance
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerUseRESTClients
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerCPUInitializationPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerInitialReadinessDelay
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,JobControllerConfiguration,ConcurrentJobSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,CloudProvider
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,ExternalCloudVolumePlugin
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,UseServiceAccountCredentials
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,AllowUntaggedCloud
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,RouteReconciliationPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,NodeMonitorPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,ClusterName
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,ClusterCIDR
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,AllocateNodeCIDRs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,CIDRAllocatorType
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,ConfigureCloudRoutes
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeCloudSharedConfiguration,NodeSyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,Generic
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,KubeCloudShared
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,AttachDetachController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,CSRSigningController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,DaemonSetController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,DeploymentController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,DeprecatedController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,EndpointController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,GarbageCollectorController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,HPAController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,JobController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,NamespaceController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,NodeIPAMController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,NodeLifecycleController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,PersistentVolumeBinderController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,PodGCController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ReplicaSetController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ReplicationController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ResourceQuotaController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,SAController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,KubeControllerManagerConfiguration,ServiceController
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NamespaceControllerConfiguration,NamespaceSyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NamespaceControllerConfiguration,ConcurrentNamespaceSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeIPAMControllerConfiguration,ServiceCIDR
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeIPAMControllerConfiguration,NodeCIDRMaskSize
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,EnableTaintManager
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,NodeEvictionRate
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,SecondaryNodeEvictionRate
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,NodeStartupGracePeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,NodeMonitorGracePeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,PodEvictionTimeout
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,LargeClusterSizeThreshold
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,NodeLifecycleControllerConfiguration,UnhealthyZoneThreshold
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeBinderControllerConfiguration,PVClaimBinderSyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeBinderControllerConfiguration,VolumeConfiguration
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,MaximumRetry
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,MinimumTimeoutNFS
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,PodTemplateFilePathNFS
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,IncrementTimeoutNFS
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,PodTemplateFilePathHostPath
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,MinimumTimeoutHostPath
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PersistentVolumeRecyclerConfiguration,IncrementTimeoutHostPath
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,PodGCControllerConfiguration,TerminatedPodGCThreshold
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ReplicaSetControllerConfiguration,ConcurrentRSSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ReplicationControllerConfiguration,ConcurrentRCSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceQuotaControllerConfiguration,ResourceQuotaSyncPeriod
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ResourceQuotaControllerConfiguration,ConcurrentResourceQuotaSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,ServiceAccountKeyFile
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,ConcurrentSATokenSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,SAControllerConfiguration,RootCAFile
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,ServiceControllerConfiguration,ConcurrentServiceSyncs
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,EnableHostPathProvisioning
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,EnableDynamicProvisioning
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,PersistentVolumeRecyclerConfiguration
|
||||||
|
API rule violation: names_match,k8s.io/kube-controller-manager/config/v1alpha1,VolumeConfiguration,FlexVolumePluginDir
|
||||||
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,ResolverConfig
|
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,ResolverConfig
|
||||||
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,IPTablesMasqueradeBit
|
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,IPTablesMasqueradeBit
|
||||||
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,IPTablesDropBit
|
API rule violation: names_match,k8s.io/kubelet/config/v1beta1,KubeletConfiguration,IPTablesDropBit
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,AttachDetachControllerConfiguration,DisableAttachDetachReconcilerSync
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,AttachDetachControllerConfiguration,ReconcilerSyncLoopPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningCertFile
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningKeyFile
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CSRSigningControllerConfiguration,ClusterSigningDuration
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,Generic
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,Generic
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,KubeCloudShared
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,KubeCloudShared
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,ServiceController
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,ServiceController
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,NodeStatusUpdateFrequency
|
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudControllerManagerConfiguration,NodeStatusUpdateFrequency
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,Name
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,CloudProviderConfiguration,CloudConfigFile
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DaemonSetControllerConfiguration,ConcurrentDaemonSetSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,ConcurrentDeploymentSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeploymentControllerConfiguration,DeploymentControllerSyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsQps
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,DeletingPodsBurst
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,DeprecatedControllerConfiguration,RegisterRetryCount
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,EndpointControllerConfiguration,ConcurrentEndpointSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GarbageCollectorControllerConfiguration,EnableGarbageCollector
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GarbageCollectorControllerConfiguration,ConcurrentGCSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GarbageCollectorControllerConfiguration,GCIgnoredResources
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,Port
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,Address
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,MinResyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,ClientConnection
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,ControllerStartInterval
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,LeaderElection
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,Controllers
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GenericControllerManagerConfiguration,Debugging
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GroupResource,Group
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,GroupResource,Resource
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerSyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerUpscaleForbiddenWindow
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerDownscaleStabilizationWindow
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerDownscaleForbiddenWindow
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerTolerance
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerUseRESTClients
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerCPUInitializationPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,HPAControllerConfiguration,HorizontalPodAutoscalerInitialReadinessDelay
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,JobControllerConfiguration,ConcurrentJobSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,CloudProvider
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ExternalCloudVolumePlugin
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,UseServiceAccountCredentials
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,AllowUntaggedCloud
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,RouteReconciliationPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,NodeMonitorPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ClusterName
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ClusterCIDR
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,AllocateNodeCIDRs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,CIDRAllocatorType
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,ConfigureCloudRoutes
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeCloudSharedConfiguration,NodeSyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,Generic
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,KubeCloudShared
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,AttachDetachController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,CSRSigningController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,DaemonSetController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,DeploymentController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,DeprecatedController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,EndpointController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,GarbageCollectorController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,HPAController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,JobController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,NamespaceController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,NodeIPAMController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,NodeLifecycleController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,PersistentVolumeBinderController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,PodGCController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ReplicaSetController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ReplicationController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ResourceQuotaController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,SAController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,KubeControllerManagerConfiguration,ServiceController
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NamespaceControllerConfiguration,NamespaceSyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NamespaceControllerConfiguration,ConcurrentNamespaceSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeIPAMControllerConfiguration,ServiceCIDR
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeIPAMControllerConfiguration,NodeCIDRMaskSize
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,EnableTaintManager
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,NodeEvictionRate
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,SecondaryNodeEvictionRate
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,NodeStartupGracePeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,NodeMonitorGracePeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,PodEvictionTimeout
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,LargeClusterSizeThreshold
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,NodeLifecycleControllerConfiguration,UnhealthyZoneThreshold
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeBinderControllerConfiguration,PVClaimBinderSyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeBinderControllerConfiguration,VolumeConfiguration
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,MaximumRetry
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,MinimumTimeoutNFS
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,PodTemplateFilePathNFS
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,IncrementTimeoutNFS
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,PodTemplateFilePathHostPath
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,MinimumTimeoutHostPath
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PersistentVolumeRecyclerConfiguration,IncrementTimeoutHostPath
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,PodGCControllerConfiguration,TerminatedPodGCThreshold
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ReplicaSetControllerConfiguration,ConcurrentRSSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ReplicationControllerConfiguration,ConcurrentRCSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ResourceQuotaControllerConfiguration,ResourceQuotaSyncPeriod
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ResourceQuotaControllerConfiguration,ConcurrentResourceQuotaSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,SAControllerConfiguration,ServiceAccountKeyFile
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,SAControllerConfiguration,ConcurrentSATokenSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,SAControllerConfiguration,RootCAFile
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,ServiceControllerConfiguration,ConcurrentServiceSyncs
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,EnableHostPathProvisioning
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,EnableDynamicProvisioning
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,PersistentVolumeRecyclerConfiguration
|
|
||||||
API rule violation: names_match,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,VolumeConfiguration,FlexVolumePluginDir
|
|
||||||
API rule violation: names_match,k8s.io/metrics/pkg/apis/custom_metrics/v1beta1,MetricValue,WindowSeconds
|
API rule violation: names_match,k8s.io/metrics/pkg/apis/custom_metrics/v1beta1,MetricValue,WindowSeconds
|
||||||
API rule violation: names_match,k8s.io/metrics/pkg/apis/external_metrics/v1beta1,ExternalMetricValue,WindowSeconds
|
API rule violation: names_match,k8s.io/metrics/pkg/apis/external_metrics/v1beta1,ExternalMetricValue,WindowSeconds
|
||||||
|
@ -12,8 +12,8 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/cmd/controller-manager/app/options",
|
importpath = "k8s.io/kubernetes/cmd/controller-manager/app/options",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
|
||||||
"//pkg/client/leaderelectionconfig:go_default_library",
|
"//pkg/client/leaderelectionconfig:go_default_library",
|
||||||
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CloudProviderOptions holds the cloudprovider options.
|
// CloudProviderOptions holds the cloudprovider options.
|
||||||
@ -44,7 +44,7 @@ func (s *CloudProviderOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up cloudprovider config with options.
|
// ApplyTo fills up cloudprovider config with options.
|
||||||
func (s *CloudProviderOptions) ApplyTo(cfg *componentconfig.CloudProviderConfiguration) error {
|
func (s *CloudProviderOptions) ApplyTo(cfg *kubectrlmgrconfig.CloudProviderConfiguration) error {
|
||||||
if s == nil {
|
if s == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
apiserverflag "k8s.io/apiserver/pkg/util/flag"
|
apiserverflag "k8s.io/apiserver/pkg/util/flag"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
|
||||||
"k8s.io/kubernetes/pkg/client/leaderelectionconfig"
|
"k8s.io/kubernetes/pkg/client/leaderelectionconfig"
|
||||||
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GenericControllerManagerConfigurationOptions holds the options which are generic.
|
// GenericControllerManagerConfigurationOptions holds the options which are generic.
|
||||||
@ -44,7 +44,7 @@ type GenericControllerManagerConfigurationOptions struct {
|
|||||||
// NewGenericControllerManagerConfigurationOptions returns generic configuration default values for both
|
// NewGenericControllerManagerConfigurationOptions returns generic configuration default values for both
|
||||||
// the kube-controller-manager and the cloud-contoller-manager. Any common changes should
|
// the kube-controller-manager and the cloud-contoller-manager. Any common changes should
|
||||||
// be made here. Any individual changes should be made in that controller.
|
// be made here. Any individual changes should be made in that controller.
|
||||||
func NewGenericControllerManagerConfigurationOptions(cfg componentconfig.GenericControllerManagerConfiguration) *GenericControllerManagerConfigurationOptions {
|
func NewGenericControllerManagerConfigurationOptions(cfg kubectrlmgrconfig.GenericControllerManagerConfiguration) *GenericControllerManagerConfigurationOptions {
|
||||||
o := &GenericControllerManagerConfigurationOptions{
|
o := &GenericControllerManagerConfigurationOptions{
|
||||||
Port: cfg.Port,
|
Port: cfg.Port,
|
||||||
Address: cfg.Address,
|
Address: cfg.Address,
|
||||||
@ -82,7 +82,7 @@ func (o *GenericControllerManagerConfigurationOptions) AddFlags(fss *apiserverfl
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up generic config with options.
|
// ApplyTo fills up generic config with options.
|
||||||
func (o *GenericControllerManagerConfigurationOptions) ApplyTo(cfg *componentconfig.GenericControllerManagerConfiguration) error {
|
func (o *GenericControllerManagerConfigurationOptions) ApplyTo(cfg *kubectrlmgrconfig.GenericControllerManagerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// KubeCloudSharedOptions holds the options shared between kube-controller-manager
|
// KubeCloudSharedOptions holds the options shared between kube-controller-manager
|
||||||
@ -43,7 +43,7 @@ type KubeCloudSharedOptions struct {
|
|||||||
// NewKubeCloudSharedOptions returns common/default configuration values for both
|
// NewKubeCloudSharedOptions returns common/default configuration values for both
|
||||||
// the kube-controller-manager and the cloud-contoller-manager. Any common changes should
|
// the kube-controller-manager and the cloud-contoller-manager. Any common changes should
|
||||||
// be made here. Any individual changes should be made in that controller.
|
// be made here. Any individual changes should be made in that controller.
|
||||||
func NewKubeCloudSharedOptions(cfg componentconfig.KubeCloudSharedConfiguration) *KubeCloudSharedOptions {
|
func NewKubeCloudSharedOptions(cfg kubectrlmgrconfig.KubeCloudSharedConfiguration) *KubeCloudSharedOptions {
|
||||||
o := &KubeCloudSharedOptions{
|
o := &KubeCloudSharedOptions{
|
||||||
CloudProvider: &CloudProviderOptions{},
|
CloudProvider: &CloudProviderOptions{},
|
||||||
ExternalCloudVolumePlugin: cfg.ExternalCloudVolumePlugin,
|
ExternalCloudVolumePlugin: cfg.ExternalCloudVolumePlugin,
|
||||||
@ -84,7 +84,7 @@ func (o *KubeCloudSharedOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up KubeCloudShared config with options.
|
// ApplyTo fills up KubeCloudShared config with options.
|
||||||
func (o *KubeCloudSharedOptions) ApplyTo(cfg *componentconfig.KubeCloudSharedConfiguration) error {
|
func (o *KubeCloudSharedOptions) ApplyTo(cfg *kubectrlmgrconfig.KubeCloudSharedConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ServiceControllerOptions holds the ServiceController options.
|
// ServiceControllerOptions holds the ServiceController options.
|
||||||
@ -37,7 +37,7 @@ func (o *ServiceControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up ServiceController config with options.
|
// ApplyTo fills up ServiceController config with options.
|
||||||
func (o *ServiceControllerOptions) ApplyTo(cfg *componentconfig.ServiceControllerConfiguration) error {
|
func (o *ServiceControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.ServiceControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,6 @@ go_library(
|
|||||||
"//pkg/apis/autoscaling/install:go_default_library",
|
"//pkg/apis/autoscaling/install:go_default_library",
|
||||||
"//pkg/apis/batch/install:go_default_library",
|
"//pkg/apis/batch/install:go_default_library",
|
||||||
"//pkg/apis/certificates/install:go_default_library",
|
"//pkg/apis/certificates/install:go_default_library",
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
|
||||||
"//pkg/apis/coordination/install:go_default_library",
|
"//pkg/apis/coordination/install:go_default_library",
|
||||||
"//pkg/apis/core/install:go_default_library",
|
"//pkg/apis/core/install:go_default_library",
|
||||||
"//pkg/apis/events/install:go_default_library",
|
"//pkg/apis/events/install:go_default_library",
|
||||||
@ -41,6 +40,7 @@ go_library(
|
|||||||
"//pkg/cloudprovider:go_default_library",
|
"//pkg/cloudprovider:go_default_library",
|
||||||
"//pkg/cloudprovider/providers:go_default_library",
|
"//pkg/cloudprovider/providers:go_default_library",
|
||||||
"//pkg/controller:go_default_library",
|
"//pkg/controller:go_default_library",
|
||||||
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
"//pkg/controller/bootstrap:go_default_library",
|
"//pkg/controller/bootstrap:go_default_library",
|
||||||
"//pkg/controller/certificates/approver:go_default_library",
|
"//pkg/controller/certificates/approver:go_default_library",
|
||||||
"//pkg/controller/certificates/cleaner:go_default_library",
|
"//pkg/controller/certificates/cleaner:go_default_library",
|
||||||
|
@ -6,7 +6,7 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/cmd/kube-controller-manager/app/config",
|
importpath = "k8s.io/kubernetes/cmd/kube-controller-manager/app/config",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
|
@ -21,12 +21,12 @@ import (
|
|||||||
clientset "k8s.io/client-go/kubernetes"
|
clientset "k8s.io/client-go/kubernetes"
|
||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config is the main context object for the controller manager.
|
// Config is the main context object for the controller manager.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
ComponentConfig componentconfig.KubeControllerManagerConfiguration
|
ComponentConfig kubectrlmgrconfig.KubeControllerManagerConfiguration
|
||||||
|
|
||||||
SecureServing *apiserver.SecureServingInfo
|
SecureServing *apiserver.SecureServingInfo
|
||||||
// LoopbackClientConfig is a config for a privileged loopback connection
|
// LoopbackClientConfig is a config for a privileged loopback connection
|
||||||
|
@ -50,9 +50,9 @@ import (
|
|||||||
genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app"
|
genericcontrollermanager "k8s.io/kubernetes/cmd/controller-manager/app"
|
||||||
"k8s.io/kubernetes/cmd/kube-controller-manager/app/config"
|
"k8s.io/kubernetes/cmd/kube-controller-manager/app/config"
|
||||||
"k8s.io/kubernetes/cmd/kube-controller-manager/app/options"
|
"k8s.io/kubernetes/cmd/kube-controller-manager/app/options"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
"k8s.io/kubernetes/pkg/controller"
|
"k8s.io/kubernetes/pkg/controller"
|
||||||
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount"
|
serviceaccountcontroller "k8s.io/kubernetes/pkg/controller/serviceaccount"
|
||||||
"k8s.io/kubernetes/pkg/serviceaccount"
|
"k8s.io/kubernetes/pkg/serviceaccount"
|
||||||
"k8s.io/kubernetes/pkg/util/configz"
|
"k8s.io/kubernetes/pkg/util/configz"
|
||||||
@ -250,7 +250,7 @@ type ControllerContext struct {
|
|||||||
InformerFactory informers.SharedInformerFactory
|
InformerFactory informers.SharedInformerFactory
|
||||||
|
|
||||||
// ComponentConfig provides access to init options for a given controller
|
// ComponentConfig provides access to init options for a given controller
|
||||||
ComponentConfig componentconfig.KubeControllerManagerConfiguration
|
ComponentConfig kubectrlmgrconfig.KubeControllerManagerConfiguration
|
||||||
|
|
||||||
// DeferredDiscoveryRESTMapper is a RESTMapper that will defer
|
// DeferredDiscoveryRESTMapper is a RESTMapper that will defer
|
||||||
// initialization of the RESTMapper until the first mapping is
|
// initialization of the RESTMapper until the first mapping is
|
||||||
|
@ -34,8 +34,8 @@ go_library(
|
|||||||
"//cmd/controller-manager/app/options:go_default_library",
|
"//cmd/controller-manager/app/options:go_default_library",
|
||||||
"//cmd/kube-controller-manager/app/config:go_default_library",
|
"//cmd/kube-controller-manager/app/config:go_default_library",
|
||||||
"//pkg/api/legacyscheme:go_default_library",
|
"//pkg/api/legacyscheme:go_default_library",
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
"//pkg/apis/componentconfig/v1alpha1:go_default_library",
|
"//pkg/controller/apis/config/v1alpha1:go_default_library",
|
||||||
"//pkg/controller/garbagecollector:go_default_library",
|
"//pkg/controller/garbagecollector:go_default_library",
|
||||||
"//pkg/features:go_default_library",
|
"//pkg/features:go_default_library",
|
||||||
"//pkg/master/ports:go_default_library",
|
"//pkg/master/ports:go_default_library",
|
||||||
@ -51,6 +51,7 @@ go_library(
|
|||||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/clientcmd:go_default_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/client-go/tools/record:go_default_library",
|
||||||
|
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library",
|
||||||
"//vendor/github.com/golang/glog:go_default_library",
|
"//vendor/github.com/golang/glog:go_default_library",
|
||||||
"//vendor/github.com/spf13/pflag:go_default_library",
|
"//vendor/github.com/spf13/pflag:go_default_library",
|
||||||
],
|
],
|
||||||
@ -76,7 +77,7 @@ go_test(
|
|||||||
tags = ["automanaged"],
|
tags = ["automanaged"],
|
||||||
deps = [
|
deps = [
|
||||||
"//cmd/controller-manager/app/options:go_default_library",
|
"//cmd/controller-manager/app/options:go_default_library",
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// AttachDetachControllerOptions holds the AttachDetachController options.
|
// AttachDetachControllerOptions holds the AttachDetachController options.
|
||||||
@ -40,7 +40,7 @@ func (o *AttachDetachControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up AttachDetachController config with options.
|
// ApplyTo fills up AttachDetachController config with options.
|
||||||
func (o *AttachDetachControllerOptions) ApplyTo(cfg *componentconfig.AttachDetachControllerConfiguration) error {
|
func (o *AttachDetachControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.AttachDetachControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -52,7 +52,7 @@ func (o *CSRSigningControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up CSRSigningController config with options.
|
// ApplyTo fills up CSRSigningController config with options.
|
||||||
func (o *CSRSigningControllerOptions) ApplyTo(cfg *componentconfig.CSRSigningControllerConfiguration) error {
|
func (o *CSRSigningControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.CSRSigningControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DaemonSetControllerOptions holds the DaemonSetController options.
|
// DaemonSetControllerOptions holds the DaemonSetController options.
|
||||||
@ -35,7 +35,7 @@ func (o *DaemonSetControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up DaemonSetController config with options.
|
// ApplyTo fills up DaemonSetController config with options.
|
||||||
func (o *DaemonSetControllerOptions) ApplyTo(cfg *componentconfig.DaemonSetControllerConfiguration) error {
|
func (o *DaemonSetControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.DaemonSetControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeploymentControllerOptions holds the DeploymentController options.
|
// DeploymentControllerOptions holds the DeploymentController options.
|
||||||
@ -40,7 +40,7 @@ func (o *DeploymentControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up DeploymentController config with options.
|
// ApplyTo fills up DeploymentController config with options.
|
||||||
func (o *DeploymentControllerOptions) ApplyTo(cfg *componentconfig.DeploymentControllerConfiguration) error {
|
func (o *DeploymentControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.DeploymentControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeprecatedControllerOptions holds the DeprecatedController options, those option are deprecated.
|
// DeprecatedControllerOptions holds the DeprecatedController options, those option are deprecated.
|
||||||
@ -46,12 +46,12 @@ func (o *DeprecatedControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up DeprecatedController config with options.
|
// ApplyTo fills up DeprecatedController config with options.
|
||||||
func (o *DeprecatedControllerOptions) ApplyTo(cfg *componentconfig.DeprecatedControllerConfiguration) error {
|
func (o *DeprecatedControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.DeprecatedControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg.DeletingPodsQps = o.DeletingPodsQPS
|
cfg.DeletingPodsQPS = o.DeletingPodsQPS
|
||||||
cfg.DeletingPodsBurst = o.DeletingPodsBurst
|
cfg.DeletingPodsBurst = o.DeletingPodsBurst
|
||||||
cfg.RegisterRetryCount = o.RegisterRetryCount
|
cfg.RegisterRetryCount = o.RegisterRetryCount
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// EndpointControllerOptions holds the EndPointController options.
|
// EndpointControllerOptions holds the EndPointController options.
|
||||||
@ -37,7 +37,7 @@ func (o *EndpointControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up EndPointController config with options.
|
// ApplyTo fills up EndPointController config with options.
|
||||||
func (o *EndpointControllerOptions) ApplyTo(cfg *componentconfig.EndpointControllerConfiguration) error {
|
func (o *EndpointControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.EndpointControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,13 +19,13 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GarbageCollectorControllerOptions holds the GarbageCollectorController options.
|
// GarbageCollectorControllerOptions holds the GarbageCollectorController options.
|
||||||
type GarbageCollectorControllerOptions struct {
|
type GarbageCollectorControllerOptions struct {
|
||||||
ConcurrentGCSyncs int32
|
ConcurrentGCSyncs int32
|
||||||
GCIgnoredResources []componentconfig.GroupResource
|
GCIgnoredResources []kubectrlmgrconfig.GroupResource
|
||||||
EnableGarbageCollector bool
|
EnableGarbageCollector bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ func (o *GarbageCollectorControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up GarbageCollectorController config with options.
|
// ApplyTo fills up GarbageCollectorController config with options.
|
||||||
func (o *GarbageCollectorControllerOptions) ApplyTo(cfg *componentconfig.GarbageCollectorControllerConfiguration) error {
|
func (o *GarbageCollectorControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.GarbageCollectorControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// HPAControllerOptions holds the HPAController options.
|
// HPAControllerOptions holds the HPAController options.
|
||||||
@ -54,7 +54,7 @@ func (o *HPAControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up HPAController config with options.
|
// ApplyTo fills up HPAController config with options.
|
||||||
func (o *HPAControllerOptions) ApplyTo(cfg *componentconfig.HPAControllerConfiguration) error {
|
func (o *HPAControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.HPAControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// JobControllerOptions holds the JobController options.
|
// JobControllerOptions holds the JobController options.
|
||||||
@ -35,7 +35,7 @@ func (o *JobControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up JobController config with options.
|
// ApplyTo fills up JobController config with options.
|
||||||
func (o *JobControllerOptions) ApplyTo(cfg *componentconfig.JobControllerConfiguration) error {
|
func (o *JobControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.JobControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NamespaceControllerOptions holds the NamespaceController options.
|
// NamespaceControllerOptions holds the NamespaceController options.
|
||||||
@ -40,7 +40,7 @@ func (o *NamespaceControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up NamespaceController config with options.
|
// ApplyTo fills up NamespaceController config with options.
|
||||||
func (o *NamespaceControllerOptions) ApplyTo(cfg *componentconfig.NamespaceControllerConfiguration) error {
|
func (o *NamespaceControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.NamespaceControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NodeIPAMControllerOptions holds the NodeIpamController options.
|
// NodeIPAMControllerOptions holds the NodeIpamController options.
|
||||||
@ -39,7 +39,7 @@ func (o *NodeIPAMControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up NodeIpamController config with options.
|
// ApplyTo fills up NodeIpamController config with options.
|
||||||
func (o *NodeIPAMControllerOptions) ApplyTo(cfg *componentconfig.NodeIPAMControllerConfiguration) error {
|
func (o *NodeIPAMControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.NodeIPAMControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NodeLifecycleControllerOptions holds the NodeLifecycleController options.
|
// NodeLifecycleControllerOptions holds the NodeLifecycleController options.
|
||||||
@ -56,7 +56,7 @@ func (o *NodeLifecycleControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up NodeLifecycleController config with options.
|
// ApplyTo fills up NodeLifecycleController config with options.
|
||||||
func (o *NodeLifecycleControllerOptions) ApplyTo(cfg *componentconfig.NodeLifecycleControllerConfiguration) error {
|
func (o *NodeLifecycleControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.NodeLifecycleControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -33,11 +33,12 @@ import (
|
|||||||
restclient "k8s.io/client-go/rest"
|
restclient "k8s.io/client-go/rest"
|
||||||
"k8s.io/client-go/tools/clientcmd"
|
"k8s.io/client-go/tools/clientcmd"
|
||||||
"k8s.io/client-go/tools/record"
|
"k8s.io/client-go/tools/record"
|
||||||
|
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
||||||
kubecontrollerconfig "k8s.io/kubernetes/cmd/kube-controller-manager/app/config"
|
kubecontrollerconfig "k8s.io/kubernetes/cmd/kube-controller-manager/app/config"
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
componentconfigv1alpha1 "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
|
kubectrlmgrschemev1alpha1 "k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
|
||||||
"k8s.io/kubernetes/pkg/controller/garbagecollector"
|
"k8s.io/kubernetes/pkg/controller/garbagecollector"
|
||||||
"k8s.io/kubernetes/pkg/master/ports"
|
"k8s.io/kubernetes/pkg/master/ports"
|
||||||
|
|
||||||
@ -189,9 +190,9 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
|
|||||||
s.SecureServing.ServerCert.PairName = "kube-controller-manager"
|
s.SecureServing.ServerCert.PairName = "kube-controller-manager"
|
||||||
s.SecureServing.BindPort = ports.KubeControllerManagerPort
|
s.SecureServing.BindPort = ports.KubeControllerManagerPort
|
||||||
|
|
||||||
gcIgnoredResources := make([]componentconfig.GroupResource, 0, len(garbagecollector.DefaultIgnoredResources()))
|
gcIgnoredResources := make([]kubectrlmgrconfig.GroupResource, 0, len(garbagecollector.DefaultIgnoredResources()))
|
||||||
for r := range garbagecollector.DefaultIgnoredResources() {
|
for r := range garbagecollector.DefaultIgnoredResources() {
|
||||||
gcIgnoredResources = append(gcIgnoredResources, componentconfig.GroupResource{Group: r.Group, Resource: r.Resource})
|
gcIgnoredResources = append(gcIgnoredResources, kubectrlmgrconfig.GroupResource{Group: r.Group, Resource: r.Resource})
|
||||||
}
|
}
|
||||||
|
|
||||||
s.GarbageCollectorController.GCIgnoredResources = gcIgnoredResources
|
s.GarbageCollectorController.GCIgnoredResources = gcIgnoredResources
|
||||||
@ -200,19 +201,19 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewDefaultComponentConfig returns kube-controller manager configuration object.
|
// NewDefaultComponentConfig returns kube-controller manager configuration object.
|
||||||
func NewDefaultComponentConfig(insecurePort int32) (componentconfig.KubeControllerManagerConfiguration, error) {
|
func NewDefaultComponentConfig(insecurePort int32) (kubectrlmgrconfig.KubeControllerManagerConfiguration, error) {
|
||||||
scheme := runtime.NewScheme()
|
scheme := runtime.NewScheme()
|
||||||
if err := componentconfigv1alpha1.AddToScheme(scheme); err != nil {
|
if err := kubectrlmgrschemev1alpha1.AddToScheme(scheme); err != nil {
|
||||||
return componentconfig.KubeControllerManagerConfiguration{}, err
|
return kubectrlmgrconfig.KubeControllerManagerConfiguration{}, err
|
||||||
}
|
}
|
||||||
if err := componentconfig.AddToScheme(scheme); err != nil {
|
if err := kubectrlmgrconfig.AddToScheme(scheme); err != nil {
|
||||||
return componentconfig.KubeControllerManagerConfiguration{}, err
|
return kubectrlmgrconfig.KubeControllerManagerConfiguration{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
versioned := componentconfigv1alpha1.KubeControllerManagerConfiguration{}
|
versioned := kubectrlmgrconfigv1alpha1.KubeControllerManagerConfiguration{}
|
||||||
scheme.Default(&versioned)
|
scheme.Default(&versioned)
|
||||||
|
|
||||||
internal := componentconfig.KubeControllerManagerConfiguration{}
|
internal := kubectrlmgrconfig.KubeControllerManagerConfiguration{}
|
||||||
if err := scheme.Convert(&versioned, &internal, nil); err != nil {
|
if err := scheme.Convert(&versioned, &internal, nil); err != nil {
|
||||||
return internal, err
|
return internal, err
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ import (
|
|||||||
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
apiserveroptions "k8s.io/apiserver/pkg/server/options"
|
||||||
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
cmoptions "k8s.io/kubernetes/cmd/controller-manager/app/options"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAddFlags(t *testing.T) {
|
func TestAddFlags(t *testing.T) {
|
||||||
@ -185,7 +185,7 @@ func TestAddFlags(t *testing.T) {
|
|||||||
},
|
},
|
||||||
GarbageCollectorController: &GarbageCollectorControllerOptions{
|
GarbageCollectorController: &GarbageCollectorControllerOptions{
|
||||||
ConcurrentGCSyncs: 30,
|
ConcurrentGCSyncs: 30,
|
||||||
GCIgnoredResources: []componentconfig.GroupResource{
|
GCIgnoredResources: []kubectrlmgrconfig.GroupResource{
|
||||||
{Group: "", Resource: "events"},
|
{Group: "", Resource: "events"},
|
||||||
},
|
},
|
||||||
EnableGarbageCollector: false,
|
EnableGarbageCollector: false,
|
||||||
@ -222,11 +222,11 @@ func TestAddFlags(t *testing.T) {
|
|||||||
},
|
},
|
||||||
PersistentVolumeBinderController: &PersistentVolumeBinderControllerOptions{
|
PersistentVolumeBinderController: &PersistentVolumeBinderControllerOptions{
|
||||||
PVClaimBinderSyncPeriod: metav1.Duration{Duration: 30 * time.Second},
|
PVClaimBinderSyncPeriod: metav1.Duration{Duration: 30 * time.Second},
|
||||||
VolumeConfiguration: componentconfig.VolumeConfiguration{
|
VolumeConfiguration: kubectrlmgrconfig.VolumeConfiguration{
|
||||||
EnableDynamicProvisioning: false,
|
EnableDynamicProvisioning: false,
|
||||||
EnableHostPathProvisioning: true,
|
EnableHostPathProvisioning: true,
|
||||||
FlexVolumePluginDir: "/flex-volume-plugin",
|
FlexVolumePluginDir: "/flex-volume-plugin",
|
||||||
PersistentVolumeRecyclerConfiguration: componentconfig.PersistentVolumeRecyclerConfiguration{
|
PersistentVolumeRecyclerConfiguration: kubectrlmgrconfig.PersistentVolumeRecyclerConfiguration{
|
||||||
MaximumRetry: 3,
|
MaximumRetry: 3,
|
||||||
MinimumTimeoutNFS: 200,
|
MinimumTimeoutNFS: 200,
|
||||||
IncrementTimeoutNFS: 45,
|
IncrementTimeoutNFS: 45,
|
||||||
@ -298,7 +298,7 @@ func TestAddFlags(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type sortedGCIgnoredResources []componentconfig.GroupResource
|
type sortedGCIgnoredResources []kubectrlmgrconfig.GroupResource
|
||||||
|
|
||||||
func (r sortedGCIgnoredResources) Len() int {
|
func (r sortedGCIgnoredResources) Len() int {
|
||||||
return len(r)
|
return len(r)
|
||||||
|
@ -20,13 +20,13 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PersistentVolumeBinderControllerOptions holds the PersistentVolumeBinderController options.
|
// PersistentVolumeBinderControllerOptions holds the PersistentVolumeBinderController options.
|
||||||
type PersistentVolumeBinderControllerOptions struct {
|
type PersistentVolumeBinderControllerOptions struct {
|
||||||
PVClaimBinderSyncPeriod metav1.Duration
|
PVClaimBinderSyncPeriod metav1.Duration
|
||||||
VolumeConfiguration componentconfig.VolumeConfiguration
|
VolumeConfiguration kubectrlmgrconfig.VolumeConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddFlags adds flags related to PersistentVolumeBinderController for controller manager to the specified FlagSet.
|
// AddFlags adds flags related to PersistentVolumeBinderController for controller manager to the specified FlagSet.
|
||||||
@ -48,7 +48,7 @@ func (o *PersistentVolumeBinderControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up PersistentVolumeBinderController config with options.
|
// ApplyTo fills up PersistentVolumeBinderController config with options.
|
||||||
func (o *PersistentVolumeBinderControllerOptions) ApplyTo(cfg *componentconfig.PersistentVolumeBinderControllerConfiguration) error {
|
func (o *PersistentVolumeBinderControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.PersistentVolumeBinderControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PodGCControllerOptions holds the PodGCController options.
|
// PodGCControllerOptions holds the PodGCController options.
|
||||||
@ -37,7 +37,7 @@ func (o *PodGCControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up PodGCController config with options.
|
// ApplyTo fills up PodGCController config with options.
|
||||||
func (o *PodGCControllerOptions) ApplyTo(cfg *componentconfig.PodGCControllerConfiguration) error {
|
func (o *PodGCControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.PodGCControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ReplicaSetControllerOptions holds the ReplicaSetController options.
|
// ReplicaSetControllerOptions holds the ReplicaSetController options.
|
||||||
@ -37,7 +37,7 @@ func (o *ReplicaSetControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up ReplicaSetController config with options.
|
// ApplyTo fills up ReplicaSetController config with options.
|
||||||
func (o *ReplicaSetControllerOptions) ApplyTo(cfg *componentconfig.ReplicaSetControllerConfiguration) error {
|
func (o *ReplicaSetControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.ReplicaSetControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ReplicationControllerOptions holds the ReplicationController options.
|
// ReplicationControllerOptions holds the ReplicationController options.
|
||||||
@ -37,7 +37,7 @@ func (o *ReplicationControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up ReplicationController config with options.
|
// ApplyTo fills up ReplicationController config with options.
|
||||||
func (o *ReplicationControllerOptions) ApplyTo(cfg *componentconfig.ReplicationControllerConfiguration) error {
|
func (o *ReplicationControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.ReplicationControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ResourceQuotaControllerOptions holds the ResourceQuotaController options.
|
// ResourceQuotaControllerOptions holds the ResourceQuotaController options.
|
||||||
@ -40,7 +40,7 @@ func (o *ResourceQuotaControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up ResourceQuotaController config with options.
|
// ApplyTo fills up ResourceQuotaController config with options.
|
||||||
func (o *ResourceQuotaControllerOptions) ApplyTo(cfg *componentconfig.ResourceQuotaControllerConfiguration) error {
|
func (o *ResourceQuotaControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.ResourceQuotaControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ package options
|
|||||||
import (
|
import (
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// SAControllerOptions holds the ServiceAccountController options.
|
// SAControllerOptions holds the ServiceAccountController options.
|
||||||
@ -41,7 +41,7 @@ func (o *SAControllerOptions) AddFlags(fs *pflag.FlagSet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ApplyTo fills up ServiceAccountController config with options.
|
// ApplyTo fills up ServiceAccountController config with options.
|
||||||
func (o *SAControllerOptions) ApplyTo(cfg *componentconfig.SAControllerConfiguration) error {
|
func (o *SAControllerOptions) ApplyTo(cfg *kubectrlmgrconfig.SAControllerConfiguration) error {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -23,14 +23,12 @@ import (
|
|||||||
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
// Cloud providers
|
|
||||||
"k8s.io/kubernetes/pkg/apis/componentconfig"
|
|
||||||
_ "k8s.io/kubernetes/pkg/cloudprovider/providers"
|
|
||||||
"k8s.io/utils/exec"
|
|
||||||
|
|
||||||
// Volume plugins
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
|
||||||
|
// Cloud providers
|
||||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||||
|
_ "k8s.io/kubernetes/pkg/cloudprovider/providers"
|
||||||
|
// Volume plugins
|
||||||
"k8s.io/kubernetes/pkg/volume"
|
"k8s.io/kubernetes/pkg/volume"
|
||||||
"k8s.io/kubernetes/pkg/volume/aws_ebs"
|
"k8s.io/kubernetes/pkg/volume/aws_ebs"
|
||||||
"k8s.io/kubernetes/pkg/volume/azure_dd"
|
"k8s.io/kubernetes/pkg/volume/azure_dd"
|
||||||
@ -56,7 +54,9 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/volume/vsphere_volume"
|
"k8s.io/kubernetes/pkg/volume/vsphere_volume"
|
||||||
|
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||||
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
"k8s.io/kubernetes/pkg/features"
|
"k8s.io/kubernetes/pkg/features"
|
||||||
|
"k8s.io/utils/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ProbeAttachableVolumePlugins collects all volume plugins for the attach/
|
// ProbeAttachableVolumePlugins collects all volume plugins for the attach/
|
||||||
@ -87,12 +87,12 @@ func ProbeAttachableVolumePlugins() []volume.VolumePlugin {
|
|||||||
// GetDynamicPluginProber gets the probers of dynamically discoverable plugins
|
// GetDynamicPluginProber gets the probers of dynamically discoverable plugins
|
||||||
// for the attach/detach controller.
|
// for the attach/detach controller.
|
||||||
// Currently only Flexvolume plugins are dynamically discoverable.
|
// Currently only Flexvolume plugins are dynamically discoverable.
|
||||||
func GetDynamicPluginProber(config componentconfig.VolumeConfiguration) volume.DynamicPluginProber {
|
func GetDynamicPluginProber(config kubectrlmgrconfig.VolumeConfiguration) volume.DynamicPluginProber {
|
||||||
return flexvolume.GetDynamicPluginProber(config.FlexVolumePluginDir, exec.New() /*exec.Interface*/)
|
return flexvolume.GetDynamicPluginProber(config.FlexVolumePluginDir, exec.New() /*exec.Interface*/)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProbeExpandableVolumePlugins returns volume plugins which are expandable
|
// ProbeExpandableVolumePlugins returns volume plugins which are expandable
|
||||||
func ProbeExpandableVolumePlugins(config componentconfig.VolumeConfiguration) []volume.VolumePlugin {
|
func ProbeExpandableVolumePlugins(config kubectrlmgrconfig.VolumeConfiguration) []volume.VolumePlugin {
|
||||||
allPlugins := []volume.VolumePlugin{}
|
allPlugins := []volume.VolumePlugin{}
|
||||||
|
|
||||||
allPlugins = append(allPlugins, aws_ebs.ProbeVolumePlugins()...)
|
allPlugins = append(allPlugins, aws_ebs.ProbeVolumePlugins()...)
|
||||||
@ -114,7 +114,7 @@ func ProbeExpandableVolumePlugins(config componentconfig.VolumeConfiguration) []
|
|||||||
// ProbeControllerVolumePlugins collects all persistent volume plugins into an
|
// ProbeControllerVolumePlugins collects all persistent volume plugins into an
|
||||||
// easy to use list. Only volume plugins that implement any of
|
// easy to use list. Only volume plugins that implement any of
|
||||||
// provisioner/recycler/deleter interface should be returned.
|
// provisioner/recycler/deleter interface should be returned.
|
||||||
func ProbeControllerVolumePlugins(cloud cloudprovider.Interface, config componentconfig.VolumeConfiguration) []volume.VolumePlugin {
|
func ProbeControllerVolumePlugins(cloud cloudprovider.Interface, config kubectrlmgrconfig.VolumeConfiguration) []volume.VolumePlugin {
|
||||||
allPlugins := []volume.VolumePlugin{}
|
allPlugins := []volume.VolumePlugin{}
|
||||||
|
|
||||||
// The list of plugins to probe is decided by this binary, not
|
// The list of plugins to probe is decided by this binary, not
|
||||||
|
@ -111,6 +111,7 @@ pkg/cloudprovider/providers/photon
|
|||||||
pkg/cloudprovider/providers/vsphere
|
pkg/cloudprovider/providers/vsphere
|
||||||
pkg/cloudprovider/providers/vsphere/vclib
|
pkg/cloudprovider/providers/vsphere/vclib
|
||||||
pkg/controller
|
pkg/controller
|
||||||
|
pkg/controller/apis/config/v1alpha1
|
||||||
pkg/controller/bootstrap
|
pkg/controller/bootstrap
|
||||||
pkg/controller/certificates
|
pkg/controller/certificates
|
||||||
pkg/controller/certificates/approver
|
pkg/controller/certificates/approver
|
||||||
|
@ -17,13 +17,12 @@ go_library(
|
|||||||
],
|
],
|
||||||
importpath = "k8s.io/kubernetes/pkg/apis/componentconfig",
|
importpath = "k8s.io/kubernetes/pkg/apis/componentconfig",
|
||||||
deps = [
|
deps = [
|
||||||
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library",
|
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -17,415 +17,24 @@ limitations under the License.
|
|||||||
package componentconfig
|
package componentconfig
|
||||||
|
|
||||||
import (
|
import (
|
||||||
apimachineryconfig "k8s.io/apimachinery/pkg/apis/config"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
kubectrlmgrconfig "k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
type GroupResource struct {
|
|
||||||
// group is the group portion of the GroupResource.
|
|
||||||
Group string
|
|
||||||
// resource is the resource portion of the GroupResource.
|
|
||||||
Resource string
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
type KubeControllerManagerConfiguration struct {
|
|
||||||
metav1.TypeMeta
|
|
||||||
|
|
||||||
// Generic holds configuration for a generic controller-manager
|
|
||||||
Generic GenericControllerManagerConfiguration
|
|
||||||
// KubeCloudSharedConfiguration holds configuration for shared related features
|
|
||||||
// both in cloud controller manager and kube-controller manager.
|
|
||||||
KubeCloudShared KubeCloudSharedConfiguration
|
|
||||||
|
|
||||||
// AttachDetachControllerConfiguration holds configuration for
|
|
||||||
// AttachDetachController related features.
|
|
||||||
AttachDetachController AttachDetachControllerConfiguration
|
|
||||||
// CSRSigningControllerConfiguration holds configuration for
|
|
||||||
// CSRSigningController related features.
|
|
||||||
CSRSigningController CSRSigningControllerConfiguration
|
|
||||||
// DaemonSetControllerConfiguration holds configuration for DaemonSetController
|
|
||||||
// related features.
|
|
||||||
DaemonSetController DaemonSetControllerConfiguration
|
|
||||||
// DeploymentControllerConfiguration holds configuration for
|
|
||||||
// DeploymentController related features.
|
|
||||||
DeploymentController DeploymentControllerConfiguration
|
|
||||||
// DeprecatedControllerConfiguration holds configuration for some deprecated
|
|
||||||
// features.
|
|
||||||
DeprecatedController DeprecatedControllerConfiguration
|
|
||||||
// EndpointControllerConfiguration holds configuration for EndpointController
|
|
||||||
// related features.
|
|
||||||
EndpointController EndpointControllerConfiguration
|
|
||||||
// GarbageCollectorControllerConfiguration holds configuration for
|
|
||||||
// GarbageCollectorController related features.
|
|
||||||
GarbageCollectorController GarbageCollectorControllerConfiguration
|
|
||||||
// HPAControllerConfiguration holds configuration for HPAController related features.
|
|
||||||
HPAController HPAControllerConfiguration
|
|
||||||
// JobControllerConfiguration holds configuration for JobController related features.
|
|
||||||
JobController JobControllerConfiguration
|
|
||||||
// NamespaceControllerConfiguration holds configuration for NamespaceController
|
|
||||||
// related features.
|
|
||||||
NamespaceController NamespaceControllerConfiguration
|
|
||||||
// NodeIPAMControllerConfiguration holds configuration for NodeIPAMController
|
|
||||||
// related features.
|
|
||||||
NodeIPAMController NodeIPAMControllerConfiguration
|
|
||||||
// NodeLifecycleControllerConfiguration holds configuration for
|
|
||||||
// NodeLifecycleController related features.
|
|
||||||
NodeLifecycleController NodeLifecycleControllerConfiguration
|
|
||||||
// PersistentVolumeBinderControllerConfiguration holds configuration for
|
|
||||||
// PersistentVolumeBinderController related features.
|
|
||||||
PersistentVolumeBinderController PersistentVolumeBinderControllerConfiguration
|
|
||||||
// PodGCControllerConfiguration holds configuration for PodGCController
|
|
||||||
// related features.
|
|
||||||
PodGCController PodGCControllerConfiguration
|
|
||||||
// ReplicaSetControllerConfiguration holds configuration for ReplicaSet related features.
|
|
||||||
ReplicaSetController ReplicaSetControllerConfiguration
|
|
||||||
// ReplicationControllerConfiguration holds configuration for
|
|
||||||
// ReplicationController related features.
|
|
||||||
ReplicationController ReplicationControllerConfiguration
|
|
||||||
// ResourceQuotaControllerConfiguration holds configuration for
|
|
||||||
// ResourceQuotaController related features.
|
|
||||||
ResourceQuotaController ResourceQuotaControllerConfiguration
|
|
||||||
// SAControllerConfiguration holds configuration for ServiceAccountController
|
|
||||||
// related features.
|
|
||||||
SAController SAControllerConfiguration
|
|
||||||
// ServiceControllerConfiguration holds configuration for ServiceController
|
|
||||||
// related features.
|
|
||||||
ServiceController ServiceControllerConfiguration
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
type CloudControllerManagerConfiguration struct {
|
type CloudControllerManagerConfiguration struct {
|
||||||
metav1.TypeMeta
|
metav1.TypeMeta
|
||||||
|
|
||||||
// Generic holds configuration for a generic controller-manager
|
// Generic holds configuration for a generic controller-manager
|
||||||
Generic GenericControllerManagerConfiguration
|
Generic kubectrlmgrconfig.GenericControllerManagerConfiguration
|
||||||
// KubeCloudSharedConfiguration holds configuration for shared related features
|
// KubeCloudSharedConfiguration holds configuration for shared related features
|
||||||
// both in cloud controller manager and kube-controller manager.
|
// both in cloud controller manager and kube-controller manager.
|
||||||
KubeCloudShared KubeCloudSharedConfiguration
|
KubeCloudShared kubectrlmgrconfig.KubeCloudSharedConfiguration
|
||||||
|
|
||||||
// ServiceControllerConfiguration holds configuration for ServiceController
|
// ServiceControllerConfiguration holds configuration for ServiceController
|
||||||
// related features.
|
// related features.
|
||||||
ServiceController ServiceControllerConfiguration
|
ServiceController kubectrlmgrconfig.ServiceControllerConfiguration
|
||||||
// NodeStatusUpdateFrequency is the frequency at which the controller updates nodes' status
|
// NodeStatusUpdateFrequency is the frequency at which the controller updates nodes' status
|
||||||
NodeStatusUpdateFrequency metav1.Duration
|
NodeStatusUpdateFrequency metav1.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
type GenericControllerManagerConfiguration struct {
|
|
||||||
// port is the port that the controller-manager's http service runs on.
|
|
||||||
Port int32
|
|
||||||
// address is the IP address to serve on (set to 0.0.0.0 for all interfaces).
|
|
||||||
Address string
|
|
||||||
// minResyncPeriod is the resync period in reflectors; will be random between
|
|
||||||
// minResyncPeriod and 2*minResyncPeriod.
|
|
||||||
MinResyncPeriod metav1.Duration
|
|
||||||
// ClientConnection specifies the kubeconfig file and client connection
|
|
||||||
// settings for the proxy server to use when communicating with the apiserver.
|
|
||||||
ClientConnection apimachineryconfig.ClientConnectionConfiguration
|
|
||||||
// How long to wait between starting controller managers
|
|
||||||
ControllerStartInterval metav1.Duration
|
|
||||||
// leaderElection defines the configuration of leader election client.
|
|
||||||
LeaderElection apiserverconfig.LeaderElectionConfiguration
|
|
||||||
// Controllers is the list of controllers to enable or disable
|
|
||||||
// '*' means "all enabled by default controllers"
|
|
||||||
// 'foo' means "enable 'foo'"
|
|
||||||
// '-foo' means "disable 'foo'"
|
|
||||||
// first item for a particular name wins
|
|
||||||
Controllers []string
|
|
||||||
// DebuggingConfiguration holds configuration for Debugging related features.
|
|
||||||
Debugging apiserverconfig.DebuggingConfiguration
|
|
||||||
}
|
|
||||||
|
|
||||||
type KubeCloudSharedConfiguration struct {
|
|
||||||
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
|
||||||
CloudProvider CloudProviderConfiguration
|
|
||||||
// externalCloudVolumePlugin specifies the plugin to use when cloudProvider is "external".
|
|
||||||
// It is currently used by the in repo cloud providers to handle node and volume control in the KCM.
|
|
||||||
ExternalCloudVolumePlugin string
|
|
||||||
// useServiceAccountCredentials indicates whether controllers should be run with
|
|
||||||
// individual service account credentials.
|
|
||||||
UseServiceAccountCredentials bool
|
|
||||||
// run with untagged cloud instances
|
|
||||||
AllowUntaggedCloud bool
|
|
||||||
// routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider..
|
|
||||||
RouteReconciliationPeriod metav1.Duration
|
|
||||||
// nodeMonitorPeriod is the period for syncing NodeStatus in NodeController.
|
|
||||||
NodeMonitorPeriod metav1.Duration
|
|
||||||
// clusterName is the instance prefix for the cluster.
|
|
||||||
ClusterName string
|
|
||||||
// clusterCIDR is CIDR Range for Pods in cluster.
|
|
||||||
ClusterCIDR string
|
|
||||||
// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
|
|
||||||
// ConfigureCloudRoutes is true, to be set on the cloud provider.
|
|
||||||
AllocateNodeCIDRs bool
|
|
||||||
// CIDRAllocatorType determines what kind of pod CIDR allocator will be used.
|
|
||||||
CIDRAllocatorType string
|
|
||||||
// configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs
|
|
||||||
// to be configured on the cloud provider.
|
|
||||||
ConfigureCloudRoutes bool
|
|
||||||
// nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer
|
|
||||||
// periods will result in fewer calls to cloud provider, but may delay addition
|
|
||||||
// of new nodes to cluster.
|
|
||||||
NodeSyncPeriod metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type AttachDetachControllerConfiguration struct {
|
|
||||||
// Reconciler runs a periodic loop to reconcile the desired state of the with
|
|
||||||
// the actual state of the world by triggering attach detach operations.
|
|
||||||
// This flag enables or disables reconcile. Is false by default, and thus enabled.
|
|
||||||
DisableAttachDetachReconcilerSync bool
|
|
||||||
// ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
|
|
||||||
// wait between successive executions. Is set to 5 sec by default.
|
|
||||||
ReconcilerSyncLoopPeriod metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type CloudProviderConfiguration struct {
|
|
||||||
// Name is the provider for cloud services.
|
|
||||||
Name string
|
|
||||||
// cloudConfigFile is the path to the cloud provider configuration file.
|
|
||||||
CloudConfigFile string
|
|
||||||
}
|
|
||||||
|
|
||||||
type CSRSigningControllerConfiguration struct {
|
|
||||||
// clusterSigningCertFile is the filename containing a PEM-encoded
|
|
||||||
// X509 CA certificate used to issue cluster-scoped certificates
|
|
||||||
ClusterSigningCertFile string
|
|
||||||
// clusterSigningCertFile is the filename containing a PEM-encoded
|
|
||||||
// RSA or ECDSA private key used to issue cluster-scoped certificates
|
|
||||||
ClusterSigningKeyFile string
|
|
||||||
// clusterSigningDuration is the length of duration signed certificates
|
|
||||||
// will be given.
|
|
||||||
ClusterSigningDuration metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type DaemonSetControllerConfiguration struct {
|
|
||||||
// concurrentDaemonSetSyncs is the number of daemonset objects that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive daemonset,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentDaemonSetSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeploymentControllerConfiguration struct {
|
|
||||||
// concurrentDeploymentSyncs is the number of deployment objects that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive deployments,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentDeploymentSyncs int32
|
|
||||||
// deploymentControllerSyncPeriod is the period for syncing the deployments.
|
|
||||||
DeploymentControllerSyncPeriod metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeprecatedControllerConfiguration struct {
|
|
||||||
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
|
|
||||||
// case of node failure.
|
|
||||||
DeletingPodsQps float32
|
|
||||||
// DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in
|
|
||||||
// case of node failure. For more details look into RateLimiter.
|
|
||||||
DeletingPodsBurst int32
|
|
||||||
// registerRetryCount is the number of retries for initial node registration.
|
|
||||||
// Retry interval equals node-sync-period.
|
|
||||||
RegisterRetryCount int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type EndpointControllerConfiguration struct {
|
|
||||||
// concurrentEndpointSyncs is the number of endpoint syncing operations
|
|
||||||
// that will be done concurrently. Larger number = faster endpoint updating,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentEndpointSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type GarbageCollectorControllerConfiguration struct {
|
|
||||||
// enables the generic garbage collector. MUST be synced with the
|
|
||||||
// corresponding flag of the kube-apiserver. WARNING: the generic garbage
|
|
||||||
// collector is an alpha feature.
|
|
||||||
EnableGarbageCollector bool
|
|
||||||
// concurrentGCSyncs is the number of garbage collector workers that are
|
|
||||||
// allowed to sync concurrently.
|
|
||||||
ConcurrentGCSyncs int32
|
|
||||||
// gcIgnoredResources is the list of GroupResources that garbage collection should ignore.
|
|
||||||
GCIgnoredResources []GroupResource
|
|
||||||
}
|
|
||||||
|
|
||||||
type HPAControllerConfiguration struct {
|
|
||||||
// horizontalPodAutoscalerSyncPeriod is the period for syncing the number of
|
|
||||||
// pods in horizontal pod autoscaler.
|
|
||||||
HorizontalPodAutoscalerSyncPeriod metav1.Duration
|
|
||||||
// horizontalPodAutoscalerUpscaleForbiddenWindow is a period after which next upscale allowed.
|
|
||||||
HorizontalPodAutoscalerUpscaleForbiddenWindow metav1.Duration
|
|
||||||
// horizontalPodAutoscalerDownscaleForbiddenWindow is a period after which next downscale allowed.
|
|
||||||
HorizontalPodAutoscalerDownscaleForbiddenWindow metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerDowncaleStabilizationWindow is a period for which autoscaler will look
|
|
||||||
// backwards and not scale down below any recommendation it made during that period.
|
|
||||||
HorizontalPodAutoscalerDownscaleStabilizationWindow metav1.Duration
|
|
||||||
// horizontalPodAutoscalerTolerance is the tolerance for when
|
|
||||||
// resource usage suggests upscaling/downscaling
|
|
||||||
HorizontalPodAutoscalerTolerance float64
|
|
||||||
// HorizontalPodAutoscalerUseRESTClients causes the HPA controller to use REST clients
|
|
||||||
// through the kube-aggregator when enabled, instead of using the legacy metrics client
|
|
||||||
// through the API server proxy.
|
|
||||||
HorizontalPodAutoscalerUseRESTClients bool
|
|
||||||
// HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start when CPU samples
|
|
||||||
// might be skipped.
|
|
||||||
HorizontalPodAutoscalerCPUInitializationPeriod metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerInitialReadinessDelay is period after pod start during which readiness
|
|
||||||
// changes are treated as readiness being set for the first time. The only effect of this is that
|
|
||||||
// HPA will disregard CPU samples from unready pods that had last readiness change during that
|
|
||||||
// period.
|
|
||||||
HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type JobControllerConfiguration struct {
|
|
||||||
// concurrentJobSyncs is the number of job objects that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive jobs,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentJobSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type NamespaceControllerConfiguration struct {
|
|
||||||
// namespaceSyncPeriod is the period for syncing namespace life-cycle
|
|
||||||
// updates.
|
|
||||||
NamespaceSyncPeriod metav1.Duration
|
|
||||||
// concurrentNamespaceSyncs is the number of namespace objects that are
|
|
||||||
// allowed to sync concurrently.
|
|
||||||
ConcurrentNamespaceSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type NodeIPAMControllerConfiguration struct {
|
|
||||||
// serviceCIDR is CIDR Range for Services in cluster.
|
|
||||||
ServiceCIDR string
|
|
||||||
// NodeCIDRMaskSize is the mask size for node cidr in cluster.
|
|
||||||
NodeCIDRMaskSize int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type NodeLifecycleControllerConfiguration struct {
|
|
||||||
// If set to true enables NoExecute Taints and will evict all not-tolerating
|
|
||||||
// Pod running on Nodes tainted with this kind of Taints.
|
|
||||||
EnableTaintManager bool
|
|
||||||
// nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy
|
|
||||||
NodeEvictionRate float32
|
|
||||||
// secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy
|
|
||||||
SecondaryNodeEvictionRate float32
|
|
||||||
// nodeStartupGracePeriod is the amount of time which we allow starting a node to
|
|
||||||
// be unresponsive before marking it unhealthy.
|
|
||||||
NodeStartupGracePeriod metav1.Duration
|
|
||||||
// nodeMontiorGracePeriod is the amount of time which we allow a running node to be
|
|
||||||
// unresponsive before marking it unhealthy. Must be N times more than kubelet's
|
|
||||||
// nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet
|
|
||||||
// to post node status.
|
|
||||||
NodeMonitorGracePeriod metav1.Duration
|
|
||||||
// podEvictionTimeout is the grace period for deleting pods on failed nodes.
|
|
||||||
PodEvictionTimeout metav1.Duration
|
|
||||||
// secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold
|
|
||||||
LargeClusterSizeThreshold int32
|
|
||||||
// Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least
|
|
||||||
// unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady
|
|
||||||
UnhealthyZoneThreshold float32
|
|
||||||
}
|
|
||||||
|
|
||||||
type PersistentVolumeBinderControllerConfiguration struct {
|
|
||||||
// pvClaimBinderSyncPeriod is the period for syncing persistent volumes
|
|
||||||
// and persistent volume claims.
|
|
||||||
PVClaimBinderSyncPeriod metav1.Duration
|
|
||||||
// volumeConfiguration holds configuration for volume related features.
|
|
||||||
VolumeConfiguration VolumeConfiguration
|
|
||||||
}
|
|
||||||
|
|
||||||
type PodGCControllerConfiguration struct {
|
|
||||||
// terminatedPodGCThreshold is the number of terminated pods that can exist
|
|
||||||
// before the terminated pod garbage collector starts deleting terminated pods.
|
|
||||||
// If <= 0, the terminated pod garbage collector is disabled.
|
|
||||||
TerminatedPodGCThreshold int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ReplicaSetControllerConfiguration struct {
|
|
||||||
// concurrentRSSyncs is the number of replica sets that are allowed to sync
|
|
||||||
// concurrently. Larger number = more responsive replica management, but more
|
|
||||||
// CPU (and network) load.
|
|
||||||
ConcurrentRSSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ReplicationControllerConfiguration struct {
|
|
||||||
// concurrentRCSyncs is the number of replication controllers that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive replica
|
|
||||||
// management, but more CPU (and network) load.
|
|
||||||
ConcurrentRCSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResourceQuotaControllerConfiguration struct {
|
|
||||||
// resourceQuotaSyncPeriod is the period for syncing quota usage status
|
|
||||||
// in the system.
|
|
||||||
ResourceQuotaSyncPeriod metav1.Duration
|
|
||||||
// concurrentResourceQuotaSyncs is the number of resource quotas that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive quota
|
|
||||||
// management, but more CPU (and network) load.
|
|
||||||
ConcurrentResourceQuotaSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type SAControllerConfiguration struct {
|
|
||||||
// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key
|
|
||||||
// used to sign service account tokens.
|
|
||||||
ServiceAccountKeyFile string
|
|
||||||
// concurrentSATokenSyncs is the number of service account token syncing operations
|
|
||||||
// that will be done concurrently.
|
|
||||||
ConcurrentSATokenSyncs int32
|
|
||||||
// rootCAFile is the root certificate authority will be included in service
|
|
||||||
// account's token secret. This must be a valid PEM-encoded CA bundle.
|
|
||||||
RootCAFile string
|
|
||||||
}
|
|
||||||
|
|
||||||
type ServiceControllerConfiguration struct {
|
|
||||||
// concurrentServiceSyncs is the number of services that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive service
|
|
||||||
// management, but more CPU (and network) load.
|
|
||||||
ConcurrentServiceSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
// VolumeConfiguration contains *all* enumerated flags meant to configure all volume
|
|
||||||
// plugins. From this config, the controller-manager binary will create many instances of
|
|
||||||
// volume.VolumeConfig, each containing only the configuration needed for that plugin which
|
|
||||||
// are then passed to the appropriate plugin. The ControllerManager binary is the only part
|
|
||||||
// of the code which knows what plugins are supported and which flags correspond to each plugin.
|
|
||||||
type VolumeConfiguration struct {
|
|
||||||
// enableHostPathProvisioning enables HostPath PV provisioning when running without a
|
|
||||||
// cloud provider. This allows testing and development of provisioning features. HostPath
|
|
||||||
// provisioning is not supported in any way, won't work in a multi-node cluster, and
|
|
||||||
// should not be used for anything other than testing or development.
|
|
||||||
EnableHostPathProvisioning bool
|
|
||||||
// enableDynamicProvisioning enables the provisioning of volumes when running within an environment
|
|
||||||
// that supports dynamic provisioning. Defaults to true.
|
|
||||||
EnableDynamicProvisioning bool
|
|
||||||
// persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins.
|
|
||||||
PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration
|
|
||||||
// volumePluginDir is the full path of the directory in which the flex
|
|
||||||
// volume plugin should search for additional third party volume plugins
|
|
||||||
FlexVolumePluginDir string
|
|
||||||
}
|
|
||||||
|
|
||||||
type PersistentVolumeRecyclerConfiguration struct {
|
|
||||||
// maximumRetry is number of retries the PV recycler will execute on failure to recycle
|
|
||||||
// PV.
|
|
||||||
MaximumRetry int32
|
|
||||||
// minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler
|
|
||||||
// pod.
|
|
||||||
MinimumTimeoutNFS int32
|
|
||||||
// podTemplateFilePathNFS is the file path to a pod definition used as a template for
|
|
||||||
// NFS persistent volume recycling
|
|
||||||
PodTemplateFilePathNFS string
|
|
||||||
// incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds
|
|
||||||
// for an NFS scrubber pod.
|
|
||||||
IncrementTimeoutNFS int32
|
|
||||||
// podTemplateFilePathHostPath is the file path to a pod definition used as a template for
|
|
||||||
// HostPath persistent volume recycling. This is for development and testing only and
|
|
||||||
// will not work in a multi-node cluster.
|
|
||||||
PodTemplateFilePathHostPath string
|
|
||||||
// minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath
|
|
||||||
// Recycler pod. This is for development and testing only and will not work in a multi-node
|
|
||||||
// cluster.
|
|
||||||
MinimumTimeoutHostPath int32
|
|
||||||
// incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds
|
|
||||||
// for a HostPath scrubber pod. This is for development and testing only and will not work
|
|
||||||
// in a multi-node cluster.
|
|
||||||
IncrementTimeoutHostPath int32
|
|
||||||
}
|
|
||||||
|
@ -20,13 +20,12 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1",
|
importpath = "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/componentconfig:go_default_library",
|
"//pkg/apis/componentconfig:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/config/v1alpha1:go_default_library",
|
"//pkg/controller/apis/config/v1alpha1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
"//staging/src/k8s.io/apiserver/pkg/apis/config/v1alpha1:go_default_library",
|
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library",
|
||||||
"//vendor/k8s.io/utils/pointer:go_default_library",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -19,141 +19,17 @@ package v1alpha1
|
|||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
kruntime "k8s.io/apimachinery/pkg/runtime"
|
kruntime "k8s.io/apimachinery/pkg/runtime"
|
||||||
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
|
kubectrlmgrconfigv1alpha1 "k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
|
||||||
utilpointer "k8s.io/utils/pointer"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func addDefaultingFuncs(scheme *kruntime.Scheme) error {
|
func addDefaultingFuncs(scheme *kruntime.Scheme) error {
|
||||||
return RegisterDefaults(scheme)
|
return RegisterDefaults(scheme)
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetDefaults_KubeControllerManagerConfiguration(obj *KubeControllerManagerConfiguration) {
|
|
||||||
zero := metav1.Duration{}
|
|
||||||
if obj.EndpointController.ConcurrentEndpointSyncs == 0 {
|
|
||||||
obj.EndpointController.ConcurrentEndpointSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.ServiceController.ConcurrentServiceSyncs == 0 {
|
|
||||||
obj.ServiceController.ConcurrentServiceSyncs = 1
|
|
||||||
}
|
|
||||||
if obj.ReplicationController.ConcurrentRCSyncs == 0 {
|
|
||||||
obj.ReplicationController.ConcurrentRCSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.ReplicaSetController.ConcurrentRSSyncs == 0 {
|
|
||||||
obj.ReplicaSetController.ConcurrentRSSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.DaemonSetController.ConcurrentDaemonSetSyncs == 0 {
|
|
||||||
obj.DaemonSetController.ConcurrentDaemonSetSyncs = 2
|
|
||||||
}
|
|
||||||
if obj.JobController.ConcurrentJobSyncs == 0 {
|
|
||||||
obj.JobController.ConcurrentJobSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.ResourceQuotaController.ConcurrentResourceQuotaSyncs == 0 {
|
|
||||||
obj.ResourceQuotaController.ConcurrentResourceQuotaSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.DeploymentController.ConcurrentDeploymentSyncs == 0 {
|
|
||||||
obj.DeploymentController.ConcurrentDeploymentSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.NamespaceController.ConcurrentNamespaceSyncs == 0 {
|
|
||||||
obj.NamespaceController.ConcurrentNamespaceSyncs = 10
|
|
||||||
}
|
|
||||||
if obj.SAController.ConcurrentSATokenSyncs == 0 {
|
|
||||||
obj.SAController.ConcurrentSATokenSyncs = 5
|
|
||||||
}
|
|
||||||
if obj.ResourceQuotaController.ResourceQuotaSyncPeriod == zero {
|
|
||||||
obj.ResourceQuotaController.ResourceQuotaSyncPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.NamespaceController.NamespaceSyncPeriod == zero {
|
|
||||||
obj.NamespaceController.NamespaceSyncPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.PersistentVolumeBinderController.PVClaimBinderSyncPeriod == zero {
|
|
||||||
obj.PersistentVolumeBinderController.PVClaimBinderSyncPeriod = metav1.Duration{Duration: 15 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerSyncPeriod == zero {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerSyncPeriod = metav1.Duration{Duration: 15 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerUpscaleForbiddenWindow == zero {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerUpscaleForbiddenWindow = metav1.Duration{Duration: 3 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerDownscaleStabilizationWindow == zero {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerDownscaleStabilizationWindow = metav1.Duration{Duration: 5 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerCPUInitializationPeriod == zero {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerCPUInitializationPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerInitialReadinessDelay == zero {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerInitialReadinessDelay = metav1.Duration{Duration: 30 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerDownscaleForbiddenWindow == zero {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerDownscaleForbiddenWindow = metav1.Duration{Duration: 5 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerTolerance == 0 {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerTolerance = 0.1
|
|
||||||
}
|
|
||||||
if obj.DeploymentController.DeploymentControllerSyncPeriod == zero {
|
|
||||||
obj.DeploymentController.DeploymentControllerSyncPeriod = metav1.Duration{Duration: 30 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.DeprecatedController.RegisterRetryCount == 0 {
|
|
||||||
obj.DeprecatedController.RegisterRetryCount = 10
|
|
||||||
}
|
|
||||||
if obj.NodeLifecycleController.PodEvictionTimeout == zero {
|
|
||||||
obj.NodeLifecycleController.PodEvictionTimeout = metav1.Duration{Duration: 5 * time.Minute}
|
|
||||||
}
|
|
||||||
if obj.NodeLifecycleController.NodeMonitorGracePeriod == zero {
|
|
||||||
obj.NodeLifecycleController.NodeMonitorGracePeriod = metav1.Duration{Duration: 40 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.NodeLifecycleController.NodeStartupGracePeriod == zero {
|
|
||||||
obj.NodeLifecycleController.NodeStartupGracePeriod = metav1.Duration{Duration: 60 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.NodeIPAMController.NodeCIDRMaskSize == 0 {
|
|
||||||
obj.NodeIPAMController.NodeCIDRMaskSize = 24
|
|
||||||
}
|
|
||||||
if obj.PodGCController.TerminatedPodGCThreshold == 0 {
|
|
||||||
obj.PodGCController.TerminatedPodGCThreshold = 12500
|
|
||||||
}
|
|
||||||
if obj.GarbageCollectorController.EnableGarbageCollector == nil {
|
|
||||||
obj.GarbageCollectorController.EnableGarbageCollector = utilpointer.BoolPtr(true)
|
|
||||||
}
|
|
||||||
if obj.GarbageCollectorController.ConcurrentGCSyncs == 0 {
|
|
||||||
obj.GarbageCollectorController.ConcurrentGCSyncs = 20
|
|
||||||
}
|
|
||||||
if obj.CSRSigningController.ClusterSigningCertFile == "" {
|
|
||||||
obj.CSRSigningController.ClusterSigningCertFile = "/etc/kubernetes/ca/ca.pem"
|
|
||||||
}
|
|
||||||
if obj.CSRSigningController.ClusterSigningKeyFile == "" {
|
|
||||||
obj.CSRSigningController.ClusterSigningKeyFile = "/etc/kubernetes/ca/ca.key"
|
|
||||||
}
|
|
||||||
if obj.CSRSigningController.ClusterSigningDuration == zero {
|
|
||||||
obj.CSRSigningController.ClusterSigningDuration = metav1.Duration{Duration: 365 * 24 * time.Hour}
|
|
||||||
}
|
|
||||||
if obj.AttachDetachController.ReconcilerSyncLoopPeriod == zero {
|
|
||||||
obj.AttachDetachController.ReconcilerSyncLoopPeriod = metav1.Duration{Duration: 60 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.NodeLifecycleController.EnableTaintManager == nil {
|
|
||||||
obj.NodeLifecycleController.EnableTaintManager = utilpointer.BoolPtr(true)
|
|
||||||
}
|
|
||||||
if obj.HPAController.HorizontalPodAutoscalerUseRESTClients == nil {
|
|
||||||
obj.HPAController.HorizontalPodAutoscalerUseRESTClients = utilpointer.BoolPtr(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
// These defaults override the recommended defaults from the apimachineryconfigv1alpha1 package that are applied automatically
|
|
||||||
// These client-connection defaults are specific to the kube-controller-manager
|
|
||||||
if obj.Generic.ClientConnection.QPS == 0.0 {
|
|
||||||
obj.Generic.ClientConnection.QPS = 50.0
|
|
||||||
}
|
|
||||||
|
|
||||||
if obj.Generic.ClientConnection.Burst == 0 {
|
|
||||||
obj.Generic.ClientConnection.Burst = 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetDefaults_CloudControllerManagerConfiguration(obj *CloudControllerManagerConfiguration) {
|
func SetDefaults_CloudControllerManagerConfiguration(obj *CloudControllerManagerConfiguration) {
|
||||||
zero := metav1.Duration{}
|
zero := metav1.Duration{}
|
||||||
if obj.ServiceController.ConcurrentServiceSyncs == 0 {
|
|
||||||
obj.ServiceController.ConcurrentServiceSyncs = 1
|
|
||||||
}
|
|
||||||
if obj.NodeStatusUpdateFrequency == zero {
|
if obj.NodeStatusUpdateFrequency == zero {
|
||||||
obj.NodeStatusUpdateFrequency = metav1.Duration{Duration: 5 * time.Minute}
|
obj.NodeStatusUpdateFrequency = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
}
|
}
|
||||||
@ -165,70 +41,7 @@ func SetDefaults_CloudControllerManagerConfiguration(obj *CloudControllerManager
|
|||||||
if obj.Generic.ClientConnection.Burst == 0 {
|
if obj.Generic.ClientConnection.Burst == 0 {
|
||||||
obj.Generic.ClientConnection.Burst = 30
|
obj.Generic.ClientConnection.Burst = 30
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func SetDefaults_GenericControllerManagerConfiguration(obj *GenericControllerManagerConfiguration) {
|
// Use the default RecommendedDefaultGenericControllerManagerConfiguration options
|
||||||
zero := metav1.Duration{}
|
kubectrlmgrconfigv1alpha1.RecommendedDefaultGenericControllerManagerConfiguration(&obj.Generic)
|
||||||
if obj.Address == "" {
|
|
||||||
obj.Address = "0.0.0.0"
|
|
||||||
}
|
|
||||||
if obj.MinResyncPeriod == zero {
|
|
||||||
obj.MinResyncPeriod = metav1.Duration{Duration: 12 * time.Hour}
|
|
||||||
}
|
|
||||||
if obj.ControllerStartInterval == zero {
|
|
||||||
obj.ControllerStartInterval = metav1.Duration{Duration: 0 * time.Second}
|
|
||||||
}
|
|
||||||
if len(obj.Controllers) == 0 {
|
|
||||||
obj.Controllers = []string{"*"}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use the default ClientConnectionConfiguration and LeaderElectionConfiguration options
|
|
||||||
apimachineryconfigv1alpha1.RecommendedDefaultClientConnectionConfiguration(&obj.ClientConnection)
|
|
||||||
apiserverconfigv1alpha1.RecommendedDefaultLeaderElectionConfiguration(&obj.LeaderElection)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetDefaults_KubeCloudSharedConfiguration(obj *KubeCloudSharedConfiguration) {
|
|
||||||
zero := metav1.Duration{}
|
|
||||||
if obj.NodeMonitorPeriod == zero {
|
|
||||||
obj.NodeMonitorPeriod = metav1.Duration{Duration: 5 * time.Second}
|
|
||||||
}
|
|
||||||
if obj.ClusterName == "" {
|
|
||||||
obj.ClusterName = "kubernetes"
|
|
||||||
}
|
|
||||||
if obj.ConfigureCloudRoutes == nil {
|
|
||||||
obj.ConfigureCloudRoutes = utilpointer.BoolPtr(true)
|
|
||||||
}
|
|
||||||
if obj.RouteReconciliationPeriod == zero {
|
|
||||||
obj.RouteReconciliationPeriod = metav1.Duration{Duration: 10 * time.Second}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetDefaults_PersistentVolumeRecyclerConfiguration(obj *PersistentVolumeRecyclerConfiguration) {
|
|
||||||
if obj.MaximumRetry == 0 {
|
|
||||||
obj.MaximumRetry = 3
|
|
||||||
}
|
|
||||||
if obj.MinimumTimeoutNFS == 0 {
|
|
||||||
obj.MinimumTimeoutNFS = 300
|
|
||||||
}
|
|
||||||
if obj.IncrementTimeoutNFS == 0 {
|
|
||||||
obj.IncrementTimeoutNFS = 30
|
|
||||||
}
|
|
||||||
if obj.MinimumTimeoutHostPath == 0 {
|
|
||||||
obj.MinimumTimeoutHostPath = 60
|
|
||||||
}
|
|
||||||
if obj.IncrementTimeoutHostPath == 0 {
|
|
||||||
obj.IncrementTimeoutHostPath = 30
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetDefaults_VolumeConfiguration(obj *VolumeConfiguration) {
|
|
||||||
if obj.EnableHostPathProvisioning == nil {
|
|
||||||
obj.EnableHostPathProvisioning = utilpointer.BoolPtr(false)
|
|
||||||
}
|
|
||||||
if obj.EnableDynamicProvisioning == nil {
|
|
||||||
obj.EnableDynamicProvisioning = utilpointer.BoolPtr(true)
|
|
||||||
}
|
|
||||||
if obj.FlexVolumePluginDir == "" {
|
|
||||||
obj.FlexVolumePluginDir = "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -24,17 +24,17 @@ import (
|
|||||||
componentconfig "k8s.io/kubernetes/pkg/apis/componentconfig"
|
componentconfig "k8s.io/kubernetes/pkg/apis/componentconfig"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestControllerDefaultsRoundTrip(t *testing.T) {
|
func TestCloudControllerDefaultsRoundTrip(t *testing.T) {
|
||||||
ks1 := &KubeControllerManagerConfiguration{}
|
ks1 := &CloudControllerManagerConfiguration{}
|
||||||
SetDefaults_KubeControllerManagerConfiguration(ks1)
|
SetDefaults_CloudControllerManagerConfiguration(ks1)
|
||||||
cm, err := componentconfig.ConvertObjToConfigMap("KubeControllerManagerConfiguration", ks1)
|
cm, err := componentconfig.ConvertObjToConfigMap("CloudControllerManagerConfiguration", ks1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("unexpected ConvertObjToConfigMap error %v", err)
|
t.Errorf("unexpected ConvertObjToConfigMap error %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ks2 := &KubeControllerManagerConfiguration{}
|
ks2 := &CloudControllerManagerConfiguration{}
|
||||||
if err = json.Unmarshal([]byte(cm.Data["KubeControllerManagerConfiguration"]), ks2); err != nil {
|
if err = json.Unmarshal([]byte(cm.Data["CloudControllerManagerConfiguration"]), ks2); err != nil {
|
||||||
t.Errorf("unexpected error unserializing controller manager config %v", err)
|
t.Errorf("unexpected error unserializing cloud controller manager config %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if !reflect.DeepEqual(ks2, ks1) {
|
if !reflect.DeepEqual(ks2, ks1) {
|
||||||
|
@ -23,6 +23,7 @@ limitations under the License.
|
|||||||
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/componentconfig
|
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/componentconfig
|
||||||
// +k8s:conversion-gen=k8s.io/apimachinery/pkg/apis/config/v1alpha1
|
// +k8s:conversion-gen=k8s.io/apimachinery/pkg/apis/config/v1alpha1
|
||||||
// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/config/v1alpha1
|
// +k8s:conversion-gen=k8s.io/apiserver/pkg/apis/config/v1alpha1
|
||||||
|
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1
|
||||||
// +k8s:openapi-gen=true
|
// +k8s:openapi-gen=true
|
||||||
// +k8s:defaulter-gen=TypeMeta
|
// +k8s:defaulter-gen=TypeMeta
|
||||||
|
|
||||||
|
@ -17,414 +17,23 @@ limitations under the License.
|
|||||||
package v1alpha1
|
package v1alpha1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1"
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
|
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PersistentVolumeRecyclerConfiguration struct {
|
|
||||||
// maximumRetry is number of retries the PV recycler will execute on failure to recycle
|
|
||||||
// PV.
|
|
||||||
MaximumRetry int32
|
|
||||||
// minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler
|
|
||||||
// pod.
|
|
||||||
MinimumTimeoutNFS int32
|
|
||||||
// podTemplateFilePathNFS is the file path to a pod definition used as a template for
|
|
||||||
// NFS persistent volume recycling
|
|
||||||
PodTemplateFilePathNFS string
|
|
||||||
// incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds
|
|
||||||
// for an NFS scrubber pod.
|
|
||||||
IncrementTimeoutNFS int32
|
|
||||||
// podTemplateFilePathHostPath is the file path to a pod definition used as a template for
|
|
||||||
// HostPath persistent volume recycling. This is for development and testing only and
|
|
||||||
// will not work in a multi-node cluster.
|
|
||||||
PodTemplateFilePathHostPath string
|
|
||||||
// minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath
|
|
||||||
// Recycler pod. This is for development and testing only and will not work in a multi-node
|
|
||||||
// cluster.
|
|
||||||
MinimumTimeoutHostPath int32
|
|
||||||
// incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds
|
|
||||||
// for a HostPath scrubber pod. This is for development and testing only and will not work
|
|
||||||
// in a multi-node cluster.
|
|
||||||
IncrementTimeoutHostPath int32
|
|
||||||
}
|
|
||||||
|
|
||||||
// VolumeConfiguration contains *all* enumerated flags meant to configure all volume
|
|
||||||
// plugins. From this config, the controller-manager binary will create many instances of
|
|
||||||
// volume.VolumeConfig, each containing only the configuration needed for that plugin which
|
|
||||||
// are then passed to the appropriate plugin. The ControllerManager binary is the only part
|
|
||||||
// of the code which knows what plugins are supported and which flags correspond to each plugin.
|
|
||||||
type VolumeConfiguration struct {
|
|
||||||
// enableHostPathProvisioning enables HostPath PV provisioning when running without a
|
|
||||||
// cloud provider. This allows testing and development of provisioning features. HostPath
|
|
||||||
// provisioning is not supported in any way, won't work in a multi-node cluster, and
|
|
||||||
// should not be used for anything other than testing or development.
|
|
||||||
EnableHostPathProvisioning *bool
|
|
||||||
// enableDynamicProvisioning enables the provisioning of volumes when running within an environment
|
|
||||||
// that supports dynamic provisioning. Defaults to true.
|
|
||||||
EnableDynamicProvisioning *bool
|
|
||||||
// persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins.
|
|
||||||
PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration
|
|
||||||
// volumePluginDir is the full path of the directory in which the flex
|
|
||||||
// volume plugin should search for additional third party volume plugins
|
|
||||||
FlexVolumePluginDir string
|
|
||||||
}
|
|
||||||
|
|
||||||
type GroupResource struct {
|
|
||||||
// group is the group portion of the GroupResource.
|
|
||||||
Group string
|
|
||||||
// resource is the resource portion of the GroupResource.
|
|
||||||
Resource string
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
|
||||||
|
|
||||||
type KubeControllerManagerConfiguration struct {
|
|
||||||
metav1.TypeMeta `json:",inline"`
|
|
||||||
|
|
||||||
// Generic holds configuration for a generic controller-manager
|
|
||||||
Generic GenericControllerManagerConfiguration
|
|
||||||
// KubeCloudSharedConfiguration holds configuration for shared related features
|
|
||||||
// both in cloud controller manager and kube-controller manager.
|
|
||||||
KubeCloudShared KubeCloudSharedConfiguration
|
|
||||||
|
|
||||||
// AttachDetachControllerConfiguration holds configuration for
|
|
||||||
// AttachDetachController related features.
|
|
||||||
AttachDetachController AttachDetachControllerConfiguration
|
|
||||||
// CSRSigningControllerConfiguration holds configuration for
|
|
||||||
// CSRSigningController related features.
|
|
||||||
CSRSigningController CSRSigningControllerConfiguration
|
|
||||||
// DaemonSetControllerConfiguration holds configuration for DaemonSetController
|
|
||||||
// related features.
|
|
||||||
DaemonSetController DaemonSetControllerConfiguration
|
|
||||||
// DeploymentControllerConfiguration holds configuration for
|
|
||||||
// DeploymentController related features.
|
|
||||||
DeploymentController DeploymentControllerConfiguration
|
|
||||||
// DeprecatedControllerConfiguration holds configuration for some deprecated
|
|
||||||
// features.
|
|
||||||
DeprecatedController DeprecatedControllerConfiguration
|
|
||||||
// EndpointControllerConfiguration holds configuration for EndpointController
|
|
||||||
// related features.
|
|
||||||
EndpointController EndpointControllerConfiguration
|
|
||||||
// GarbageCollectorControllerConfiguration holds configuration for
|
|
||||||
// GarbageCollectorController related features.
|
|
||||||
GarbageCollectorController GarbageCollectorControllerConfiguration
|
|
||||||
// HPAControllerConfiguration holds configuration for HPAController related features.
|
|
||||||
HPAController HPAControllerConfiguration
|
|
||||||
// JobControllerConfiguration holds configuration for JobController related features.
|
|
||||||
JobController JobControllerConfiguration
|
|
||||||
// NamespaceControllerConfiguration holds configuration for NamespaceController
|
|
||||||
// related features.
|
|
||||||
NamespaceController NamespaceControllerConfiguration
|
|
||||||
// NodeIPAMControllerConfiguration holds configuration for NodeIPAMController
|
|
||||||
// related features.
|
|
||||||
NodeIPAMController NodeIPAMControllerConfiguration
|
|
||||||
// NodeLifecycleControllerConfiguration holds configuration for
|
|
||||||
// NodeLifecycleController related features.
|
|
||||||
NodeLifecycleController NodeLifecycleControllerConfiguration
|
|
||||||
// PersistentVolumeBinderControllerConfiguration holds configuration for
|
|
||||||
// PersistentVolumeBinderController related features.
|
|
||||||
PersistentVolumeBinderController PersistentVolumeBinderControllerConfiguration
|
|
||||||
// PodGCControllerConfiguration holds configuration for PodGCController
|
|
||||||
// related features.
|
|
||||||
PodGCController PodGCControllerConfiguration
|
|
||||||
// ReplicaSetControllerConfiguration holds configuration for ReplicaSet related features.
|
|
||||||
ReplicaSetController ReplicaSetControllerConfiguration
|
|
||||||
// ReplicationControllerConfiguration holds configuration for
|
|
||||||
// ReplicationController related features.
|
|
||||||
ReplicationController ReplicationControllerConfiguration
|
|
||||||
// ResourceQuotaControllerConfiguration holds configuration for
|
|
||||||
// ResourceQuotaController related features.
|
|
||||||
ResourceQuotaController ResourceQuotaControllerConfiguration
|
|
||||||
// SAControllerConfiguration holds configuration for ServiceAccountController
|
|
||||||
// related features.
|
|
||||||
SAController SAControllerConfiguration
|
|
||||||
// ServiceControllerConfiguration holds configuration for ServiceController
|
|
||||||
// related features.
|
|
||||||
ServiceController ServiceControllerConfiguration
|
|
||||||
}
|
|
||||||
|
|
||||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
type CloudControllerManagerConfiguration struct {
|
type CloudControllerManagerConfiguration struct {
|
||||||
metav1.TypeMeta `json:",inline"`
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
|
||||||
// Generic holds configuration for a generic controller-manager
|
// Generic holds configuration for a generic controller-manager
|
||||||
Generic GenericControllerManagerConfiguration
|
Generic kubectrlmgrconfigv1alpha1.GenericControllerManagerConfiguration
|
||||||
// KubeCloudSharedConfiguration holds configuration for shared related features
|
// KubeCloudSharedConfiguration holds configuration for shared related features
|
||||||
// both in cloud controller manager and kube-controller manager.
|
// both in cloud controller manager and kube-controller manager.
|
||||||
KubeCloudShared KubeCloudSharedConfiguration
|
KubeCloudShared kubectrlmgrconfigv1alpha1.KubeCloudSharedConfiguration
|
||||||
// ServiceControllerConfiguration holds configuration for ServiceController
|
// ServiceControllerConfiguration holds configuration for ServiceController
|
||||||
// related features.
|
// related features.
|
||||||
ServiceController ServiceControllerConfiguration
|
ServiceController kubectrlmgrconfigv1alpha1.ServiceControllerConfiguration
|
||||||
// NodeStatusUpdateFrequency is the frequency at which the controller updates nodes' status
|
// NodeStatusUpdateFrequency is the frequency at which the controller updates nodes' status
|
||||||
NodeStatusUpdateFrequency metav1.Duration
|
NodeStatusUpdateFrequency metav1.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
type GenericControllerManagerConfiguration struct {
|
|
||||||
// port is the port that the controller-manager's http service runs on.
|
|
||||||
Port int32
|
|
||||||
// address is the IP address to serve on (set to 0.0.0.0 for all interfaces).
|
|
||||||
Address string
|
|
||||||
// minResyncPeriod is the resync period in reflectors; will be random between
|
|
||||||
// minResyncPeriod and 2*minResyncPeriod.
|
|
||||||
MinResyncPeriod metav1.Duration
|
|
||||||
// ClientConnection specifies the kubeconfig file and client connection
|
|
||||||
// settings for the proxy server to use when communicating with the apiserver.
|
|
||||||
ClientConnection apimachineryconfigv1alpha1.ClientConnectionConfiguration
|
|
||||||
// How long to wait between starting controller managers
|
|
||||||
ControllerStartInterval metav1.Duration
|
|
||||||
// leaderElection defines the configuration of leader election client.
|
|
||||||
LeaderElection apiserverconfigv1alpha1.LeaderElectionConfiguration
|
|
||||||
// Controllers is the list of controllers to enable or disable
|
|
||||||
// '*' means "all enabled by default controllers"
|
|
||||||
// 'foo' means "enable 'foo'"
|
|
||||||
// '-foo' means "disable 'foo'"
|
|
||||||
// first item for a particular name wins
|
|
||||||
Controllers []string
|
|
||||||
// DebuggingConfiguration holds configuration for Debugging related features.
|
|
||||||
Debugging apiserverconfigv1alpha1.DebuggingConfiguration
|
|
||||||
}
|
|
||||||
|
|
||||||
type KubeCloudSharedConfiguration struct {
|
|
||||||
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
|
||||||
CloudProvider CloudProviderConfiguration
|
|
||||||
// externalCloudVolumePlugin specifies the plugin to use when cloudProvider is "external".
|
|
||||||
// It is currently used by the in repo cloud providers to handle node and volume control in the KCM.
|
|
||||||
ExternalCloudVolumePlugin string
|
|
||||||
// useServiceAccountCredentials indicates whether controllers should be run with
|
|
||||||
// individual service account credentials.
|
|
||||||
UseServiceAccountCredentials bool
|
|
||||||
// run with untagged cloud instances
|
|
||||||
AllowUntaggedCloud bool
|
|
||||||
// routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider..
|
|
||||||
RouteReconciliationPeriod metav1.Duration
|
|
||||||
// nodeMonitorPeriod is the period for syncing NodeStatus in NodeController.
|
|
||||||
NodeMonitorPeriod metav1.Duration
|
|
||||||
// clusterName is the instance prefix for the cluster.
|
|
||||||
ClusterName string
|
|
||||||
// clusterCIDR is CIDR Range for Pods in cluster.
|
|
||||||
ClusterCIDR string
|
|
||||||
// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
|
|
||||||
// ConfigureCloudRoutes is true, to be set on the cloud provider.
|
|
||||||
AllocateNodeCIDRs bool
|
|
||||||
// CIDRAllocatorType determines what kind of pod CIDR allocator will be used.
|
|
||||||
CIDRAllocatorType string
|
|
||||||
// configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs
|
|
||||||
// to be configured on the cloud provider.
|
|
||||||
ConfigureCloudRoutes *bool
|
|
||||||
// nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer
|
|
||||||
// periods will result in fewer calls to cloud provider, but may delay addition
|
|
||||||
// of new nodes to cluster.
|
|
||||||
NodeSyncPeriod metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type AttachDetachControllerConfiguration struct {
|
|
||||||
// Reconciler runs a periodic loop to reconcile the desired state of the with
|
|
||||||
// the actual state of the world by triggering attach detach operations.
|
|
||||||
// This flag enables or disables reconcile. Is false by default, and thus enabled.
|
|
||||||
DisableAttachDetachReconcilerSync bool
|
|
||||||
// ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
|
|
||||||
// wait between successive executions. Is set to 5 sec by default.
|
|
||||||
ReconcilerSyncLoopPeriod metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type CloudProviderConfiguration struct {
|
|
||||||
// Name is the provider for cloud services.
|
|
||||||
Name string
|
|
||||||
// cloudConfigFile is the path to the cloud provider configuration file.
|
|
||||||
CloudConfigFile string
|
|
||||||
}
|
|
||||||
|
|
||||||
type CSRSigningControllerConfiguration struct {
|
|
||||||
// clusterSigningCertFile is the filename containing a PEM-encoded
|
|
||||||
// X509 CA certificate used to issue cluster-scoped certificates
|
|
||||||
ClusterSigningCertFile string
|
|
||||||
// clusterSigningCertFile is the filename containing a PEM-encoded
|
|
||||||
// RSA or ECDSA private key used to issue cluster-scoped certificates
|
|
||||||
ClusterSigningKeyFile string
|
|
||||||
// clusterSigningDuration is the length of duration signed certificates
|
|
||||||
// will be given.
|
|
||||||
ClusterSigningDuration metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type DaemonSetControllerConfiguration struct {
|
|
||||||
// concurrentDaemonSetSyncs is the number of daemonset objects that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive daemonset,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentDaemonSetSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeploymentControllerConfiguration struct {
|
|
||||||
// concurrentDeploymentSyncs is the number of deployment objects that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive deployments,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentDeploymentSyncs int32
|
|
||||||
// deploymentControllerSyncPeriod is the period for syncing the deployments.
|
|
||||||
DeploymentControllerSyncPeriod metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type DeprecatedControllerConfiguration struct {
|
|
||||||
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
|
|
||||||
// case of node failure.
|
|
||||||
DeletingPodsQps float32
|
|
||||||
// DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in
|
|
||||||
// case of node failure. For more details look into RateLimiter.
|
|
||||||
DeletingPodsBurst int32
|
|
||||||
// registerRetryCount is the number of retries for initial node registration.
|
|
||||||
// Retry interval equals node-sync-period.
|
|
||||||
RegisterRetryCount int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type EndpointControllerConfiguration struct {
|
|
||||||
// concurrentEndpointSyncs is the number of endpoint syncing operations
|
|
||||||
// that will be done concurrently. Larger number = faster endpoint updating,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentEndpointSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type GarbageCollectorControllerConfiguration struct {
|
|
||||||
// enables the generic garbage collector. MUST be synced with the
|
|
||||||
// corresponding flag of the kube-apiserver. WARNING: the generic garbage
|
|
||||||
// collector is an alpha feature.
|
|
||||||
EnableGarbageCollector *bool
|
|
||||||
// concurrentGCSyncs is the number of garbage collector workers that are
|
|
||||||
// allowed to sync concurrently.
|
|
||||||
ConcurrentGCSyncs int32
|
|
||||||
// gcIgnoredResources is the list of GroupResources that garbage collection should ignore.
|
|
||||||
GCIgnoredResources []GroupResource
|
|
||||||
}
|
|
||||||
|
|
||||||
type HPAControllerConfiguration struct {
|
|
||||||
// HorizontalPodAutoscalerSyncPeriod is the period for syncing the number of
|
|
||||||
// pods in horizontal pod autoscaler.
|
|
||||||
HorizontalPodAutoscalerSyncPeriod metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerUpscaleForbiddenWindow is a period after which next upscale allowed.
|
|
||||||
HorizontalPodAutoscalerUpscaleForbiddenWindow metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerDowncaleStabilizationWindow is a period for which autoscaler will look
|
|
||||||
// backwards and not scale down below any recommendation it made during that period.
|
|
||||||
HorizontalPodAutoscalerDownscaleStabilizationWindow metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerDownscaleForbiddenWindow is a period after which next downscale allowed.
|
|
||||||
HorizontalPodAutoscalerDownscaleForbiddenWindow metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerTolerance is the tolerance for when
|
|
||||||
// resource usage suggests upscaling/downscaling
|
|
||||||
HorizontalPodAutoscalerTolerance float64
|
|
||||||
// HorizontalPodAutoscalerUseRESTClients causes the HPA controller to use REST clients
|
|
||||||
// through the kube-aggregator when enabled, instead of using the legacy metrics client
|
|
||||||
// through the API server proxy.
|
|
||||||
HorizontalPodAutoscalerUseRESTClients *bool
|
|
||||||
// HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start when CPU samples
|
|
||||||
// might be skipped.
|
|
||||||
HorizontalPodAutoscalerCPUInitializationPeriod metav1.Duration
|
|
||||||
// HorizontalPodAutoscalerInitialReadinessDelay is period after pod start during which readiness
|
|
||||||
// changes are treated as readiness being set for the first time. The only effect of this is that
|
|
||||||
// HPA will disregard CPU samples from unready pods that had last readiness change during that
|
|
||||||
// period.
|
|
||||||
HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration
|
|
||||||
}
|
|
||||||
|
|
||||||
type JobControllerConfiguration struct {
|
|
||||||
// concurrentJobSyncs is the number of job objects that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive jobs,
|
|
||||||
// but more CPU (and network) load.
|
|
||||||
ConcurrentJobSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type NamespaceControllerConfiguration struct {
|
|
||||||
// namespaceSyncPeriod is the period for syncing namespace life-cycle
|
|
||||||
// updates.
|
|
||||||
NamespaceSyncPeriod metav1.Duration
|
|
||||||
// concurrentNamespaceSyncs is the number of namespace objects that are
|
|
||||||
// allowed to sync concurrently.
|
|
||||||
ConcurrentNamespaceSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type NodeIPAMControllerConfiguration struct {
|
|
||||||
// serviceCIDR is CIDR Range for Services in cluster.
|
|
||||||
ServiceCIDR string
|
|
||||||
// NodeCIDRMaskSize is the mask size for node cidr in cluster.
|
|
||||||
NodeCIDRMaskSize int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type NodeLifecycleControllerConfiguration struct {
|
|
||||||
// If set to true enables NoExecute Taints and will evict all not-tolerating
|
|
||||||
// Pod running on Nodes tainted with this kind of Taints.
|
|
||||||
EnableTaintManager *bool
|
|
||||||
// nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy
|
|
||||||
NodeEvictionRate float32
|
|
||||||
// secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy
|
|
||||||
SecondaryNodeEvictionRate float32
|
|
||||||
// nodeStartupGracePeriod is the amount of time which we allow starting a node to
|
|
||||||
// be unresponsive before marking it unhealthy.
|
|
||||||
NodeStartupGracePeriod metav1.Duration
|
|
||||||
// nodeMontiorGracePeriod is the amount of time which we allow a running node to be
|
|
||||||
// unresponsive before marking it unhealthy. Must be N times more than kubelet's
|
|
||||||
// nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet
|
|
||||||
// to post node status.
|
|
||||||
NodeMonitorGracePeriod metav1.Duration
|
|
||||||
// podEvictionTimeout is the grace period for deleting pods on failed nodes.
|
|
||||||
PodEvictionTimeout metav1.Duration
|
|
||||||
// secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold
|
|
||||||
LargeClusterSizeThreshold int32
|
|
||||||
// Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least
|
|
||||||
// unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady
|
|
||||||
UnhealthyZoneThreshold float32
|
|
||||||
}
|
|
||||||
|
|
||||||
type PersistentVolumeBinderControllerConfiguration struct {
|
|
||||||
// pvClaimBinderSyncPeriod is the period for syncing persistent volumes
|
|
||||||
// and persistent volume claims.
|
|
||||||
PVClaimBinderSyncPeriod metav1.Duration
|
|
||||||
// volumeConfiguration holds configuration for volume related features.
|
|
||||||
VolumeConfiguration VolumeConfiguration
|
|
||||||
}
|
|
||||||
|
|
||||||
type PodGCControllerConfiguration struct {
|
|
||||||
// terminatedPodGCThreshold is the number of terminated pods that can exist
|
|
||||||
// before the terminated pod garbage collector starts deleting terminated pods.
|
|
||||||
// If <= 0, the terminated pod garbage collector is disabled.
|
|
||||||
TerminatedPodGCThreshold int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ReplicaSetControllerConfiguration struct {
|
|
||||||
// concurrentRSSyncs is the number of replica sets that are allowed to sync
|
|
||||||
// concurrently. Larger number = more responsive replica management, but more
|
|
||||||
// CPU (and network) load.
|
|
||||||
ConcurrentRSSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ReplicationControllerConfiguration struct {
|
|
||||||
// concurrentRCSyncs is the number of replication controllers that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive replica
|
|
||||||
// management, but more CPU (and network) load.
|
|
||||||
ConcurrentRCSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResourceQuotaControllerConfiguration struct {
|
|
||||||
// resourceQuotaSyncPeriod is the period for syncing quota usage status
|
|
||||||
// in the system.
|
|
||||||
ResourceQuotaSyncPeriod metav1.Duration
|
|
||||||
// concurrentResourceQuotaSyncs is the number of resource quotas that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive quota
|
|
||||||
// management, but more CPU (and network) load.
|
|
||||||
ConcurrentResourceQuotaSyncs int32
|
|
||||||
}
|
|
||||||
|
|
||||||
type SAControllerConfiguration struct {
|
|
||||||
// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key
|
|
||||||
// used to sign service account tokens.
|
|
||||||
ServiceAccountKeyFile string
|
|
||||||
// concurrentSATokenSyncs is the number of service account token syncing operations
|
|
||||||
// that will be done concurrently.
|
|
||||||
ConcurrentSATokenSyncs int32
|
|
||||||
// rootCAFile is the root certificate authority will be included in service
|
|
||||||
// account's token secret. This must be a valid PEM-encoded CA bundle.
|
|
||||||
RootCAFile string
|
|
||||||
}
|
|
||||||
|
|
||||||
type ServiceControllerConfiguration struct {
|
|
||||||
// concurrentServiceSyncs is the number of services that are
|
|
||||||
// allowed to sync concurrently. Larger number = more responsive service
|
|
||||||
// management, but more CPU (and network) load.
|
|
||||||
ConcurrentServiceSyncs int32
|
|
||||||
}
|
|
||||||
|
1084
pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go
generated
1084
pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go
generated
File diff suppressed because it is too large
Load Diff
@ -24,40 +24,6 @@ import (
|
|||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *AttachDetachControllerConfiguration) DeepCopyInto(out *AttachDetachControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.ReconcilerSyncLoopPeriod = in.ReconcilerSyncLoopPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachDetachControllerConfiguration.
|
|
||||||
func (in *AttachDetachControllerConfiguration) DeepCopy() *AttachDetachControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(AttachDetachControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *CSRSigningControllerConfiguration) DeepCopyInto(out *CSRSigningControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.ClusterSigningDuration = in.ClusterSigningDuration
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRSigningControllerConfiguration.
|
|
||||||
func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(CSRSigningControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *CloudControllerManagerConfiguration) DeepCopyInto(out *CloudControllerManagerConfiguration) {
|
func (in *CloudControllerManagerConfiguration) DeepCopyInto(out *CloudControllerManagerConfiguration) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -86,481 +52,3 @@ func (in *CloudControllerManagerConfiguration) DeepCopyObject() runtime.Object {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *CloudProviderConfiguration) DeepCopyInto(out *CloudProviderConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderConfiguration.
|
|
||||||
func (in *CloudProviderConfiguration) DeepCopy() *CloudProviderConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(CloudProviderConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *DaemonSetControllerConfiguration) DeepCopyInto(out *DaemonSetControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetControllerConfiguration.
|
|
||||||
func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(DaemonSetControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.DeploymentControllerSyncPeriod = in.DeploymentControllerSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentControllerConfiguration.
|
|
||||||
func (in *DeploymentControllerConfiguration) DeepCopy() *DeploymentControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(DeploymentControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *DeprecatedControllerConfiguration) DeepCopyInto(out *DeprecatedControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeprecatedControllerConfiguration.
|
|
||||||
func (in *DeprecatedControllerConfiguration) DeepCopy() *DeprecatedControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(DeprecatedControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *EndpointControllerConfiguration) DeepCopyInto(out *EndpointControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointControllerConfiguration.
|
|
||||||
func (in *EndpointControllerConfiguration) DeepCopy() *EndpointControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(EndpointControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
if in.EnableGarbageCollector != nil {
|
|
||||||
in, out := &in.EnableGarbageCollector, &out.EnableGarbageCollector
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.GCIgnoredResources != nil {
|
|
||||||
in, out := &in.GCIgnoredResources, &out.GCIgnoredResources
|
|
||||||
*out = make([]GroupResource, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectorControllerConfiguration.
|
|
||||||
func (in *GarbageCollectorControllerConfiguration) DeepCopy() *GarbageCollectorControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(GarbageCollectorControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *GenericControllerManagerConfiguration) DeepCopyInto(out *GenericControllerManagerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.MinResyncPeriod = in.MinResyncPeriod
|
|
||||||
out.ClientConnection = in.ClientConnection
|
|
||||||
out.ControllerStartInterval = in.ControllerStartInterval
|
|
||||||
in.LeaderElection.DeepCopyInto(&out.LeaderElection)
|
|
||||||
if in.Controllers != nil {
|
|
||||||
in, out := &in.Controllers, &out.Controllers
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
out.Debugging = in.Debugging
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericControllerManagerConfiguration.
|
|
||||||
func (in *GenericControllerManagerConfiguration) DeepCopy() *GenericControllerManagerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(GenericControllerManagerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *GroupResource) DeepCopyInto(out *GroupResource) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.
|
|
||||||
func (in *GroupResource) DeepCopy() *GroupResource {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(GroupResource)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *HPAControllerConfiguration) DeepCopyInto(out *HPAControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod
|
|
||||||
out.HorizontalPodAutoscalerUpscaleForbiddenWindow = in.HorizontalPodAutoscalerUpscaleForbiddenWindow
|
|
||||||
out.HorizontalPodAutoscalerDownscaleStabilizationWindow = in.HorizontalPodAutoscalerDownscaleStabilizationWindow
|
|
||||||
out.HorizontalPodAutoscalerDownscaleForbiddenWindow = in.HorizontalPodAutoscalerDownscaleForbiddenWindow
|
|
||||||
if in.HorizontalPodAutoscalerUseRESTClients != nil {
|
|
||||||
in, out := &in.HorizontalPodAutoscalerUseRESTClients, &out.HorizontalPodAutoscalerUseRESTClients
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
out.HorizontalPodAutoscalerCPUInitializationPeriod = in.HorizontalPodAutoscalerCPUInitializationPeriod
|
|
||||||
out.HorizontalPodAutoscalerInitialReadinessDelay = in.HorizontalPodAutoscalerInitialReadinessDelay
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAControllerConfiguration.
|
|
||||||
func (in *HPAControllerConfiguration) DeepCopy() *HPAControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(HPAControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *JobControllerConfiguration) DeepCopyInto(out *JobControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobControllerConfiguration.
|
|
||||||
func (in *JobControllerConfiguration) DeepCopy() *JobControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(JobControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *KubeCloudSharedConfiguration) DeepCopyInto(out *KubeCloudSharedConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.CloudProvider = in.CloudProvider
|
|
||||||
out.RouteReconciliationPeriod = in.RouteReconciliationPeriod
|
|
||||||
out.NodeMonitorPeriod = in.NodeMonitorPeriod
|
|
||||||
if in.ConfigureCloudRoutes != nil {
|
|
||||||
in, out := &in.ConfigureCloudRoutes, &out.ConfigureCloudRoutes
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
out.NodeSyncPeriod = in.NodeSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeCloudSharedConfiguration.
|
|
||||||
func (in *KubeCloudSharedConfiguration) DeepCopy() *KubeCloudSharedConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(KubeCloudSharedConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerManagerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.Generic.DeepCopyInto(&out.Generic)
|
|
||||||
in.KubeCloudShared.DeepCopyInto(&out.KubeCloudShared)
|
|
||||||
out.AttachDetachController = in.AttachDetachController
|
|
||||||
out.CSRSigningController = in.CSRSigningController
|
|
||||||
out.DaemonSetController = in.DaemonSetController
|
|
||||||
out.DeploymentController = in.DeploymentController
|
|
||||||
out.DeprecatedController = in.DeprecatedController
|
|
||||||
out.EndpointController = in.EndpointController
|
|
||||||
in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
|
|
||||||
in.HPAController.DeepCopyInto(&out.HPAController)
|
|
||||||
out.JobController = in.JobController
|
|
||||||
out.NamespaceController = in.NamespaceController
|
|
||||||
out.NodeIPAMController = in.NodeIPAMController
|
|
||||||
in.NodeLifecycleController.DeepCopyInto(&out.NodeLifecycleController)
|
|
||||||
in.PersistentVolumeBinderController.DeepCopyInto(&out.PersistentVolumeBinderController)
|
|
||||||
out.PodGCController = in.PodGCController
|
|
||||||
out.ReplicaSetController = in.ReplicaSetController
|
|
||||||
out.ReplicationController = in.ReplicationController
|
|
||||||
out.ResourceQuotaController = in.ResourceQuotaController
|
|
||||||
out.SAController = in.SAController
|
|
||||||
out.ServiceController = in.ServiceController
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfiguration.
|
|
||||||
func (in *KubeControllerManagerConfiguration) DeepCopy() *KubeControllerManagerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(KubeControllerManagerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.NamespaceSyncPeriod = in.NamespaceSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceControllerConfiguration.
|
|
||||||
func (in *NamespaceControllerConfiguration) DeepCopy() *NamespaceControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(NamespaceControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *NodeIPAMControllerConfiguration) DeepCopyInto(out *NodeIPAMControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeIPAMControllerConfiguration.
|
|
||||||
func (in *NodeIPAMControllerConfiguration) DeepCopy() *NodeIPAMControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(NodeIPAMControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *NodeLifecycleControllerConfiguration) DeepCopyInto(out *NodeLifecycleControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
if in.EnableTaintManager != nil {
|
|
||||||
in, out := &in.EnableTaintManager, &out.EnableTaintManager
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
out.NodeStartupGracePeriod = in.NodeStartupGracePeriod
|
|
||||||
out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod
|
|
||||||
out.PodEvictionTimeout = in.PodEvictionTimeout
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLifecycleControllerConfiguration.
|
|
||||||
func (in *NodeLifecycleControllerConfiguration) DeepCopy() *NodeLifecycleControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(NodeLifecycleControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopyInto(out *PersistentVolumeBinderControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.PVClaimBinderSyncPeriod = in.PVClaimBinderSyncPeriod
|
|
||||||
in.VolumeConfiguration.DeepCopyInto(&out.VolumeConfiguration)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeBinderControllerConfiguration.
|
|
||||||
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopy() *PersistentVolumeBinderControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(PersistentVolumeBinderControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration.
|
|
||||||
func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(PersistentVolumeRecyclerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *PodGCControllerConfiguration) DeepCopyInto(out *PodGCControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodGCControllerConfiguration.
|
|
||||||
func (in *PodGCControllerConfiguration) DeepCopy() *PodGCControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(PodGCControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ReplicaSetControllerConfiguration) DeepCopyInto(out *ReplicaSetControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetControllerConfiguration.
|
|
||||||
func (in *ReplicaSetControllerConfiguration) DeepCopy() *ReplicaSetControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ReplicaSetControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ReplicationControllerConfiguration) DeepCopyInto(out *ReplicationControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerConfiguration.
|
|
||||||
func (in *ReplicationControllerConfiguration) DeepCopy() *ReplicationControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ReplicationControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ResourceQuotaControllerConfiguration) DeepCopyInto(out *ResourceQuotaControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.ResourceQuotaSyncPeriod = in.ResourceQuotaSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaControllerConfiguration.
|
|
||||||
func (in *ResourceQuotaControllerConfiguration) DeepCopy() *ResourceQuotaControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ResourceQuotaControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *SAControllerConfiguration) DeepCopyInto(out *SAControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SAControllerConfiguration.
|
|
||||||
func (in *SAControllerConfiguration) DeepCopy() *SAControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(SAControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ServiceControllerConfiguration) DeepCopyInto(out *ServiceControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceControllerConfiguration.
|
|
||||||
func (in *ServiceControllerConfiguration) DeepCopy() *ServiceControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ServiceControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *VolumeConfiguration) DeepCopyInto(out *VolumeConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
if in.EnableHostPathProvisioning != nil {
|
|
||||||
in, out := &in.EnableHostPathProvisioning, &out.EnableHostPathProvisioning
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
if in.EnableDynamicProvisioning != nil {
|
|
||||||
in, out := &in.EnableDynamicProvisioning, &out.EnableDynamicProvisioning
|
|
||||||
*out = new(bool)
|
|
||||||
**out = **in
|
|
||||||
}
|
|
||||||
out.PersistentVolumeRecyclerConfiguration = in.PersistentVolumeRecyclerConfiguration
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeConfiguration.
|
|
||||||
func (in *VolumeConfiguration) DeepCopy() *VolumeConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(VolumeConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
@ -22,6 +22,7 @@ package v1alpha1
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
configv1alpha1 "k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RegisterDefaults adds defaulters functions to the given scheme.
|
// RegisterDefaults adds defaulters functions to the given scheme.
|
||||||
@ -31,22 +32,11 @@ func RegisterDefaults(scheme *runtime.Scheme) error {
|
|||||||
scheme.AddTypeDefaultingFunc(&CloudControllerManagerConfiguration{}, func(obj interface{}) {
|
scheme.AddTypeDefaultingFunc(&CloudControllerManagerConfiguration{}, func(obj interface{}) {
|
||||||
SetObjectDefaults_CloudControllerManagerConfiguration(obj.(*CloudControllerManagerConfiguration))
|
SetObjectDefaults_CloudControllerManagerConfiguration(obj.(*CloudControllerManagerConfiguration))
|
||||||
})
|
})
|
||||||
scheme.AddTypeDefaultingFunc(&KubeControllerManagerConfiguration{}, func(obj interface{}) {
|
|
||||||
SetObjectDefaults_KubeControllerManagerConfiguration(obj.(*KubeControllerManagerConfiguration))
|
|
||||||
})
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetObjectDefaults_CloudControllerManagerConfiguration(in *CloudControllerManagerConfiguration) {
|
func SetObjectDefaults_CloudControllerManagerConfiguration(in *CloudControllerManagerConfiguration) {
|
||||||
SetDefaults_CloudControllerManagerConfiguration(in)
|
SetDefaults_CloudControllerManagerConfiguration(in)
|
||||||
SetDefaults_GenericControllerManagerConfiguration(&in.Generic)
|
configv1alpha1.SetDefaults_KubeCloudSharedConfiguration(&in.KubeCloudShared)
|
||||||
SetDefaults_KubeCloudSharedConfiguration(&in.KubeCloudShared)
|
configv1alpha1.SetDefaults_ServiceControllerConfiguration(&in.ServiceController)
|
||||||
}
|
|
||||||
|
|
||||||
func SetObjectDefaults_KubeControllerManagerConfiguration(in *KubeControllerManagerConfiguration) {
|
|
||||||
SetDefaults_KubeControllerManagerConfiguration(in)
|
|
||||||
SetDefaults_GenericControllerManagerConfiguration(&in.Generic)
|
|
||||||
SetDefaults_KubeCloudSharedConfiguration(&in.KubeCloudShared)
|
|
||||||
SetDefaults_VolumeConfiguration(&in.PersistentVolumeBinderController.VolumeConfiguration)
|
|
||||||
SetDefaults_PersistentVolumeRecyclerConfiguration(&in.PersistentVolumeBinderController.VolumeConfiguration.PersistentVolumeRecyclerConfiguration)
|
|
||||||
}
|
}
|
||||||
|
482
pkg/apis/componentconfig/zz_generated.deepcopy.go
generated
482
pkg/apis/componentconfig/zz_generated.deepcopy.go
generated
@ -24,40 +24,6 @@ import (
|
|||||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *AttachDetachControllerConfiguration) DeepCopyInto(out *AttachDetachControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.ReconcilerSyncLoopPeriod = in.ReconcilerSyncLoopPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachDetachControllerConfiguration.
|
|
||||||
func (in *AttachDetachControllerConfiguration) DeepCopy() *AttachDetachControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(AttachDetachControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *CSRSigningControllerConfiguration) DeepCopyInto(out *CSRSigningControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.ClusterSigningDuration = in.ClusterSigningDuration
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRSigningControllerConfiguration.
|
|
||||||
func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(CSRSigningControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *CloudControllerManagerConfiguration) DeepCopyInto(out *CloudControllerManagerConfiguration) {
|
func (in *CloudControllerManagerConfiguration) DeepCopyInto(out *CloudControllerManagerConfiguration) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -87,172 +53,6 @@ func (in *CloudControllerManagerConfiguration) DeepCopyObject() runtime.Object {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *CloudProviderConfiguration) DeepCopyInto(out *CloudProviderConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderConfiguration.
|
|
||||||
func (in *CloudProviderConfiguration) DeepCopy() *CloudProviderConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(CloudProviderConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *DaemonSetControllerConfiguration) DeepCopyInto(out *DaemonSetControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetControllerConfiguration.
|
|
||||||
func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(DaemonSetControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.DeploymentControllerSyncPeriod = in.DeploymentControllerSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentControllerConfiguration.
|
|
||||||
func (in *DeploymentControllerConfiguration) DeepCopy() *DeploymentControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(DeploymentControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *DeprecatedControllerConfiguration) DeepCopyInto(out *DeprecatedControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeprecatedControllerConfiguration.
|
|
||||||
func (in *DeprecatedControllerConfiguration) DeepCopy() *DeprecatedControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(DeprecatedControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *EndpointControllerConfiguration) DeepCopyInto(out *EndpointControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointControllerConfiguration.
|
|
||||||
func (in *EndpointControllerConfiguration) DeepCopy() *EndpointControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(EndpointControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
if in.GCIgnoredResources != nil {
|
|
||||||
in, out := &in.GCIgnoredResources, &out.GCIgnoredResources
|
|
||||||
*out = make([]GroupResource, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectorControllerConfiguration.
|
|
||||||
func (in *GarbageCollectorControllerConfiguration) DeepCopy() *GarbageCollectorControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(GarbageCollectorControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *GenericControllerManagerConfiguration) DeepCopyInto(out *GenericControllerManagerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.MinResyncPeriod = in.MinResyncPeriod
|
|
||||||
out.ClientConnection = in.ClientConnection
|
|
||||||
out.ControllerStartInterval = in.ControllerStartInterval
|
|
||||||
out.LeaderElection = in.LeaderElection
|
|
||||||
if in.Controllers != nil {
|
|
||||||
in, out := &in.Controllers, &out.Controllers
|
|
||||||
*out = make([]string, len(*in))
|
|
||||||
copy(*out, *in)
|
|
||||||
}
|
|
||||||
out.Debugging = in.Debugging
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericControllerManagerConfiguration.
|
|
||||||
func (in *GenericControllerManagerConfiguration) DeepCopy() *GenericControllerManagerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(GenericControllerManagerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *GroupResource) DeepCopyInto(out *GroupResource) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.
|
|
||||||
func (in *GroupResource) DeepCopy() *GroupResource {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(GroupResource)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *HPAControllerConfiguration) DeepCopyInto(out *HPAControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod
|
|
||||||
out.HorizontalPodAutoscalerUpscaleForbiddenWindow = in.HorizontalPodAutoscalerUpscaleForbiddenWindow
|
|
||||||
out.HorizontalPodAutoscalerDownscaleForbiddenWindow = in.HorizontalPodAutoscalerDownscaleForbiddenWindow
|
|
||||||
out.HorizontalPodAutoscalerDownscaleStabilizationWindow = in.HorizontalPodAutoscalerDownscaleStabilizationWindow
|
|
||||||
out.HorizontalPodAutoscalerCPUInitializationPeriod = in.HorizontalPodAutoscalerCPUInitializationPeriod
|
|
||||||
out.HorizontalPodAutoscalerInitialReadinessDelay = in.HorizontalPodAutoscalerInitialReadinessDelay
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAControllerConfiguration.
|
|
||||||
func (in *HPAControllerConfiguration) DeepCopy() *HPAControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(HPAControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *IPPortVar) DeepCopyInto(out *IPPortVar) {
|
func (in *IPPortVar) DeepCopyInto(out *IPPortVar) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -295,190 +95,6 @@ func (in *IPVar) DeepCopy() *IPVar {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *JobControllerConfiguration) DeepCopyInto(out *JobControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobControllerConfiguration.
|
|
||||||
func (in *JobControllerConfiguration) DeepCopy() *JobControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(JobControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *KubeCloudSharedConfiguration) DeepCopyInto(out *KubeCloudSharedConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.CloudProvider = in.CloudProvider
|
|
||||||
out.RouteReconciliationPeriod = in.RouteReconciliationPeriod
|
|
||||||
out.NodeMonitorPeriod = in.NodeMonitorPeriod
|
|
||||||
out.NodeSyncPeriod = in.NodeSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeCloudSharedConfiguration.
|
|
||||||
func (in *KubeCloudSharedConfiguration) DeepCopy() *KubeCloudSharedConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(KubeCloudSharedConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerManagerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.TypeMeta = in.TypeMeta
|
|
||||||
in.Generic.DeepCopyInto(&out.Generic)
|
|
||||||
out.KubeCloudShared = in.KubeCloudShared
|
|
||||||
out.AttachDetachController = in.AttachDetachController
|
|
||||||
out.CSRSigningController = in.CSRSigningController
|
|
||||||
out.DaemonSetController = in.DaemonSetController
|
|
||||||
out.DeploymentController = in.DeploymentController
|
|
||||||
out.DeprecatedController = in.DeprecatedController
|
|
||||||
out.EndpointController = in.EndpointController
|
|
||||||
in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
|
|
||||||
out.HPAController = in.HPAController
|
|
||||||
out.JobController = in.JobController
|
|
||||||
out.NamespaceController = in.NamespaceController
|
|
||||||
out.NodeIPAMController = in.NodeIPAMController
|
|
||||||
out.NodeLifecycleController = in.NodeLifecycleController
|
|
||||||
out.PersistentVolumeBinderController = in.PersistentVolumeBinderController
|
|
||||||
out.PodGCController = in.PodGCController
|
|
||||||
out.ReplicaSetController = in.ReplicaSetController
|
|
||||||
out.ReplicationController = in.ReplicationController
|
|
||||||
out.ResourceQuotaController = in.ResourceQuotaController
|
|
||||||
out.SAController = in.SAController
|
|
||||||
out.ServiceController = in.ServiceController
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfiguration.
|
|
||||||
func (in *KubeControllerManagerConfiguration) DeepCopy() *KubeControllerManagerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(KubeControllerManagerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
|
||||||
func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object {
|
|
||||||
if c := in.DeepCopy(); c != nil {
|
|
||||||
return c
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.NamespaceSyncPeriod = in.NamespaceSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceControllerConfiguration.
|
|
||||||
func (in *NamespaceControllerConfiguration) DeepCopy() *NamespaceControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(NamespaceControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *NodeIPAMControllerConfiguration) DeepCopyInto(out *NodeIPAMControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeIPAMControllerConfiguration.
|
|
||||||
func (in *NodeIPAMControllerConfiguration) DeepCopy() *NodeIPAMControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(NodeIPAMControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *NodeLifecycleControllerConfiguration) DeepCopyInto(out *NodeLifecycleControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.NodeStartupGracePeriod = in.NodeStartupGracePeriod
|
|
||||||
out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod
|
|
||||||
out.PodEvictionTimeout = in.PodEvictionTimeout
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLifecycleControllerConfiguration.
|
|
||||||
func (in *NodeLifecycleControllerConfiguration) DeepCopy() *NodeLifecycleControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(NodeLifecycleControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopyInto(out *PersistentVolumeBinderControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.PVClaimBinderSyncPeriod = in.PVClaimBinderSyncPeriod
|
|
||||||
out.VolumeConfiguration = in.VolumeConfiguration
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeBinderControllerConfiguration.
|
|
||||||
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopy() *PersistentVolumeBinderControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(PersistentVolumeBinderControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration.
|
|
||||||
func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(PersistentVolumeRecyclerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *PodGCControllerConfiguration) DeepCopyInto(out *PodGCControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodGCControllerConfiguration.
|
|
||||||
func (in *PodGCControllerConfiguration) DeepCopy() *PodGCControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(PodGCControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *PortRangeVar) DeepCopyInto(out *PortRangeVar) {
|
func (in *PortRangeVar) DeepCopyInto(out *PortRangeVar) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -499,101 +115,3 @@ func (in *PortRangeVar) DeepCopy() *PortRangeVar {
|
|||||||
in.DeepCopyInto(out)
|
in.DeepCopyInto(out)
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ReplicaSetControllerConfiguration) DeepCopyInto(out *ReplicaSetControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetControllerConfiguration.
|
|
||||||
func (in *ReplicaSetControllerConfiguration) DeepCopy() *ReplicaSetControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ReplicaSetControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ReplicationControllerConfiguration) DeepCopyInto(out *ReplicationControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerConfiguration.
|
|
||||||
func (in *ReplicationControllerConfiguration) DeepCopy() *ReplicationControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ReplicationControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ResourceQuotaControllerConfiguration) DeepCopyInto(out *ResourceQuotaControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.ResourceQuotaSyncPeriod = in.ResourceQuotaSyncPeriod
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaControllerConfiguration.
|
|
||||||
func (in *ResourceQuotaControllerConfiguration) DeepCopy() *ResourceQuotaControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ResourceQuotaControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *SAControllerConfiguration) DeepCopyInto(out *SAControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SAControllerConfiguration.
|
|
||||||
func (in *SAControllerConfiguration) DeepCopy() *SAControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(SAControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *ServiceControllerConfiguration) DeepCopyInto(out *ServiceControllerConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceControllerConfiguration.
|
|
||||||
func (in *ServiceControllerConfiguration) DeepCopy() *ServiceControllerConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(ServiceControllerConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
|
||||||
func (in *VolumeConfiguration) DeepCopyInto(out *VolumeConfiguration) {
|
|
||||||
*out = *in
|
|
||||||
out.PersistentVolumeRecyclerConfiguration = in.PersistentVolumeRecyclerConfiguration
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeConfiguration.
|
|
||||||
func (in *VolumeConfiguration) DeepCopy() *VolumeConfiguration {
|
|
||||||
if in == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
out := new(VolumeConfiguration)
|
|
||||||
in.DeepCopyInto(out)
|
|
||||||
return out
|
|
||||||
}
|
|
||||||
|
@ -104,6 +104,7 @@ filegroup(
|
|||||||
name = "all-srcs",
|
name = "all-srcs",
|
||||||
srcs = [
|
srcs = [
|
||||||
":package-srcs",
|
":package-srcs",
|
||||||
|
"//pkg/controller/apis/config:all-srcs",
|
||||||
"//pkg/controller/bootstrap:all-srcs",
|
"//pkg/controller/bootstrap:all-srcs",
|
||||||
"//pkg/controller/certificates:all-srcs",
|
"//pkg/controller/certificates:all-srcs",
|
||||||
"//pkg/controller/cloud:all-srcs",
|
"//pkg/controller/cloud:all-srcs",
|
||||||
|
38
pkg/controller/apis/config/BUILD
Normal file
38
pkg/controller/apis/config/BUILD
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = [
|
||||||
|
"doc.go",
|
||||||
|
"register.go",
|
||||||
|
"types.go",
|
||||||
|
"zz_generated.deepcopy.go",
|
||||||
|
],
|
||||||
|
importpath = "k8s.io/kubernetes/pkg/controller/apis/config",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/config:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apiserver/pkg/apis/config:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [
|
||||||
|
":package-srcs",
|
||||||
|
"//pkg/controller/apis/config/scheme:all-srcs",
|
||||||
|
"//pkg/controller/apis/config/v1alpha1:all-srcs",
|
||||||
|
],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
14
pkg/controller/apis/config/OWNERS
Normal file
14
pkg/controller/apis/config/OWNERS
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
approvers:
|
||||||
|
- api-approvers
|
||||||
|
- deads2k
|
||||||
|
- luxas
|
||||||
|
- mtaufen
|
||||||
|
- sttts
|
||||||
|
- stewart-yu
|
||||||
|
reviewers:
|
||||||
|
- api-reviewers
|
||||||
|
- deads2k
|
||||||
|
- luxas
|
||||||
|
- mtaufen
|
||||||
|
- sttts
|
||||||
|
- stewart-yu
|
19
pkg/controller/apis/config/doc.go
Normal file
19
pkg/controller/apis/config/doc.go
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// +k8s:deepcopy-gen=package
|
||||||
|
|
||||||
|
package config // import "k8s.io/kubernetes/pkg/controller/apis/config"
|
43
pkg/controller/apis/config/register.go
Normal file
43
pkg/controller/apis/config/register.go
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GroupName is the group name use in this package
|
||||||
|
const GroupName = "kubecontrollermanager.config.k8s.io"
|
||||||
|
|
||||||
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
|
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
||||||
|
|
||||||
|
var (
|
||||||
|
// SchemeBuilder providers the handle of collects functions that add things to a scheme
|
||||||
|
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
|
||||||
|
// AddToScheme applies all the stored functions to the scheme. A non-nil error
|
||||||
|
// indicates that one function failed and the attempt was abandoned.
|
||||||
|
AddToScheme = SchemeBuilder.AddToScheme
|
||||||
|
)
|
||||||
|
|
||||||
|
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||||
|
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||||
|
&KubeControllerManagerConfiguration{},
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
29
pkg/controller/apis/config/scheme/BUILD
Normal file
29
pkg/controller/apis/config/scheme/BUILD
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = ["scheme.go"],
|
||||||
|
importpath = "k8s.io/kubernetes/pkg/controller/apis/config/scheme",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
|
"//pkg/controller/apis/config/v1alpha1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
44
pkg/controller/apis/config/scheme/scheme.go
Normal file
44
pkg/controller/apis/config/scheme/scheme.go
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package scheme
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
|
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
|
||||||
|
"k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
|
"k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
// Scheme defines methods for serializing and deserializing API objects.
|
||||||
|
Scheme = runtime.NewScheme()
|
||||||
|
// Codecs provides methods for retrieving codecs and serializers for specific
|
||||||
|
// versions and content types.
|
||||||
|
Codecs = serializer.NewCodecFactory(Scheme)
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
AddToScheme(Scheme)
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddToScheme registers the API group and adds types to a scheme
|
||||||
|
func AddToScheme(scheme *runtime.Scheme) {
|
||||||
|
utilruntime.Must(config.AddToScheme(scheme))
|
||||||
|
utilruntime.Must(v1alpha1.AddToScheme(scheme))
|
||||||
|
utilruntime.Must(scheme.SetVersionPriority(v1alpha1.SchemeGroupVersion))
|
||||||
|
}
|
440
pkg/controller/apis/config/types.go
Normal file
440
pkg/controller/apis/config/types.go
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
apimachineryconfig "k8s.io/apimachinery/pkg/apis/config"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
apiserverconfig "k8s.io/apiserver/pkg/apis/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GroupResource describes an group resource.
|
||||||
|
type GroupResource struct {
|
||||||
|
// group is the group portion of the GroupResource.
|
||||||
|
Group string
|
||||||
|
// resource is the resource portion of the GroupResource.
|
||||||
|
Resource string
|
||||||
|
}
|
||||||
|
|
||||||
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
|
// KubeControllerManagerConfiguration contains elements describing kube-controller manager.
|
||||||
|
type KubeControllerManagerConfiguration struct {
|
||||||
|
metav1.TypeMeta
|
||||||
|
|
||||||
|
// Generic holds configuration for a generic controller-manager
|
||||||
|
Generic GenericControllerManagerConfiguration
|
||||||
|
// KubeCloudSharedConfiguration holds configuration for shared related features
|
||||||
|
// both in cloud controller manager and kube-controller manager.
|
||||||
|
KubeCloudShared KubeCloudSharedConfiguration
|
||||||
|
|
||||||
|
// AttachDetachControllerConfiguration holds configuration for
|
||||||
|
// AttachDetachController related features.
|
||||||
|
AttachDetachController AttachDetachControllerConfiguration
|
||||||
|
// CSRSigningControllerConfiguration holds configuration for
|
||||||
|
// CSRSigningController related features.
|
||||||
|
CSRSigningController CSRSigningControllerConfiguration
|
||||||
|
// DaemonSetControllerConfiguration holds configuration for DaemonSetController
|
||||||
|
// related features.
|
||||||
|
DaemonSetController DaemonSetControllerConfiguration
|
||||||
|
// DeploymentControllerConfiguration holds configuration for
|
||||||
|
// DeploymentController related features.
|
||||||
|
DeploymentController DeploymentControllerConfiguration
|
||||||
|
// DeprecatedControllerConfiguration holds configuration for some deprecated
|
||||||
|
// features.
|
||||||
|
DeprecatedController DeprecatedControllerConfiguration
|
||||||
|
// EndpointControllerConfiguration holds configuration for EndpointController
|
||||||
|
// related features.
|
||||||
|
EndpointController EndpointControllerConfiguration
|
||||||
|
// GarbageCollectorControllerConfiguration holds configuration for
|
||||||
|
// GarbageCollectorController related features.
|
||||||
|
GarbageCollectorController GarbageCollectorControllerConfiguration
|
||||||
|
// HPAControllerConfiguration holds configuration for HPAController related features.
|
||||||
|
HPAController HPAControllerConfiguration
|
||||||
|
// JobControllerConfiguration holds configuration for JobController related features.
|
||||||
|
JobController JobControllerConfiguration
|
||||||
|
// NamespaceControllerConfiguration holds configuration for NamespaceController
|
||||||
|
// related features.
|
||||||
|
NamespaceController NamespaceControllerConfiguration
|
||||||
|
// NodeIPAMControllerConfiguration holds configuration for NodeIPAMController
|
||||||
|
// related features.
|
||||||
|
NodeIPAMController NodeIPAMControllerConfiguration
|
||||||
|
// NodeLifecycleControllerConfiguration holds configuration for
|
||||||
|
// NodeLifecycleController related features.
|
||||||
|
NodeLifecycleController NodeLifecycleControllerConfiguration
|
||||||
|
// PersistentVolumeBinderControllerConfiguration holds configuration for
|
||||||
|
// PersistentVolumeBinderController related features.
|
||||||
|
PersistentVolumeBinderController PersistentVolumeBinderControllerConfiguration
|
||||||
|
// PodGCControllerConfiguration holds configuration for PodGCController
|
||||||
|
// related features.
|
||||||
|
PodGCController PodGCControllerConfiguration
|
||||||
|
// ReplicaSetControllerConfiguration holds configuration for ReplicaSet related features.
|
||||||
|
ReplicaSetController ReplicaSetControllerConfiguration
|
||||||
|
// ReplicationControllerConfiguration holds configuration for
|
||||||
|
// ReplicationController related features.
|
||||||
|
ReplicationController ReplicationControllerConfiguration
|
||||||
|
// ResourceQuotaControllerConfiguration holds configuration for
|
||||||
|
// ResourceQuotaController related features.
|
||||||
|
ResourceQuotaController ResourceQuotaControllerConfiguration
|
||||||
|
// SAControllerConfiguration holds configuration for ServiceAccountController
|
||||||
|
// related features.
|
||||||
|
SAController SAControllerConfiguration
|
||||||
|
// ServiceControllerConfiguration holds configuration for ServiceController
|
||||||
|
// related features.
|
||||||
|
ServiceController ServiceControllerConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenericControllerManagerConfiguration holds configuration for a generic controller-manager
|
||||||
|
type GenericControllerManagerConfiguration struct {
|
||||||
|
// port is the port that the controller-manager's http service runs on.
|
||||||
|
Port int32
|
||||||
|
// address is the IP address to serve on (set to 0.0.0.0 for all interfaces).
|
||||||
|
Address string
|
||||||
|
// minResyncPeriod is the resync period in reflectors; will be random between
|
||||||
|
// minResyncPeriod and 2*minResyncPeriod.
|
||||||
|
MinResyncPeriod metav1.Duration
|
||||||
|
// ClientConnection specifies the kubeconfig file and client connection
|
||||||
|
// settings for the proxy server to use when communicating with the apiserver.
|
||||||
|
ClientConnection apimachineryconfig.ClientConnectionConfiguration
|
||||||
|
// How long to wait between starting controller managers
|
||||||
|
ControllerStartInterval metav1.Duration
|
||||||
|
// leaderElection defines the configuration of leader election client.
|
||||||
|
LeaderElection apiserverconfig.LeaderElectionConfiguration
|
||||||
|
// Controllers is the list of controllers to enable or disable
|
||||||
|
// '*' means "all enabled by default controllers"
|
||||||
|
// 'foo' means "enable 'foo'"
|
||||||
|
// '-foo' means "disable 'foo'"
|
||||||
|
// first item for a particular name wins
|
||||||
|
Controllers []string
|
||||||
|
// DebuggingConfiguration holds configuration for Debugging related features.
|
||||||
|
Debugging apiserverconfig.DebuggingConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
|
// KubeCloudSharedConfiguration contains elements shared by both kube-controller manager
|
||||||
|
// and cloud-controller manager, but not genericconfig.
|
||||||
|
type KubeCloudSharedConfiguration struct {
|
||||||
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
||||||
|
CloudProvider CloudProviderConfiguration
|
||||||
|
// externalCloudVolumePlugin specifies the plugin to use when cloudProvider is "external".
|
||||||
|
// It is currently used by the in repo cloud providers to handle node and volume control in the KCM.
|
||||||
|
ExternalCloudVolumePlugin string
|
||||||
|
// useServiceAccountCredentials indicates whether controllers should be run with
|
||||||
|
// individual service account credentials.
|
||||||
|
UseServiceAccountCredentials bool
|
||||||
|
// run with untagged cloud instances
|
||||||
|
AllowUntaggedCloud bool
|
||||||
|
// routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider..
|
||||||
|
RouteReconciliationPeriod metav1.Duration
|
||||||
|
// nodeMonitorPeriod is the period for syncing NodeStatus in NodeController.
|
||||||
|
NodeMonitorPeriod metav1.Duration
|
||||||
|
// clusterName is the instance prefix for the cluster.
|
||||||
|
ClusterName string
|
||||||
|
// clusterCIDR is CIDR Range for Pods in cluster.
|
||||||
|
ClusterCIDR string
|
||||||
|
// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
|
||||||
|
// ConfigureCloudRoutes is true, to be set on the cloud provider.
|
||||||
|
AllocateNodeCIDRs bool
|
||||||
|
// CIDRAllocatorType determines what kind of pod CIDR allocator will be used.
|
||||||
|
CIDRAllocatorType string
|
||||||
|
// configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs
|
||||||
|
// to be configured on the cloud provider.
|
||||||
|
ConfigureCloudRoutes bool
|
||||||
|
// nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer
|
||||||
|
// periods will result in fewer calls to cloud provider, but may delay addition
|
||||||
|
// of new nodes to cluster.
|
||||||
|
NodeSyncPeriod metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// AttachDetachControllerConfiguration contains elements describing AttachDetachController.
|
||||||
|
type AttachDetachControllerConfiguration struct {
|
||||||
|
// Reconciler runs a periodic loop to reconcile the desired state of the with
|
||||||
|
// the actual state of the world by triggering attach detach operations.
|
||||||
|
// This flag enables or disables reconcile. Is false by default, and thus enabled.
|
||||||
|
DisableAttachDetachReconcilerSync bool
|
||||||
|
// ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
|
||||||
|
// wait between successive executions. Is set to 5 sec by default.
|
||||||
|
ReconcilerSyncLoopPeriod metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// CloudProviderConfiguration contains basically elements about cloud provider.
|
||||||
|
type CloudProviderConfiguration struct {
|
||||||
|
// Name is the provider for cloud services.
|
||||||
|
Name string
|
||||||
|
// cloudConfigFile is the path to the cloud provider configuration file.
|
||||||
|
CloudConfigFile string
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSRSigningControllerConfiguration contains elements describing CSRSigningController.
|
||||||
|
type CSRSigningControllerConfiguration struct {
|
||||||
|
// clusterSigningCertFile is the filename containing a PEM-encoded
|
||||||
|
// X509 CA certificate used to issue cluster-scoped certificates
|
||||||
|
ClusterSigningCertFile string
|
||||||
|
// clusterSigningCertFile is the filename containing a PEM-encoded
|
||||||
|
// RSA or ECDSA private key used to issue cluster-scoped certificates
|
||||||
|
ClusterSigningKeyFile string
|
||||||
|
// clusterSigningDuration is the length of duration signed certificates
|
||||||
|
// will be given.
|
||||||
|
ClusterSigningDuration metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// DaemonSetControllerConfiguration contains elements describing DaemonSetController.
|
||||||
|
type DaemonSetControllerConfiguration struct {
|
||||||
|
// concurrentDaemonSetSyncs is the number of daemonset objects that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive daemonset,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentDaemonSetSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentControllerConfiguration contains elements describing DeploymentController.
|
||||||
|
type DeploymentControllerConfiguration struct {
|
||||||
|
// concurrentDeploymentSyncs is the number of deployment objects that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive deployments,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentDeploymentSyncs int32
|
||||||
|
// deploymentControllerSyncPeriod is the period for syncing the deployments.
|
||||||
|
DeploymentControllerSyncPeriod metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeprecatedControllerConfiguration contains elements be deprecated.
|
||||||
|
type DeprecatedControllerConfiguration struct {
|
||||||
|
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
|
||||||
|
// case of node failure.
|
||||||
|
DeletingPodsQPS float32
|
||||||
|
// DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in
|
||||||
|
// case of node failure. For more details look into RateLimiter.
|
||||||
|
DeletingPodsBurst int32
|
||||||
|
// registerRetryCount is the number of retries for initial node registration.
|
||||||
|
// Retry interval equals node-sync-period.
|
||||||
|
RegisterRetryCount int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// EndpointControllerConfiguration contains elements describing EndpointController.
|
||||||
|
type EndpointControllerConfiguration struct {
|
||||||
|
// concurrentEndpointSyncs is the number of endpoint syncing operations
|
||||||
|
// that will be done concurrently. Larger number = faster endpoint updating,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentEndpointSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController.
|
||||||
|
type GarbageCollectorControllerConfiguration struct {
|
||||||
|
// enables the generic garbage collector. MUST be synced with the
|
||||||
|
// corresponding flag of the kube-apiserver. WARNING: the generic garbage
|
||||||
|
// collector is an alpha feature.
|
||||||
|
EnableGarbageCollector bool
|
||||||
|
// concurrentGCSyncs is the number of garbage collector workers that are
|
||||||
|
// allowed to sync concurrently.
|
||||||
|
ConcurrentGCSyncs int32
|
||||||
|
// gcIgnoredResources is the list of GroupResources that garbage collection should ignore.
|
||||||
|
GCIgnoredResources []GroupResource
|
||||||
|
}
|
||||||
|
|
||||||
|
// HPAControllerConfiguration contains elements describing HPAController.
|
||||||
|
type HPAControllerConfiguration struct {
|
||||||
|
// horizontalPodAutoscalerSyncPeriod is the period for syncing the number of
|
||||||
|
// pods in horizontal pod autoscaler.
|
||||||
|
HorizontalPodAutoscalerSyncPeriod metav1.Duration
|
||||||
|
// horizontalPodAutoscalerUpscaleForbiddenWindow is a period after which next upscale allowed.
|
||||||
|
HorizontalPodAutoscalerUpscaleForbiddenWindow metav1.Duration
|
||||||
|
// horizontalPodAutoscalerDownscaleForbiddenWindow is a period after which next downscale allowed.
|
||||||
|
HorizontalPodAutoscalerDownscaleForbiddenWindow metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerDowncaleStabilizationWindow is a period for which autoscaler will look
|
||||||
|
// backwards and not scale down below any recommendation it made during that period.
|
||||||
|
HorizontalPodAutoscalerDownscaleStabilizationWindow metav1.Duration
|
||||||
|
// horizontalPodAutoscalerTolerance is the tolerance for when
|
||||||
|
// resource usage suggests upscaling/downscaling
|
||||||
|
HorizontalPodAutoscalerTolerance float64
|
||||||
|
// HorizontalPodAutoscalerUseRESTClients causes the HPA controller to use REST clients
|
||||||
|
// through the kube-aggregator when enabled, instead of using the legacy metrics client
|
||||||
|
// through the API server proxy.
|
||||||
|
HorizontalPodAutoscalerUseRESTClients bool
|
||||||
|
// HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start when CPU samples
|
||||||
|
// might be skipped.
|
||||||
|
HorizontalPodAutoscalerCPUInitializationPeriod metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerInitialReadinessDelay is period after pod start during which readiness
|
||||||
|
// changes are treated as readiness being set for the first time. The only effect of this is that
|
||||||
|
// HPA will disregard CPU samples from unready pods that had last readiness change during that
|
||||||
|
// period.
|
||||||
|
HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// JobControllerConfiguration contains elements describing JobController.
|
||||||
|
type JobControllerConfiguration struct {
|
||||||
|
// concurrentJobSyncs is the number of job objects that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive jobs,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentJobSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// NamespaceControllerConfiguration contains elements describing NamespaceController.
|
||||||
|
type NamespaceControllerConfiguration struct {
|
||||||
|
// namespaceSyncPeriod is the period for syncing namespace life-cycle
|
||||||
|
// updates.
|
||||||
|
NamespaceSyncPeriod metav1.Duration
|
||||||
|
// concurrentNamespaceSyncs is the number of namespace objects that are
|
||||||
|
// allowed to sync concurrently.
|
||||||
|
ConcurrentNamespaceSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeIPAMControllerConfiguration contains elements describing NodeIPAMController.
|
||||||
|
type NodeIPAMControllerConfiguration struct {
|
||||||
|
// serviceCIDR is CIDR Range for Services in cluster.
|
||||||
|
ServiceCIDR string
|
||||||
|
// NodeCIDRMaskSize is the mask size for node cidr in cluster.
|
||||||
|
NodeCIDRMaskSize int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController.
|
||||||
|
type NodeLifecycleControllerConfiguration struct {
|
||||||
|
// If set to true enables NoExecute Taints and will evict all not-tolerating
|
||||||
|
// Pod running on Nodes tainted with this kind of Taints.
|
||||||
|
EnableTaintManager bool
|
||||||
|
// nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy
|
||||||
|
NodeEvictionRate float32
|
||||||
|
// secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy
|
||||||
|
SecondaryNodeEvictionRate float32
|
||||||
|
// nodeStartupGracePeriod is the amount of time which we allow starting a node to
|
||||||
|
// be unresponsive before marking it unhealthy.
|
||||||
|
NodeStartupGracePeriod metav1.Duration
|
||||||
|
// nodeMontiorGracePeriod is the amount of time which we allow a running node to be
|
||||||
|
// unresponsive before marking it unhealthy. Must be N times more than kubelet's
|
||||||
|
// nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet
|
||||||
|
// to post node status.
|
||||||
|
NodeMonitorGracePeriod metav1.Duration
|
||||||
|
// podEvictionTimeout is the grace period for deleting pods on failed nodes.
|
||||||
|
PodEvictionTimeout metav1.Duration
|
||||||
|
// secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold
|
||||||
|
LargeClusterSizeThreshold int32
|
||||||
|
// Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least
|
||||||
|
// unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady
|
||||||
|
UnhealthyZoneThreshold float32
|
||||||
|
}
|
||||||
|
|
||||||
|
// PersistentVolumeBinderControllerConfiguration contains elements describing
|
||||||
|
// PersistentVolumeBinderController.
|
||||||
|
type PersistentVolumeBinderControllerConfiguration struct {
|
||||||
|
// pvClaimBinderSyncPeriod is the period for syncing persistent volumes
|
||||||
|
// and persistent volume claims.
|
||||||
|
PVClaimBinderSyncPeriod metav1.Duration
|
||||||
|
// volumeConfiguration holds configuration for volume related features.
|
||||||
|
VolumeConfiguration VolumeConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
|
// PodGCControllerConfiguration contains elements describing PodGCController.
|
||||||
|
type PodGCControllerConfiguration struct {
|
||||||
|
// terminatedPodGCThreshold is the number of terminated pods that can exist
|
||||||
|
// before the terminated pod garbage collector starts deleting terminated pods.
|
||||||
|
// If <= 0, the terminated pod garbage collector is disabled.
|
||||||
|
TerminatedPodGCThreshold int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplicaSetControllerConfiguration contains elements describing ReplicaSetController.
|
||||||
|
type ReplicaSetControllerConfiguration struct {
|
||||||
|
// concurrentRSSyncs is the number of replica sets that are allowed to sync
|
||||||
|
// concurrently. Larger number = more responsive replica management, but more
|
||||||
|
// CPU (and network) load.
|
||||||
|
ConcurrentRSSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplicationControllerConfiguration contains elements describing ReplicationController.
|
||||||
|
type ReplicationControllerConfiguration struct {
|
||||||
|
// concurrentRCSyncs is the number of replication controllers that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive replica
|
||||||
|
// management, but more CPU (and network) load.
|
||||||
|
ConcurrentRCSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResourceQuotaControllerConfiguration contains elements describing ResourceQuotaController.
|
||||||
|
type ResourceQuotaControllerConfiguration struct {
|
||||||
|
// resourceQuotaSyncPeriod is the period for syncing quota usage status
|
||||||
|
// in the system.
|
||||||
|
ResourceQuotaSyncPeriod metav1.Duration
|
||||||
|
// concurrentResourceQuotaSyncs is the number of resource quotas that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive quota
|
||||||
|
// management, but more CPU (and network) load.
|
||||||
|
ConcurrentResourceQuotaSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// SAControllerConfiguration contains elements describing ServiceAccountController.
|
||||||
|
type SAControllerConfiguration struct {
|
||||||
|
// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key
|
||||||
|
// used to sign service account tokens.
|
||||||
|
ServiceAccountKeyFile string
|
||||||
|
// concurrentSATokenSyncs is the number of service account token syncing operations
|
||||||
|
// that will be done concurrently.
|
||||||
|
ConcurrentSATokenSyncs int32
|
||||||
|
// rootCAFile is the root certificate authority will be included in service
|
||||||
|
// account's token secret. This must be a valid PEM-encoded CA bundle.
|
||||||
|
RootCAFile string
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServiceControllerConfiguration contains elements describing ServiceController.
|
||||||
|
type ServiceControllerConfiguration struct {
|
||||||
|
// concurrentServiceSyncs is the number of services that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive service
|
||||||
|
// management, but more CPU (and network) load.
|
||||||
|
ConcurrentServiceSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// VolumeConfiguration contains *all* enumerated flags meant to configure all volume
|
||||||
|
// plugins. From this config, the controller-manager binary will create many instances of
|
||||||
|
// volume.VolumeConfig, each containing only the configuration needed for that plugin which
|
||||||
|
// are then passed to the appropriate plugin. The ControllerManager binary is the only part
|
||||||
|
// of the code which knows what plugins are supported and which flags correspond to each plugin.
|
||||||
|
type VolumeConfiguration struct {
|
||||||
|
// enableHostPathProvisioning enables HostPath PV provisioning when running without a
|
||||||
|
// cloud provider. This allows testing and development of provisioning features. HostPath
|
||||||
|
// provisioning is not supported in any way, won't work in a multi-node cluster, and
|
||||||
|
// should not be used for anything other than testing or development.
|
||||||
|
EnableHostPathProvisioning bool
|
||||||
|
// enableDynamicProvisioning enables the provisioning of volumes when running within an environment
|
||||||
|
// that supports dynamic provisioning. Defaults to true.
|
||||||
|
EnableDynamicProvisioning bool
|
||||||
|
// persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins.
|
||||||
|
PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration
|
||||||
|
// volumePluginDir is the full path of the directory in which the flex
|
||||||
|
// volume plugin should search for additional third party volume plugins
|
||||||
|
FlexVolumePluginDir string
|
||||||
|
}
|
||||||
|
|
||||||
|
// PersistentVolumeRecyclerConfiguration contains elements describing persistent volume plugins.
|
||||||
|
type PersistentVolumeRecyclerConfiguration struct {
|
||||||
|
// maximumRetry is number of retries the PV recycler will execute on failure to recycle
|
||||||
|
// PV.
|
||||||
|
MaximumRetry int32
|
||||||
|
// minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler
|
||||||
|
// pod.
|
||||||
|
MinimumTimeoutNFS int32
|
||||||
|
// podTemplateFilePathNFS is the file path to a pod definition used as a template for
|
||||||
|
// NFS persistent volume recycling
|
||||||
|
PodTemplateFilePathNFS string
|
||||||
|
// incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds
|
||||||
|
// for an NFS scrubber pod.
|
||||||
|
IncrementTimeoutNFS int32
|
||||||
|
// podTemplateFilePathHostPath is the file path to a pod definition used as a template for
|
||||||
|
// HostPath persistent volume recycling. This is for development and testing only and
|
||||||
|
// will not work in a multi-node cluster.
|
||||||
|
PodTemplateFilePathHostPath string
|
||||||
|
// minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath
|
||||||
|
// Recycler pod. This is for development and testing only and will not work in a multi-node
|
||||||
|
// cluster.
|
||||||
|
MinimumTimeoutHostPath int32
|
||||||
|
// incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds
|
||||||
|
// for a HostPath scrubber pod. This is for development and testing only and will not work
|
||||||
|
// in a multi-node cluster.
|
||||||
|
IncrementTimeoutHostPath int32
|
||||||
|
}
|
52
pkg/controller/apis/config/v1alpha1/BUILD
Normal file
52
pkg/controller/apis/config/v1alpha1/BUILD
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = [
|
||||||
|
"conversion.go",
|
||||||
|
"defaults.go",
|
||||||
|
"doc.go",
|
||||||
|
"register.go",
|
||||||
|
"zz_generated.conversion.go",
|
||||||
|
"zz_generated.defaults.go",
|
||||||
|
],
|
||||||
|
importpath = "k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//pkg/controller/apis/config:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/config/v1alpha1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apiserver/pkg/apis/config/v1alpha1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library",
|
||||||
|
"//vendor/k8s.io/utils/pointer:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
go_test(
|
||||||
|
name = "go_default_test",
|
||||||
|
srcs = ["defaults_test.go"],
|
||||||
|
embed = [":go_default_library"],
|
||||||
|
deps = [
|
||||||
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
60
pkg/controller/apis/config/v1alpha1/conversion.go
Normal file
60
pkg/controller/apis/config/v1alpha1/conversion.go
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/conversion"
|
||||||
|
"k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
|
"k8s.io/kubernetes/pkg/controller/apis/config"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Important! The public back-and-forth conversion functions for the types in this generic
|
||||||
|
// package with ComponentConfig types need to be manually exposed like this in order for
|
||||||
|
// other packages that reference this package to be able to call these conversion functions
|
||||||
|
// in an autogenerated manner.
|
||||||
|
// TODO: Fix the bug in conversion-gen so it automatically discovers these Convert_* functions
|
||||||
|
// in autogenerated code as well.
|
||||||
|
|
||||||
|
// Convert_v1alpha1_GenericControllerManagerConfiguration_To_config_GenericControllerManagerConfiguration is an autogenerated conversion function.
|
||||||
|
func Convert_v1alpha1_GenericControllerManagerConfiguration_To_config_GenericControllerManagerConfiguration(in *v1alpha1.GenericControllerManagerConfiguration, out *config.GenericControllerManagerConfiguration, s conversion.Scope) error {
|
||||||
|
return autoConvert_v1alpha1_GenericControllerManagerConfiguration_To_config_GenericControllerManagerConfiguration(in, out, s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert_config_GenericControllerManagerConfiguration_To_v1alpha1_GenericControllerManagerConfiguration is an autogenerated conversion function.
|
||||||
|
func Convert_config_GenericControllerManagerConfiguration_To_v1alpha1_GenericControllerManagerConfiguration(in *config.GenericControllerManagerConfiguration, out *v1alpha1.GenericControllerManagerConfiguration, s conversion.Scope) error {
|
||||||
|
return autoConvert_config_GenericControllerManagerConfiguration_To_v1alpha1_GenericControllerManagerConfiguration(in, out, s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert_v1alpha1_KubeCloudSharedConfiguration_To_config_KubeCloudSharedConfiguration is an autogenerated conversion function.
|
||||||
|
func Convert_v1alpha1_KubeCloudSharedConfiguration_To_config_KubeCloudSharedConfiguration(in *v1alpha1.KubeCloudSharedConfiguration, out *config.KubeCloudSharedConfiguration, s conversion.Scope) error {
|
||||||
|
return autoConvert_v1alpha1_KubeCloudSharedConfiguration_To_config_KubeCloudSharedConfiguration(in, out, s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert_config_KubeCloudSharedConfiguration_To_v1alpha1_KubeCloudSharedConfiguration is an autogenerated conversion function.
|
||||||
|
func Convert_config_KubeCloudSharedConfiguration_To_v1alpha1_KubeCloudSharedConfiguration(in *config.KubeCloudSharedConfiguration, out *v1alpha1.KubeCloudSharedConfiguration, s conversion.Scope) error {
|
||||||
|
return autoConvert_config_KubeCloudSharedConfiguration_To_v1alpha1_KubeCloudSharedConfiguration(in, out, s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert_v1alpha1_ServiceControllerConfiguration_To_config_ServiceControllerConfiguration is an autogenerated conversion function.
|
||||||
|
func Convert_v1alpha1_ServiceControllerConfiguration_To_config_ServiceControllerConfiguration(in *v1alpha1.ServiceControllerConfiguration, out *config.ServiceControllerConfiguration, s conversion.Scope) error {
|
||||||
|
return autoConvert_v1alpha1_ServiceControllerConfiguration_To_config_ServiceControllerConfiguration(in, out, s)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert_config_ServiceControllerConfiguration_To_v1alpha1_ServiceControllerConfiguration is an autogenerated conversion function.
|
||||||
|
func Convert_config_ServiceControllerConfiguration_To_v1alpha1_ServiceControllerConfiguration(in *config.ServiceControllerConfiguration, out *v1alpha1.ServiceControllerConfiguration, s conversion.Scope) error {
|
||||||
|
return autoConvert_config_ServiceControllerConfiguration_To_v1alpha1_ServiceControllerConfiguration(in, out, s)
|
||||||
|
}
|
267
pkg/controller/apis/config/v1alpha1/defaults.go
Normal file
267
pkg/controller/apis/config/v1alpha1/defaults.go
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
kruntime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
|
||||||
|
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
|
utilpointer "k8s.io/utils/pointer"
|
||||||
|
)
|
||||||
|
|
||||||
|
func addDefaultingFuncs(scheme *kruntime.Scheme) error {
|
||||||
|
return RegisterDefaults(scheme)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_KubeControllerManagerConfiguration(obj *kubectrlmgrconfigv1alpha1.KubeControllerManagerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.AttachDetachController.ReconcilerSyncLoopPeriod == zero {
|
||||||
|
obj.AttachDetachController.ReconcilerSyncLoopPeriod = metav1.Duration{Duration: 60 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.DeprecatedController.RegisterRetryCount == 0 {
|
||||||
|
obj.DeprecatedController.RegisterRetryCount = 10
|
||||||
|
}
|
||||||
|
if obj.NodeIPAMController.NodeCIDRMaskSize == 0 {
|
||||||
|
obj.NodeIPAMController.NodeCIDRMaskSize = 24
|
||||||
|
}
|
||||||
|
if obj.PersistentVolumeBinderController.PVClaimBinderSyncPeriod == zero {
|
||||||
|
obj.PersistentVolumeBinderController.PVClaimBinderSyncPeriod = metav1.Duration{Duration: 15 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.SAController.ConcurrentSATokenSyncs == 0 {
|
||||||
|
obj.SAController.ConcurrentSATokenSyncs = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
// These defaults override the recommended defaults from the apimachineryconfigv1alpha1 package that are applied automatically
|
||||||
|
// These client-connection defaults are specific to the kube-controller-manager
|
||||||
|
if obj.Generic.ClientConnection.QPS == 0.0 {
|
||||||
|
obj.Generic.ClientConnection.QPS = 20.0
|
||||||
|
}
|
||||||
|
if obj.Generic.ClientConnection.Burst == 0 {
|
||||||
|
obj.Generic.ClientConnection.Burst = 30
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the default RecommendedDefaultGenericControllerManagerConfiguration options
|
||||||
|
RecommendedDefaultGenericControllerManagerConfiguration(&obj.Generic)
|
||||||
|
}
|
||||||
|
|
||||||
|
func RecommendedDefaultGenericControllerManagerConfiguration(obj *kubectrlmgrconfigv1alpha1.GenericControllerManagerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.Address == "" {
|
||||||
|
obj.Address = "0.0.0.0"
|
||||||
|
}
|
||||||
|
if obj.MinResyncPeriod == zero {
|
||||||
|
obj.MinResyncPeriod = metav1.Duration{Duration: 12 * time.Hour}
|
||||||
|
}
|
||||||
|
if obj.ControllerStartInterval == zero {
|
||||||
|
obj.ControllerStartInterval = metav1.Duration{Duration: 0 * time.Second}
|
||||||
|
}
|
||||||
|
if len(obj.Controllers) == 0 {
|
||||||
|
obj.Controllers = []string{"*"}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use the default ClientConnectionConfiguration and LeaderElectionConfiguration options
|
||||||
|
apimachineryconfigv1alpha1.RecommendedDefaultClientConnectionConfiguration(&obj.ClientConnection)
|
||||||
|
apiserverconfigv1alpha1.RecommendedDefaultLeaderElectionConfiguration(&obj.LeaderElection)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_KubeCloudSharedConfiguration(obj *kubectrlmgrconfigv1alpha1.KubeCloudSharedConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.NodeMonitorPeriod == zero {
|
||||||
|
obj.NodeMonitorPeriod = metav1.Duration{Duration: 5 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.ClusterName == "" {
|
||||||
|
obj.ClusterName = "kubernetes"
|
||||||
|
}
|
||||||
|
if obj.ConfigureCloudRoutes == nil {
|
||||||
|
obj.ConfigureCloudRoutes = utilpointer.BoolPtr(true)
|
||||||
|
}
|
||||||
|
if obj.RouteReconciliationPeriod == zero {
|
||||||
|
obj.RouteReconciliationPeriod = metav1.Duration{Duration: 10 * time.Second}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_ServiceControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.ServiceControllerConfiguration) {
|
||||||
|
if obj.ConcurrentServiceSyncs == 0 {
|
||||||
|
obj.ConcurrentServiceSyncs = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_CSRSigningControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.CSRSigningControllerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.ClusterSigningCertFile == "" {
|
||||||
|
obj.ClusterSigningCertFile = "/etc/kubernetes/ca/ca.pem"
|
||||||
|
}
|
||||||
|
if obj.ClusterSigningKeyFile == "" {
|
||||||
|
obj.ClusterSigningKeyFile = "/etc/kubernetes/ca/ca.key"
|
||||||
|
}
|
||||||
|
if obj.ClusterSigningDuration == zero {
|
||||||
|
obj.ClusterSigningDuration = metav1.Duration{Duration: 365 * 24 * time.Hour}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_DeploymentControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.DeploymentControllerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.ConcurrentDeploymentSyncs == 0 {
|
||||||
|
obj.ConcurrentDeploymentSyncs = 5
|
||||||
|
}
|
||||||
|
if obj.DeploymentControllerSyncPeriod == zero {
|
||||||
|
obj.DeploymentControllerSyncPeriod = metav1.Duration{Duration: 30 * time.Second}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_DaemonSetControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.DaemonSetControllerConfiguration) {
|
||||||
|
if obj.ConcurrentDaemonSetSyncs == 0 {
|
||||||
|
obj.ConcurrentDaemonSetSyncs = 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_EndpointControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.EndpointControllerConfiguration) {
|
||||||
|
if obj.ConcurrentEndpointSyncs == 0 {
|
||||||
|
obj.ConcurrentEndpointSyncs = 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_GarbageCollectorControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.GarbageCollectorControllerConfiguration) {
|
||||||
|
if obj.EnableGarbageCollector == nil {
|
||||||
|
obj.EnableGarbageCollector = utilpointer.BoolPtr(true)
|
||||||
|
}
|
||||||
|
if obj.ConcurrentGCSyncs == 0 {
|
||||||
|
obj.ConcurrentGCSyncs = 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_HPAControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.HPAControllerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.HorizontalPodAutoscalerUseRESTClients == nil {
|
||||||
|
obj.HorizontalPodAutoscalerUseRESTClients = utilpointer.BoolPtr(true)
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerSyncPeriod == zero {
|
||||||
|
obj.HorizontalPodAutoscalerSyncPeriod = metav1.Duration{Duration: 15 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerUpscaleForbiddenWindow == zero {
|
||||||
|
obj.HorizontalPodAutoscalerUpscaleForbiddenWindow = metav1.Duration{Duration: 3 * time.Minute}
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerDownscaleStabilizationWindow == zero {
|
||||||
|
obj.HorizontalPodAutoscalerDownscaleStabilizationWindow = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerCPUInitializationPeriod == zero {
|
||||||
|
obj.HorizontalPodAutoscalerCPUInitializationPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerInitialReadinessDelay == zero {
|
||||||
|
obj.HorizontalPodAutoscalerInitialReadinessDelay = metav1.Duration{Duration: 30 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerDownscaleForbiddenWindow == zero {
|
||||||
|
obj.HorizontalPodAutoscalerDownscaleForbiddenWindow = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
|
}
|
||||||
|
if obj.HorizontalPodAutoscalerTolerance == 0 {
|
||||||
|
obj.HorizontalPodAutoscalerTolerance = 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_JobControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.JobControllerConfiguration) {
|
||||||
|
if obj.ConcurrentJobSyncs == 0 {
|
||||||
|
obj.ConcurrentJobSyncs = 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_NamespaceControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.NamespaceControllerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.ConcurrentNamespaceSyncs == 0 {
|
||||||
|
obj.ConcurrentNamespaceSyncs = 10
|
||||||
|
}
|
||||||
|
if obj.NamespaceSyncPeriod == zero {
|
||||||
|
obj.NamespaceSyncPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_NodeLifecycleControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.NodeLifecycleControllerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.PodEvictionTimeout == zero {
|
||||||
|
obj.PodEvictionTimeout = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
|
}
|
||||||
|
if obj.NodeMonitorGracePeriod == zero {
|
||||||
|
obj.NodeMonitorGracePeriod = metav1.Duration{Duration: 40 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.NodeStartupGracePeriod == zero {
|
||||||
|
obj.NodeStartupGracePeriod = metav1.Duration{Duration: 60 * time.Second}
|
||||||
|
}
|
||||||
|
if obj.EnableTaintManager == nil {
|
||||||
|
obj.EnableTaintManager = utilpointer.BoolPtr(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_PodGCControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.PodGCControllerConfiguration) {
|
||||||
|
if obj.TerminatedPodGCThreshold == 0 {
|
||||||
|
obj.TerminatedPodGCThreshold = 12500
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_ReplicaSetControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.ReplicaSetControllerConfiguration) {
|
||||||
|
if obj.ConcurrentRSSyncs == 0 {
|
||||||
|
obj.ConcurrentRSSyncs = 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_ReplicationControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.ReplicationControllerConfiguration) {
|
||||||
|
if obj.ConcurrentRCSyncs == 0 {
|
||||||
|
obj.ConcurrentRCSyncs = 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_ResourceQuotaControllerConfiguration(obj *kubectrlmgrconfigv1alpha1.ResourceQuotaControllerConfiguration) {
|
||||||
|
zero := metav1.Duration{}
|
||||||
|
if obj.ConcurrentResourceQuotaSyncs == 0 {
|
||||||
|
obj.ConcurrentResourceQuotaSyncs = 5
|
||||||
|
}
|
||||||
|
if obj.ResourceQuotaSyncPeriod == zero {
|
||||||
|
obj.ResourceQuotaSyncPeriod = metav1.Duration{Duration: 5 * time.Minute}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_PersistentVolumeRecyclerConfiguration(obj *kubectrlmgrconfigv1alpha1.PersistentVolumeRecyclerConfiguration) {
|
||||||
|
if obj.MaximumRetry == 0 {
|
||||||
|
obj.MaximumRetry = 3
|
||||||
|
}
|
||||||
|
if obj.MinimumTimeoutNFS == 0 {
|
||||||
|
obj.MinimumTimeoutNFS = 300
|
||||||
|
}
|
||||||
|
if obj.IncrementTimeoutNFS == 0 {
|
||||||
|
obj.IncrementTimeoutNFS = 30
|
||||||
|
}
|
||||||
|
if obj.MinimumTimeoutHostPath == 0 {
|
||||||
|
obj.MinimumTimeoutHostPath = 60
|
||||||
|
}
|
||||||
|
if obj.IncrementTimeoutHostPath == 0 {
|
||||||
|
obj.IncrementTimeoutHostPath = 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetDefaults_VolumeConfiguration(obj *kubectrlmgrconfigv1alpha1.VolumeConfiguration) {
|
||||||
|
if obj.EnableHostPathProvisioning == nil {
|
||||||
|
obj.EnableHostPathProvisioning = utilpointer.BoolPtr(false)
|
||||||
|
}
|
||||||
|
if obj.EnableDynamicProvisioning == nil {
|
||||||
|
obj.EnableDynamicProvisioning = utilpointer.BoolPtr(true)
|
||||||
|
}
|
||||||
|
if obj.FlexVolumePluginDir == "" {
|
||||||
|
obj.FlexVolumePluginDir = "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"
|
||||||
|
}
|
||||||
|
}
|
64
pkg/controller/apis/config/v1alpha1/defaults_test.go
Normal file
64
pkg/controller/apis/config/v1alpha1/defaults_test.go
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"k8s.io/api/core/v1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestKubeControllerDefaultsRoundTrip(t *testing.T) {
|
||||||
|
ks1 := &kubectrlmgrconfigv1alpha1.KubeControllerManagerConfiguration{}
|
||||||
|
SetDefaults_KubeControllerManagerConfiguration(ks1)
|
||||||
|
cm, err := convertObjToConfigMap("KubeControllerManagerConfiguration", ks1)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected ConvertObjToConfigMap error %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ks2 := &kubectrlmgrconfigv1alpha1.KubeControllerManagerConfiguration{}
|
||||||
|
if err = json.Unmarshal([]byte(cm.Data["KubeControllerManagerConfiguration"]), ks2); err != nil {
|
||||||
|
t.Errorf("unexpected error unserializing controller manager config %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(ks2, ks1) {
|
||||||
|
t.Errorf("Expected:\n%#v\n\nGot:\n%#v", ks1, ks2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertObjToConfigMap converts an object to a ConfigMap.
|
||||||
|
// This is specifically meant for ComponentConfigs.
|
||||||
|
func convertObjToConfigMap(name string, obj runtime.Object) (*v1.ConfigMap, error) {
|
||||||
|
eJSONBytes, err := json.Marshal(obj)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
cm := &v1.ConfigMap{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
},
|
||||||
|
Data: map[string]string{
|
||||||
|
name: string(eJSONBytes[:]),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return cm, nil
|
||||||
|
}
|
23
pkg/controller/apis/config/v1alpha1/doc.go
Normal file
23
pkg/controller/apis/config/v1alpha1/doc.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// +k8s:conversion-gen=k8s.io/kubernetes/pkg/controller/apis/config
|
||||||
|
// +k8s:conversion-gen-external-types=k8s.io/kube-controller-manager/config/v1alpha1
|
||||||
|
// +k8s:defaulter-gen=TypeMeta
|
||||||
|
// +k8s:defaulter-gen-input=../../../../../vendor/k8s.io/kube-controller-manager/config/v1alpha1
|
||||||
|
// +groupName=kubecontrollermanager.config.k8s.io
|
||||||
|
|
||||||
|
package v1alpha1 // import "k8s.io/kubernetes/pkg/controller/apis/config/v1alpha1"
|
40
pkg/controller/apis/config/v1alpha1/register.go
Normal file
40
pkg/controller/apis/config/v1alpha1/register.go
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GroupName is the group name use in this package
|
||||||
|
const GroupName = "kubecontrollermanager.config.k8s.io"
|
||||||
|
|
||||||
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
|
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
|
||||||
|
|
||||||
|
var (
|
||||||
|
localSchemeBuilder = &kubectrlmgrconfigv1alpha1.SchemeBuilder
|
||||||
|
AddToScheme = localSchemeBuilder.AddToScheme
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
// We only register manually written functions here. The registration of the
|
||||||
|
// generated functions takes place in the generated files. The separation
|
||||||
|
// makes the code compile even when the generated files are missing.
|
||||||
|
localSchemeBuilder.Register(addDefaultingFuncs)
|
||||||
|
}
|
1109
pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go
generated
Normal file
1109
pkg/controller/apis/config/v1alpha1/zz_generated.conversion.go
generated
Normal file
File diff suppressed because it is too large
Load Diff
57
pkg/controller/apis/config/v1alpha1/zz_generated.defaults.go
generated
Normal file
57
pkg/controller/apis/config/v1alpha1/zz_generated.defaults.go
generated
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by defaulter-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
v1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// RegisterDefaults adds defaulters functions to the given scheme.
|
||||||
|
// Public to allow building arbitrary schemes.
|
||||||
|
// All generated defaulters are covering - they call all nested defaulters.
|
||||||
|
func RegisterDefaults(scheme *runtime.Scheme) error {
|
||||||
|
scheme.AddTypeDefaultingFunc(&v1alpha1.KubeControllerManagerConfiguration{}, func(obj interface{}) {
|
||||||
|
SetObjectDefaults_KubeControllerManagerConfiguration(obj.(*v1alpha1.KubeControllerManagerConfiguration))
|
||||||
|
})
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetObjectDefaults_KubeControllerManagerConfiguration(in *v1alpha1.KubeControllerManagerConfiguration) {
|
||||||
|
SetDefaults_KubeControllerManagerConfiguration(in)
|
||||||
|
SetDefaults_KubeCloudSharedConfiguration(&in.KubeCloudShared)
|
||||||
|
SetDefaults_CSRSigningControllerConfiguration(&in.CSRSigningController)
|
||||||
|
SetDefaults_DaemonSetControllerConfiguration(&in.DaemonSetController)
|
||||||
|
SetDefaults_DeploymentControllerConfiguration(&in.DeploymentController)
|
||||||
|
SetDefaults_EndpointControllerConfiguration(&in.EndpointController)
|
||||||
|
SetDefaults_GarbageCollectorControllerConfiguration(&in.GarbageCollectorController)
|
||||||
|
SetDefaults_HPAControllerConfiguration(&in.HPAController)
|
||||||
|
SetDefaults_JobControllerConfiguration(&in.JobController)
|
||||||
|
SetDefaults_NamespaceControllerConfiguration(&in.NamespaceController)
|
||||||
|
SetDefaults_NodeLifecycleControllerConfiguration(&in.NodeLifecycleController)
|
||||||
|
SetDefaults_VolumeConfiguration(&in.PersistentVolumeBinderController.VolumeConfiguration)
|
||||||
|
SetDefaults_PersistentVolumeRecyclerConfiguration(&in.PersistentVolumeBinderController.VolumeConfiguration.PersistentVolumeRecyclerConfiguration)
|
||||||
|
SetDefaults_PodGCControllerConfiguration(&in.PodGCController)
|
||||||
|
SetDefaults_ReplicaSetControllerConfiguration(&in.ReplicaSetController)
|
||||||
|
SetDefaults_ReplicationControllerConfiguration(&in.ReplicationController)
|
||||||
|
SetDefaults_ResourceQuotaControllerConfiguration(&in.ResourceQuotaController)
|
||||||
|
SetDefaults_ServiceControllerConfiguration(&in.ServiceController)
|
||||||
|
}
|
507
pkg/controller/apis/config/zz_generated.deepcopy.go
generated
Normal file
507
pkg/controller/apis/config/zz_generated.deepcopy.go
generated
Normal file
@ -0,0 +1,507 @@
|
|||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *AttachDetachControllerConfiguration) DeepCopyInto(out *AttachDetachControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.ReconcilerSyncLoopPeriod = in.ReconcilerSyncLoopPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachDetachControllerConfiguration.
|
||||||
|
func (in *AttachDetachControllerConfiguration) DeepCopy() *AttachDetachControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(AttachDetachControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *CSRSigningControllerConfiguration) DeepCopyInto(out *CSRSigningControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.ClusterSigningDuration = in.ClusterSigningDuration
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRSigningControllerConfiguration.
|
||||||
|
func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(CSRSigningControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *CloudProviderConfiguration) DeepCopyInto(out *CloudProviderConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderConfiguration.
|
||||||
|
func (in *CloudProviderConfiguration) DeepCopy() *CloudProviderConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(CloudProviderConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *DaemonSetControllerConfiguration) DeepCopyInto(out *DaemonSetControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetControllerConfiguration.
|
||||||
|
func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(DaemonSetControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.DeploymentControllerSyncPeriod = in.DeploymentControllerSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentControllerConfiguration.
|
||||||
|
func (in *DeploymentControllerConfiguration) DeepCopy() *DeploymentControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(DeploymentControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *DeprecatedControllerConfiguration) DeepCopyInto(out *DeprecatedControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeprecatedControllerConfiguration.
|
||||||
|
func (in *DeprecatedControllerConfiguration) DeepCopy() *DeprecatedControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(DeprecatedControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *EndpointControllerConfiguration) DeepCopyInto(out *EndpointControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointControllerConfiguration.
|
||||||
|
func (in *EndpointControllerConfiguration) DeepCopy() *EndpointControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(EndpointControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
if in.GCIgnoredResources != nil {
|
||||||
|
in, out := &in.GCIgnoredResources, &out.GCIgnoredResources
|
||||||
|
*out = make([]GroupResource, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectorControllerConfiguration.
|
||||||
|
func (in *GarbageCollectorControllerConfiguration) DeepCopy() *GarbageCollectorControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GarbageCollectorControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GenericControllerManagerConfiguration) DeepCopyInto(out *GenericControllerManagerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.MinResyncPeriod = in.MinResyncPeriod
|
||||||
|
out.ClientConnection = in.ClientConnection
|
||||||
|
out.ControllerStartInterval = in.ControllerStartInterval
|
||||||
|
out.LeaderElection = in.LeaderElection
|
||||||
|
if in.Controllers != nil {
|
||||||
|
in, out := &in.Controllers, &out.Controllers
|
||||||
|
*out = make([]string, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
|
out.Debugging = in.Debugging
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericControllerManagerConfiguration.
|
||||||
|
func (in *GenericControllerManagerConfiguration) DeepCopy() *GenericControllerManagerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GenericControllerManagerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GroupResource) DeepCopyInto(out *GroupResource) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.
|
||||||
|
func (in *GroupResource) DeepCopy() *GroupResource {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GroupResource)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HPAControllerConfiguration) DeepCopyInto(out *HPAControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod
|
||||||
|
out.HorizontalPodAutoscalerUpscaleForbiddenWindow = in.HorizontalPodAutoscalerUpscaleForbiddenWindow
|
||||||
|
out.HorizontalPodAutoscalerDownscaleForbiddenWindow = in.HorizontalPodAutoscalerDownscaleForbiddenWindow
|
||||||
|
out.HorizontalPodAutoscalerDownscaleStabilizationWindow = in.HorizontalPodAutoscalerDownscaleStabilizationWindow
|
||||||
|
out.HorizontalPodAutoscalerCPUInitializationPeriod = in.HorizontalPodAutoscalerCPUInitializationPeriod
|
||||||
|
out.HorizontalPodAutoscalerInitialReadinessDelay = in.HorizontalPodAutoscalerInitialReadinessDelay
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAControllerConfiguration.
|
||||||
|
func (in *HPAControllerConfiguration) DeepCopy() *HPAControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HPAControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *JobControllerConfiguration) DeepCopyInto(out *JobControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobControllerConfiguration.
|
||||||
|
func (in *JobControllerConfiguration) DeepCopy() *JobControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(JobControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *KubeCloudSharedConfiguration) DeepCopyInto(out *KubeCloudSharedConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.CloudProvider = in.CloudProvider
|
||||||
|
out.RouteReconciliationPeriod = in.RouteReconciliationPeriod
|
||||||
|
out.NodeMonitorPeriod = in.NodeMonitorPeriod
|
||||||
|
out.NodeSyncPeriod = in.NodeSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeCloudSharedConfiguration.
|
||||||
|
func (in *KubeCloudSharedConfiguration) DeepCopy() *KubeCloudSharedConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(KubeCloudSharedConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerManagerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.Generic.DeepCopyInto(&out.Generic)
|
||||||
|
out.KubeCloudShared = in.KubeCloudShared
|
||||||
|
out.AttachDetachController = in.AttachDetachController
|
||||||
|
out.CSRSigningController = in.CSRSigningController
|
||||||
|
out.DaemonSetController = in.DaemonSetController
|
||||||
|
out.DeploymentController = in.DeploymentController
|
||||||
|
out.DeprecatedController = in.DeprecatedController
|
||||||
|
out.EndpointController = in.EndpointController
|
||||||
|
in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
|
||||||
|
out.HPAController = in.HPAController
|
||||||
|
out.JobController = in.JobController
|
||||||
|
out.NamespaceController = in.NamespaceController
|
||||||
|
out.NodeIPAMController = in.NodeIPAMController
|
||||||
|
out.NodeLifecycleController = in.NodeLifecycleController
|
||||||
|
out.PersistentVolumeBinderController = in.PersistentVolumeBinderController
|
||||||
|
out.PodGCController = in.PodGCController
|
||||||
|
out.ReplicaSetController = in.ReplicaSetController
|
||||||
|
out.ReplicationController = in.ReplicationController
|
||||||
|
out.ResourceQuotaController = in.ResourceQuotaController
|
||||||
|
out.SAController = in.SAController
|
||||||
|
out.ServiceController = in.ServiceController
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfiguration.
|
||||||
|
func (in *KubeControllerManagerConfiguration) DeepCopy() *KubeControllerManagerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(KubeControllerManagerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.NamespaceSyncPeriod = in.NamespaceSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceControllerConfiguration.
|
||||||
|
func (in *NamespaceControllerConfiguration) DeepCopy() *NamespaceControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(NamespaceControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *NodeIPAMControllerConfiguration) DeepCopyInto(out *NodeIPAMControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeIPAMControllerConfiguration.
|
||||||
|
func (in *NodeIPAMControllerConfiguration) DeepCopy() *NodeIPAMControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(NodeIPAMControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *NodeLifecycleControllerConfiguration) DeepCopyInto(out *NodeLifecycleControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.NodeStartupGracePeriod = in.NodeStartupGracePeriod
|
||||||
|
out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod
|
||||||
|
out.PodEvictionTimeout = in.PodEvictionTimeout
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLifecycleControllerConfiguration.
|
||||||
|
func (in *NodeLifecycleControllerConfiguration) DeepCopy() *NodeLifecycleControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(NodeLifecycleControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopyInto(out *PersistentVolumeBinderControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.PVClaimBinderSyncPeriod = in.PVClaimBinderSyncPeriod
|
||||||
|
out.VolumeConfiguration = in.VolumeConfiguration
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeBinderControllerConfiguration.
|
||||||
|
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopy() *PersistentVolumeBinderControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PersistentVolumeBinderControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration.
|
||||||
|
func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PersistentVolumeRecyclerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PodGCControllerConfiguration) DeepCopyInto(out *PodGCControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodGCControllerConfiguration.
|
||||||
|
func (in *PodGCControllerConfiguration) DeepCopy() *PodGCControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PodGCControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ReplicaSetControllerConfiguration) DeepCopyInto(out *ReplicaSetControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetControllerConfiguration.
|
||||||
|
func (in *ReplicaSetControllerConfiguration) DeepCopy() *ReplicaSetControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ReplicaSetControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ReplicationControllerConfiguration) DeepCopyInto(out *ReplicationControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerConfiguration.
|
||||||
|
func (in *ReplicationControllerConfiguration) DeepCopy() *ReplicationControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ReplicationControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ResourceQuotaControllerConfiguration) DeepCopyInto(out *ResourceQuotaControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.ResourceQuotaSyncPeriod = in.ResourceQuotaSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaControllerConfiguration.
|
||||||
|
func (in *ResourceQuotaControllerConfiguration) DeepCopy() *ResourceQuotaControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ResourceQuotaControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *SAControllerConfiguration) DeepCopyInto(out *SAControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SAControllerConfiguration.
|
||||||
|
func (in *SAControllerConfiguration) DeepCopy() *SAControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(SAControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ServiceControllerConfiguration) DeepCopyInto(out *ServiceControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceControllerConfiguration.
|
||||||
|
func (in *ServiceControllerConfiguration) DeepCopy() *ServiceControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ServiceControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *VolumeConfiguration) DeepCopyInto(out *VolumeConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.PersistentVolumeRecyclerConfiguration = in.PersistentVolumeRecyclerConfiguration
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeConfiguration.
|
||||||
|
func (in *VolumeConfiguration) DeepCopy() *VolumeConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(VolumeConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
@ -71,6 +71,7 @@ openapi_library(
|
|||||||
"k8s.io/csi-api/pkg/apis/csi/v1alpha1",
|
"k8s.io/csi-api/pkg/apis/csi/v1alpha1",
|
||||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1",
|
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1",
|
||||||
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1",
|
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1",
|
||||||
|
"k8s.io/kube-controller-manager/config/v1alpha1",
|
||||||
"k8s.io/kubelet/config/v1beta1",
|
"k8s.io/kubelet/config/v1beta1",
|
||||||
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta1",
|
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta1",
|
||||||
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta2",
|
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta2",
|
||||||
|
@ -207,6 +207,7 @@ filegroup(
|
|||||||
"//staging/src/k8s.io/csi-api/pkg/client/informers/externalversions:all-srcs",
|
"//staging/src/k8s.io/csi-api/pkg/client/informers/externalversions:all-srcs",
|
||||||
"//staging/src/k8s.io/csi-api/pkg/client/listers/csi/v1alpha1:all-srcs",
|
"//staging/src/k8s.io/csi-api/pkg/client/listers/csi/v1alpha1:all-srcs",
|
||||||
"//staging/src/k8s.io/kube-aggregator:all-srcs",
|
"//staging/src/k8s.io/kube-aggregator:all-srcs",
|
||||||
|
"//staging/src/k8s.io/kube-controller-manager/config/v1alpha1:all-srcs",
|
||||||
"//staging/src/k8s.io/kube-proxy/config/v1alpha1:all-srcs",
|
"//staging/src/k8s.io/kube-proxy/config/v1alpha1:all-srcs",
|
||||||
"//staging/src/k8s.io/kube-scheduler/config/v1alpha1:all-srcs",
|
"//staging/src/k8s.io/kube-scheduler/config/v1alpha1:all-srcs",
|
||||||
"//staging/src/k8s.io/kubelet/config/v1beta1:all-srcs",
|
"//staging/src/k8s.io/kubelet/config/v1beta1:all-srcs",
|
||||||
|
2
staging/src/k8s.io/kube-controller-manager/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
2
staging/src/k8s.io/kube-controller-manager/.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Sorry, we do not accept changes directly against this repository. Please see
|
||||||
|
CONTRIBUTING.md for information on where and how to contribute instead.
|
@ -0,0 +1,7 @@
|
|||||||
|
# Contributing guidelines
|
||||||
|
|
||||||
|
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
|
||||||
|
|
||||||
|
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/kube-controller-manager](https://git.k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
|
||||||
|
|
||||||
|
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/staging.md) for more information
|
166
staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json
generated
Normal file
166
staging/src/k8s.io/kube-controller-manager/Godeps/Godeps.json
generated
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/kube-controller-manager",
|
||||||
|
"GoVersion": "go1.10",
|
||||||
|
"GodepVersion": "v80",
|
||||||
|
"Packages": [
|
||||||
|
"./..."
|
||||||
|
],
|
||||||
|
"Deps": [
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/gogo/protobuf/proto",
|
||||||
|
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/gogo/protobuf/sortkeys",
|
||||||
|
"Rev": "c0656edd0d9eab7c66d1eb0c568f9039345796f7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/golang/glog",
|
||||||
|
"Rev": "44145f04b68cf362d9c4df2182967c2275eaefed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "github.com/google/gofuzz",
|
||||||
|
"Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/net/http2",
|
||||||
|
"Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/net/http2/hpack",
|
||||||
|
"Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/net/idna",
|
||||||
|
"Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/net/lex/httplex",
|
||||||
|
"Rev": "1c05540f6879653db88113bc4a2b70aec4bd491f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/text/secure/bidirule",
|
||||||
|
"Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/text/transform",
|
||||||
|
"Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/text/unicode/bidi",
|
||||||
|
"Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "golang.org/x/text/unicode/norm",
|
||||||
|
"Rev": "b19bf474d317b857955b12035d2c5acb57ce8b01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "gopkg.in/inf.v0",
|
||||||
|
"Rev": "3887ee99ecf07df5b447e9b00d9c0b2adaa9f3e4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/config",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/config/v1alpha1",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/naming",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apiserver/pkg/apis/config",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/apiserver/pkg/apis/config/v1alpha1",
|
||||||
|
"Rev": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ImportPath": "k8s.io/utils/pointer",
|
||||||
|
"Rev": "66066c83e385e385ccc3c964b44fd7dcd413d0ed"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
2
staging/src/k8s.io/kube-controller-manager/Godeps/OWNERS
generated
Normal file
2
staging/src/k8s.io/kube-controller-manager/Godeps/OWNERS
generated
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
approvers:
|
||||||
|
- dep-approvers
|
5
staging/src/k8s.io/kube-controller-manager/Godeps/Readme
generated
Normal file
5
staging/src/k8s.io/kube-controller-manager/Godeps/Readme
generated
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
This directory tree is generated automatically by godep.
|
||||||
|
|
||||||
|
Please do not edit.
|
||||||
|
|
||||||
|
See https://github.com/tools/godep for more information.
|
202
staging/src/k8s.io/kube-controller-manager/LICENSE
Normal file
202
staging/src/k8s.io/kube-controller-manager/LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
|
||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
14
staging/src/k8s.io/kube-controller-manager/OWNERS
Normal file
14
staging/src/k8s.io/kube-controller-manager/OWNERS
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
approvers:
|
||||||
|
- api-approvers
|
||||||
|
- deads2k
|
||||||
|
- luxas
|
||||||
|
- mtaufen
|
||||||
|
- sttts
|
||||||
|
- stewart-yu
|
||||||
|
reviewers:
|
||||||
|
- api-reviewers
|
||||||
|
- deads2k
|
||||||
|
- luxas
|
||||||
|
- mtaufen
|
||||||
|
- sttts
|
||||||
|
- stewart-yu
|
25
staging/src/k8s.io/kube-controller-manager/README.md
Normal file
25
staging/src/k8s.io/kube-controller-manager/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Kube-controller-manager
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
This library contains code to expose kube-controller-manager API.
|
||||||
|
|
||||||
|
|
||||||
|
## Compatibility
|
||||||
|
|
||||||
|
There are *NO compatibility guarantees* for this repository, yet. It is in direct support of Kubernetes, so branches
|
||||||
|
will track Kubernetes and be compatible with that repo. As we more cleanly separate the layers, we will review the
|
||||||
|
compatibility guarantee. We have a goal to make this easier to use in the future.
|
||||||
|
|
||||||
|
|
||||||
|
## Where does it come from?
|
||||||
|
|
||||||
|
`kube-controller-manager` is synced from https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kube-controller-manager.
|
||||||
|
Code changes are made in that location, merged into `k8s.io/kubernetes` and later synced here.
|
||||||
|
|
||||||
|
|
||||||
|
## Things you should *NOT* do
|
||||||
|
|
||||||
|
1. Directly modify any files under `pkg` in this repo. Those are driven from `k8s.io/kubernetes/staging/src/k8s.io/kube-controller-manager`.
|
||||||
|
2. Expect compatibility. This repo is changing quickly in direct support of
|
||||||
|
Kubernetes and the kube-controller-manager API.
|
17
staging/src/k8s.io/kube-controller-manager/SECURITY_CONTACTS
Normal file
17
staging/src/k8s.io/kube-controller-manager/SECURITY_CONTACTS
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Defined below are the security contacts for this repo.
|
||||||
|
#
|
||||||
|
# They are the contact point for the Product Security Team to reach out
|
||||||
|
# to for triaging and handling of incoming issues.
|
||||||
|
#
|
||||||
|
# The below names agree to abide by the
|
||||||
|
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
|
||||||
|
# and will be removed and replaced if they violate that agreement.
|
||||||
|
#
|
||||||
|
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
|
||||||
|
# INSTRUCTIONS AT https://kubernetes.io/security/
|
||||||
|
|
||||||
|
cjcullen
|
||||||
|
liggitt
|
||||||
|
luxas
|
||||||
|
sttts
|
||||||
|
tallclair
|
@ -0,0 +1,3 @@
|
|||||||
|
# Kubernetes Community Code of Conduct
|
||||||
|
|
||||||
|
Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)
|
@ -0,0 +1,35 @@
|
|||||||
|
load("@io_bazel_rules_go//go:def.bzl", "go_library")
|
||||||
|
|
||||||
|
go_library(
|
||||||
|
name = "go_default_library",
|
||||||
|
srcs = [
|
||||||
|
"doc.go",
|
||||||
|
"register.go",
|
||||||
|
"types.go",
|
||||||
|
"zz_generated.deepcopy.go",
|
||||||
|
],
|
||||||
|
importmap = "k8s.io/kubernetes/vendor/k8s.io/kube-controller-manager/config/v1alpha1",
|
||||||
|
importpath = "k8s.io/kube-controller-manager/config/v1alpha1",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/config/v1alpha1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
|
||||||
|
"//staging/src/k8s.io/apiserver/pkg/apis/config/v1alpha1:go_default_library",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "package-srcs",
|
||||||
|
srcs = glob(["**"]),
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "all-srcs",
|
||||||
|
srcs = [":package-srcs"],
|
||||||
|
tags = ["automanaged"],
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// +k8s:deepcopy-gen=package
|
||||||
|
// +k8s:openapi-gen=true
|
||||||
|
// +groupName=kubecontrollermanager.config.k8s.io
|
||||||
|
|
||||||
|
package v1alpha1 // import "k8s.io/kube-controller-manager/config/v1alpha1"
|
@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GroupName is the group name use in this package
|
||||||
|
const GroupName = "kubecontrollermanager.config.k8s.io"
|
||||||
|
|
||||||
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
|
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
|
||||||
|
|
||||||
|
var (
|
||||||
|
// SchemeBuilder providers the handle of collects functions that add things to a scheme.
|
||||||
|
SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
|
||||||
|
// AddToScheme applies all the stored functions to the scheme. A non-nil error
|
||||||
|
// indicates that one function failed and the attempt was abandoned.
|
||||||
|
AddToScheme = SchemeBuilder.AddToScheme
|
||||||
|
)
|
||||||
|
|
||||||
|
func addKnownTypes(scheme *runtime.Scheme) error {
|
||||||
|
scheme.AddKnownTypes(SchemeGroupVersion,
|
||||||
|
&KubeControllerManagerConfiguration{},
|
||||||
|
)
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,440 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
apimachineryconfigv1alpha1 "k8s.io/apimachinery/pkg/apis/config/v1alpha1"
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
apiserverconfigv1alpha1 "k8s.io/apiserver/pkg/apis/config/v1alpha1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PersistentVolumeRecyclerConfiguration contains elements describing persistent volume plugins.
|
||||||
|
type PersistentVolumeRecyclerConfiguration struct {
|
||||||
|
// maximumRetry is number of retries the PV recycler will execute on failure to recycle
|
||||||
|
// PV.
|
||||||
|
MaximumRetry int32
|
||||||
|
// minimumTimeoutNFS is the minimum ActiveDeadlineSeconds to use for an NFS Recycler
|
||||||
|
// pod.
|
||||||
|
MinimumTimeoutNFS int32
|
||||||
|
// podTemplateFilePathNFS is the file path to a pod definition used as a template for
|
||||||
|
// NFS persistent volume recycling
|
||||||
|
PodTemplateFilePathNFS string
|
||||||
|
// incrementTimeoutNFS is the increment of time added per Gi to ActiveDeadlineSeconds
|
||||||
|
// for an NFS scrubber pod.
|
||||||
|
IncrementTimeoutNFS int32
|
||||||
|
// podTemplateFilePathHostPath is the file path to a pod definition used as a template for
|
||||||
|
// HostPath persistent volume recycling. This is for development and testing only and
|
||||||
|
// will not work in a multi-node cluster.
|
||||||
|
PodTemplateFilePathHostPath string
|
||||||
|
// minimumTimeoutHostPath is the minimum ActiveDeadlineSeconds to use for a HostPath
|
||||||
|
// Recycler pod. This is for development and testing only and will not work in a multi-node
|
||||||
|
// cluster.
|
||||||
|
MinimumTimeoutHostPath int32
|
||||||
|
// incrementTimeoutHostPath is the increment of time added per Gi to ActiveDeadlineSeconds
|
||||||
|
// for a HostPath scrubber pod. This is for development and testing only and will not work
|
||||||
|
// in a multi-node cluster.
|
||||||
|
IncrementTimeoutHostPath int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// VolumeConfiguration contains *all* enumerated flags meant to configure all volume
|
||||||
|
// plugins. From this config, the controller-manager binary will create many instances of
|
||||||
|
// volume.VolumeConfig, each containing only the configuration needed for that plugin which
|
||||||
|
// are then passed to the appropriate plugin. The ControllerManager binary is the only part
|
||||||
|
// of the code which knows what plugins are supported and which flags correspond to each plugin.
|
||||||
|
type VolumeConfiguration struct {
|
||||||
|
// enableHostPathProvisioning enables HostPath PV provisioning when running without a
|
||||||
|
// cloud provider. This allows testing and development of provisioning features. HostPath
|
||||||
|
// provisioning is not supported in any way, won't work in a multi-node cluster, and
|
||||||
|
// should not be used for anything other than testing or development.
|
||||||
|
EnableHostPathProvisioning *bool
|
||||||
|
// enableDynamicProvisioning enables the provisioning of volumes when running within an environment
|
||||||
|
// that supports dynamic provisioning. Defaults to true.
|
||||||
|
EnableDynamicProvisioning *bool
|
||||||
|
// persistentVolumeRecyclerConfiguration holds configuration for persistent volume plugins.
|
||||||
|
PersistentVolumeRecyclerConfiguration PersistentVolumeRecyclerConfiguration
|
||||||
|
// volumePluginDir is the full path of the directory in which the flex
|
||||||
|
// volume plugin should search for additional third party volume plugins
|
||||||
|
FlexVolumePluginDir string
|
||||||
|
}
|
||||||
|
|
||||||
|
// GroupResource describes an group resource.
|
||||||
|
type GroupResource struct {
|
||||||
|
// group is the group portion of the GroupResource.
|
||||||
|
Group string
|
||||||
|
// resource is the resource portion of the GroupResource.
|
||||||
|
Resource string
|
||||||
|
}
|
||||||
|
|
||||||
|
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||||
|
|
||||||
|
// KubeControllerManagerConfiguration contains elements describing kube-controller manager.
|
||||||
|
type KubeControllerManagerConfiguration struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
|
||||||
|
// Generic holds configuration for a generic controller-manager
|
||||||
|
Generic GenericControllerManagerConfiguration
|
||||||
|
// KubeCloudSharedConfiguration holds configuration for shared related features
|
||||||
|
// both in cloud controller manager and kube-controller manager.
|
||||||
|
KubeCloudShared KubeCloudSharedConfiguration
|
||||||
|
|
||||||
|
// AttachDetachControllerConfiguration holds configuration for
|
||||||
|
// AttachDetachController related features.
|
||||||
|
AttachDetachController AttachDetachControllerConfiguration
|
||||||
|
// CSRSigningControllerConfiguration holds configuration for
|
||||||
|
// CSRSigningController related features.
|
||||||
|
CSRSigningController CSRSigningControllerConfiguration
|
||||||
|
// DaemonSetControllerConfiguration holds configuration for DaemonSetController
|
||||||
|
// related features.
|
||||||
|
DaemonSetController DaemonSetControllerConfiguration
|
||||||
|
// DeploymentControllerConfiguration holds configuration for
|
||||||
|
// DeploymentController related features.
|
||||||
|
DeploymentController DeploymentControllerConfiguration
|
||||||
|
// DeprecatedControllerConfiguration holds configuration for some deprecated
|
||||||
|
// features.
|
||||||
|
DeprecatedController DeprecatedControllerConfiguration
|
||||||
|
// EndpointControllerConfiguration holds configuration for EndpointController
|
||||||
|
// related features.
|
||||||
|
EndpointController EndpointControllerConfiguration
|
||||||
|
// GarbageCollectorControllerConfiguration holds configuration for
|
||||||
|
// GarbageCollectorController related features.
|
||||||
|
GarbageCollectorController GarbageCollectorControllerConfiguration
|
||||||
|
// HPAControllerConfiguration holds configuration for HPAController related features.
|
||||||
|
HPAController HPAControllerConfiguration
|
||||||
|
// JobControllerConfiguration holds configuration for JobController related features.
|
||||||
|
JobController JobControllerConfiguration
|
||||||
|
// NamespaceControllerConfiguration holds configuration for NamespaceController
|
||||||
|
// related features.
|
||||||
|
NamespaceController NamespaceControllerConfiguration
|
||||||
|
// NodeIPAMControllerConfiguration holds configuration for NodeIPAMController
|
||||||
|
// related features.
|
||||||
|
NodeIPAMController NodeIPAMControllerConfiguration
|
||||||
|
// NodeLifecycleControllerConfiguration holds configuration for
|
||||||
|
// NodeLifecycleController related features.
|
||||||
|
NodeLifecycleController NodeLifecycleControllerConfiguration
|
||||||
|
// PersistentVolumeBinderControllerConfiguration holds configuration for
|
||||||
|
// PersistentVolumeBinderController related features.
|
||||||
|
PersistentVolumeBinderController PersistentVolumeBinderControllerConfiguration
|
||||||
|
// PodGCControllerConfiguration holds configuration for PodGCController
|
||||||
|
// related features.
|
||||||
|
PodGCController PodGCControllerConfiguration
|
||||||
|
// ReplicaSetControllerConfiguration holds configuration for ReplicaSet related features.
|
||||||
|
ReplicaSetController ReplicaSetControllerConfiguration
|
||||||
|
// ReplicationControllerConfiguration holds configuration for
|
||||||
|
// ReplicationController related features.
|
||||||
|
ReplicationController ReplicationControllerConfiguration
|
||||||
|
// ResourceQuotaControllerConfiguration holds configuration for
|
||||||
|
// ResourceQuotaController related features.
|
||||||
|
ResourceQuotaController ResourceQuotaControllerConfiguration
|
||||||
|
// SAControllerConfiguration holds configuration for ServiceAccountController
|
||||||
|
// related features.
|
||||||
|
SAController SAControllerConfiguration
|
||||||
|
// ServiceControllerConfiguration holds configuration for ServiceController
|
||||||
|
// related features.
|
||||||
|
ServiceController ServiceControllerConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenericControllerManagerConfiguration holds configuration for a generic controller-manager.
|
||||||
|
type GenericControllerManagerConfiguration struct {
|
||||||
|
// port is the port that the controller-manager's http service runs on.
|
||||||
|
Port int32
|
||||||
|
// address is the IP address to serve on (set to 0.0.0.0 for all interfaces).
|
||||||
|
Address string
|
||||||
|
// minResyncPeriod is the resync period in reflectors; will be random between
|
||||||
|
// minResyncPeriod and 2*minResyncPeriod.
|
||||||
|
MinResyncPeriod metav1.Duration
|
||||||
|
// ClientConnection specifies the kubeconfig file and client connection
|
||||||
|
// settings for the proxy server to use when communicating with the apiserver.
|
||||||
|
ClientConnection apimachineryconfigv1alpha1.ClientConnectionConfiguration
|
||||||
|
// How long to wait between starting controller managers
|
||||||
|
ControllerStartInterval metav1.Duration
|
||||||
|
// leaderElection defines the configuration of leader election client.
|
||||||
|
LeaderElection apiserverconfigv1alpha1.LeaderElectionConfiguration
|
||||||
|
// Controllers is the list of controllers to enable or disable
|
||||||
|
// '*' means "all enabled by default controllers"
|
||||||
|
// 'foo' means "enable 'foo'"
|
||||||
|
// '-foo' means "disable 'foo'"
|
||||||
|
// first item for a particular name wins
|
||||||
|
Controllers []string
|
||||||
|
// DebuggingConfiguration holds configuration for Debugging related features.
|
||||||
|
Debugging apiserverconfigv1alpha1.DebuggingConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
|
// KubeCloudSharedConfiguration contains elements shared by both kube-controller manager
|
||||||
|
// and cloud-controller manager, but not genericconfig.
|
||||||
|
type KubeCloudSharedConfiguration struct {
|
||||||
|
// CloudProviderConfiguration holds configuration for CloudProvider related features.
|
||||||
|
CloudProvider CloudProviderConfiguration
|
||||||
|
// externalCloudVolumePlugin specifies the plugin to use when cloudProvider is "external".
|
||||||
|
// It is currently used by the in repo cloud providers to handle node and volume control in the KCM.
|
||||||
|
ExternalCloudVolumePlugin string
|
||||||
|
// useServiceAccountCredentials indicates whether controllers should be run with
|
||||||
|
// individual service account credentials.
|
||||||
|
UseServiceAccountCredentials bool
|
||||||
|
// run with untagged cloud instances
|
||||||
|
AllowUntaggedCloud bool
|
||||||
|
// routeReconciliationPeriod is the period for reconciling routes created for Nodes by cloud provider..
|
||||||
|
RouteReconciliationPeriod metav1.Duration
|
||||||
|
// nodeMonitorPeriod is the period for syncing NodeStatus in NodeController.
|
||||||
|
NodeMonitorPeriod metav1.Duration
|
||||||
|
// clusterName is the instance prefix for the cluster.
|
||||||
|
ClusterName string
|
||||||
|
// clusterCIDR is CIDR Range for Pods in cluster.
|
||||||
|
ClusterCIDR string
|
||||||
|
// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
|
||||||
|
// ConfigureCloudRoutes is true, to be set on the cloud provider.
|
||||||
|
AllocateNodeCIDRs bool
|
||||||
|
// CIDRAllocatorType determines what kind of pod CIDR allocator will be used.
|
||||||
|
CIDRAllocatorType string
|
||||||
|
// configureCloudRoutes enables CIDRs allocated with allocateNodeCIDRs
|
||||||
|
// to be configured on the cloud provider.
|
||||||
|
ConfigureCloudRoutes *bool
|
||||||
|
// nodeSyncPeriod is the period for syncing nodes from cloudprovider. Longer
|
||||||
|
// periods will result in fewer calls to cloud provider, but may delay addition
|
||||||
|
// of new nodes to cluster.
|
||||||
|
NodeSyncPeriod metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// AttachDetachControllerConfiguration contains elements describing AttachDetachController.
|
||||||
|
type AttachDetachControllerConfiguration struct {
|
||||||
|
// Reconciler runs a periodic loop to reconcile the desired state of the with
|
||||||
|
// the actual state of the world by triggering attach detach operations.
|
||||||
|
// This flag enables or disables reconcile. Is false by default, and thus enabled.
|
||||||
|
DisableAttachDetachReconcilerSync bool
|
||||||
|
// ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
|
||||||
|
// wait between successive executions. Is set to 5 sec by default.
|
||||||
|
ReconcilerSyncLoopPeriod metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// CloudProviderConfiguration contains basically elements about cloud provider.
|
||||||
|
type CloudProviderConfiguration struct {
|
||||||
|
// Name is the provider for cloud services.
|
||||||
|
Name string
|
||||||
|
// cloudConfigFile is the path to the cloud provider configuration file.
|
||||||
|
CloudConfigFile string
|
||||||
|
}
|
||||||
|
|
||||||
|
// CSRSigningControllerConfiguration contains elements describing CSRSigningController.
|
||||||
|
type CSRSigningControllerConfiguration struct {
|
||||||
|
// clusterSigningCertFile is the filename containing a PEM-encoded
|
||||||
|
// X509 CA certificate used to issue cluster-scoped certificates
|
||||||
|
ClusterSigningCertFile string
|
||||||
|
// clusterSigningCertFile is the filename containing a PEM-encoded
|
||||||
|
// RSA or ECDSA private key used to issue cluster-scoped certificates
|
||||||
|
ClusterSigningKeyFile string
|
||||||
|
// clusterSigningDuration is the length of duration signed certificates
|
||||||
|
// will be given.
|
||||||
|
ClusterSigningDuration metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// DaemonSetControllerConfiguration contains elements describing DaemonSetController.
|
||||||
|
type DaemonSetControllerConfiguration struct {
|
||||||
|
// concurrentDaemonSetSyncs is the number of daemonset objects that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive daemonset,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentDaemonSetSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeploymentControllerConfiguration contains elements describing DeploymentController.
|
||||||
|
type DeploymentControllerConfiguration struct {
|
||||||
|
// concurrentDeploymentSyncs is the number of deployment objects that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive deployments,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentDeploymentSyncs int32
|
||||||
|
// deploymentControllerSyncPeriod is the period for syncing the deployments.
|
||||||
|
DeploymentControllerSyncPeriod metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeprecatedControllerConfiguration contains elements be deprecated.
|
||||||
|
type DeprecatedControllerConfiguration struct {
|
||||||
|
// DEPRECATED: deletingPodsQps is the number of nodes per second on which pods are deleted in
|
||||||
|
// case of node failure.
|
||||||
|
DeletingPodsQPS float32
|
||||||
|
// DEPRECATED: deletingPodsBurst is the number of nodes on which pods are bursty deleted in
|
||||||
|
// case of node failure. For more details look into RateLimiter.
|
||||||
|
DeletingPodsBurst int32
|
||||||
|
// registerRetryCount is the number of retries for initial node registration.
|
||||||
|
// Retry interval equals node-sync-period.
|
||||||
|
RegisterRetryCount int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// EndpointControllerConfiguration contains elements describing EndpointController.
|
||||||
|
type EndpointControllerConfiguration struct {
|
||||||
|
// concurrentEndpointSyncs is the number of endpoint syncing operations
|
||||||
|
// that will be done concurrently. Larger number = faster endpoint updating,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentEndpointSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// GarbageCollectorControllerConfiguration contains elements describing GarbageCollectorController.
|
||||||
|
type GarbageCollectorControllerConfiguration struct {
|
||||||
|
// enables the generic garbage collector. MUST be synced with the
|
||||||
|
// corresponding flag of the kube-apiserver. WARNING: the generic garbage
|
||||||
|
// collector is an alpha feature.
|
||||||
|
EnableGarbageCollector *bool
|
||||||
|
// concurrentGCSyncs is the number of garbage collector workers that are
|
||||||
|
// allowed to sync concurrently.
|
||||||
|
ConcurrentGCSyncs int32
|
||||||
|
// gcIgnoredResources is the list of GroupResources that garbage collection should ignore.
|
||||||
|
GCIgnoredResources []GroupResource
|
||||||
|
}
|
||||||
|
|
||||||
|
// HPAControllerConfiguration contains elements describing HPAController.
|
||||||
|
type HPAControllerConfiguration struct {
|
||||||
|
// HorizontalPodAutoscalerSyncPeriod is the period for syncing the number of
|
||||||
|
// pods in horizontal pod autoscaler.
|
||||||
|
HorizontalPodAutoscalerSyncPeriod metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerUpscaleForbiddenWindow is a period after which next upscale allowed.
|
||||||
|
HorizontalPodAutoscalerUpscaleForbiddenWindow metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerDowncaleStabilizationWindow is a period for which autoscaler will look
|
||||||
|
// backwards and not scale down below any recommendation it made during that period.
|
||||||
|
HorizontalPodAutoscalerDownscaleStabilizationWindow metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerDownscaleForbiddenWindow is a period after which next downscale allowed.
|
||||||
|
HorizontalPodAutoscalerDownscaleForbiddenWindow metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerTolerance is the tolerance for when
|
||||||
|
// resource usage suggests upscaling/downscaling
|
||||||
|
HorizontalPodAutoscalerTolerance float64
|
||||||
|
// HorizontalPodAutoscalerUseRESTClients causes the HPA controller to use REST clients
|
||||||
|
// through the kube-aggregator when enabled, instead of using the legacy metrics client
|
||||||
|
// through the API server proxy.
|
||||||
|
HorizontalPodAutoscalerUseRESTClients *bool
|
||||||
|
// HorizontalPodAutoscalerCPUInitializationPeriod is the period after pod start when CPU samples
|
||||||
|
// might be skipped.
|
||||||
|
HorizontalPodAutoscalerCPUInitializationPeriod metav1.Duration
|
||||||
|
// HorizontalPodAutoscalerInitialReadinessDelay is period after pod start during which readiness
|
||||||
|
// changes are treated as readiness being set for the first time. The only effect of this is that
|
||||||
|
// HPA will disregard CPU samples from unready pods that had last readiness change during that
|
||||||
|
// period.
|
||||||
|
HorizontalPodAutoscalerInitialReadinessDelay metav1.Duration
|
||||||
|
}
|
||||||
|
|
||||||
|
// JobControllerConfiguration contains elements describing JobController.
|
||||||
|
type JobControllerConfiguration struct {
|
||||||
|
// concurrentJobSyncs is the number of job objects that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive jobs,
|
||||||
|
// but more CPU (and network) load.
|
||||||
|
ConcurrentJobSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// NamespaceControllerConfiguration contains elements describing NamespaceController.
|
||||||
|
type NamespaceControllerConfiguration struct {
|
||||||
|
// namespaceSyncPeriod is the period for syncing namespace life-cycle
|
||||||
|
// updates.
|
||||||
|
NamespaceSyncPeriod metav1.Duration
|
||||||
|
// concurrentNamespaceSyncs is the number of namespace objects that are
|
||||||
|
// allowed to sync concurrently.
|
||||||
|
ConcurrentNamespaceSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeIPAMControllerConfiguration contains elements describing NodeIpamController.
|
||||||
|
type NodeIPAMControllerConfiguration struct {
|
||||||
|
// serviceCIDR is CIDR Range for Services in cluster.
|
||||||
|
ServiceCIDR string
|
||||||
|
// NodeCIDRMaskSize is the mask size for node cidr in cluster.
|
||||||
|
NodeCIDRMaskSize int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeLifecycleControllerConfiguration contains elements describing NodeLifecycleController.
|
||||||
|
type NodeLifecycleControllerConfiguration struct {
|
||||||
|
// If set to true enables NoExecute Taints and will evict all not-tolerating
|
||||||
|
// Pod running on Nodes tainted with this kind of Taints.
|
||||||
|
EnableTaintManager *bool
|
||||||
|
// nodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is healthy
|
||||||
|
NodeEvictionRate float32
|
||||||
|
// secondaryNodeEvictionRate is the number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy
|
||||||
|
SecondaryNodeEvictionRate float32
|
||||||
|
// nodeStartupGracePeriod is the amount of time which we allow starting a node to
|
||||||
|
// be unresponsive before marking it unhealthy.
|
||||||
|
NodeStartupGracePeriod metav1.Duration
|
||||||
|
// nodeMontiorGracePeriod is the amount of time which we allow a running node to be
|
||||||
|
// unresponsive before marking it unhealthy. Must be N times more than kubelet's
|
||||||
|
// nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet
|
||||||
|
// to post node status.
|
||||||
|
NodeMonitorGracePeriod metav1.Duration
|
||||||
|
// podEvictionTimeout is the grace period for deleting pods on failed nodes.
|
||||||
|
PodEvictionTimeout metav1.Duration
|
||||||
|
// secondaryNodeEvictionRate is implicitly overridden to 0 for clusters smaller than or equal to largeClusterSizeThreshold
|
||||||
|
LargeClusterSizeThreshold int32
|
||||||
|
// Zone is treated as unhealthy in nodeEvictionRate and secondaryNodeEvictionRate when at least
|
||||||
|
// unhealthyZoneThreshold (no less than 3) of Nodes in the zone are NotReady
|
||||||
|
UnhealthyZoneThreshold float32
|
||||||
|
}
|
||||||
|
|
||||||
|
// PersistentVolumeBinderControllerConfiguration contains elements describing
|
||||||
|
// PersistentVolumeBinderController.
|
||||||
|
type PersistentVolumeBinderControllerConfiguration struct {
|
||||||
|
// pvClaimBinderSyncPeriod is the period for syncing persistent volumes
|
||||||
|
// and persistent volume claims.
|
||||||
|
PVClaimBinderSyncPeriod metav1.Duration
|
||||||
|
// volumeConfiguration holds configuration for volume related features.
|
||||||
|
VolumeConfiguration VolumeConfiguration
|
||||||
|
}
|
||||||
|
|
||||||
|
// PodGCControllerConfiguration contains elements describing PodGCController.
|
||||||
|
type PodGCControllerConfiguration struct {
|
||||||
|
// terminatedPodGCThreshold is the number of terminated pods that can exist
|
||||||
|
// before the terminated pod garbage collector starts deleting terminated pods.
|
||||||
|
// If <= 0, the terminated pod garbage collector is disabled.
|
||||||
|
TerminatedPodGCThreshold int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplicaSetControllerConfiguration contains elements describing ReplicaSetController.
|
||||||
|
type ReplicaSetControllerConfiguration struct {
|
||||||
|
// concurrentRSSyncs is the number of replica sets that are allowed to sync
|
||||||
|
// concurrently. Larger number = more responsive replica management, but more
|
||||||
|
// CPU (and network) load.
|
||||||
|
ConcurrentRSSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplicationControllerConfiguration contains elements describing ReplicationController.
|
||||||
|
type ReplicationControllerConfiguration struct {
|
||||||
|
// concurrentRCSyncs is the number of replication controllers that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive replica
|
||||||
|
// management, but more CPU (and network) load.
|
||||||
|
ConcurrentRCSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResourceQuotaControllerConfiguration contains elements describing ResourceQuotaController.
|
||||||
|
type ResourceQuotaControllerConfiguration struct {
|
||||||
|
// resourceQuotaSyncPeriod is the period for syncing quota usage status
|
||||||
|
// in the system.
|
||||||
|
ResourceQuotaSyncPeriod metav1.Duration
|
||||||
|
// concurrentResourceQuotaSyncs is the number of resource quotas that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive quota
|
||||||
|
// management, but more CPU (and network) load.
|
||||||
|
ConcurrentResourceQuotaSyncs int32
|
||||||
|
}
|
||||||
|
|
||||||
|
// SAControllerConfiguration contains elements describing ServiceAccountController.
|
||||||
|
type SAControllerConfiguration struct {
|
||||||
|
// serviceAccountKeyFile is the filename containing a PEM-encoded private RSA key
|
||||||
|
// used to sign service account tokens.
|
||||||
|
ServiceAccountKeyFile string
|
||||||
|
// concurrentSATokenSyncs is the number of service account token syncing operations
|
||||||
|
// that will be done concurrently.
|
||||||
|
ConcurrentSATokenSyncs int32
|
||||||
|
// rootCAFile is the root certificate authority will be included in service
|
||||||
|
// account's token secret. This must be a valid PEM-encoded CA bundle.
|
||||||
|
RootCAFile string
|
||||||
|
}
|
||||||
|
|
||||||
|
// ServiceControllerConfiguration contains elements describing ServiceController.
|
||||||
|
type ServiceControllerConfiguration struct {
|
||||||
|
// concurrentServiceSyncs is the number of services that are
|
||||||
|
// allowed to sync concurrently. Larger number = more responsive service
|
||||||
|
// management, but more CPU (and network) load.
|
||||||
|
ConcurrentServiceSyncs int32
|
||||||
|
}
|
537
staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go
generated
Normal file
537
staging/src/k8s.io/kube-controller-manager/config/v1alpha1/zz_generated.deepcopy.go
generated
Normal file
@ -0,0 +1,537 @@
|
|||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *AttachDetachControllerConfiguration) DeepCopyInto(out *AttachDetachControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.ReconcilerSyncLoopPeriod = in.ReconcilerSyncLoopPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachDetachControllerConfiguration.
|
||||||
|
func (in *AttachDetachControllerConfiguration) DeepCopy() *AttachDetachControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(AttachDetachControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *CSRSigningControllerConfiguration) DeepCopyInto(out *CSRSigningControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.ClusterSigningDuration = in.ClusterSigningDuration
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSRSigningControllerConfiguration.
|
||||||
|
func (in *CSRSigningControllerConfiguration) DeepCopy() *CSRSigningControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(CSRSigningControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *CloudProviderConfiguration) DeepCopyInto(out *CloudProviderConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudProviderConfiguration.
|
||||||
|
func (in *CloudProviderConfiguration) DeepCopy() *CloudProviderConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(CloudProviderConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *DaemonSetControllerConfiguration) DeepCopyInto(out *DaemonSetControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetControllerConfiguration.
|
||||||
|
func (in *DaemonSetControllerConfiguration) DeepCopy() *DaemonSetControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(DaemonSetControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *DeploymentControllerConfiguration) DeepCopyInto(out *DeploymentControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.DeploymentControllerSyncPeriod = in.DeploymentControllerSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentControllerConfiguration.
|
||||||
|
func (in *DeploymentControllerConfiguration) DeepCopy() *DeploymentControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(DeploymentControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *DeprecatedControllerConfiguration) DeepCopyInto(out *DeprecatedControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeprecatedControllerConfiguration.
|
||||||
|
func (in *DeprecatedControllerConfiguration) DeepCopy() *DeprecatedControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(DeprecatedControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *EndpointControllerConfiguration) DeepCopyInto(out *EndpointControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointControllerConfiguration.
|
||||||
|
func (in *EndpointControllerConfiguration) DeepCopy() *EndpointControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(EndpointControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GarbageCollectorControllerConfiguration) DeepCopyInto(out *GarbageCollectorControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
if in.EnableGarbageCollector != nil {
|
||||||
|
in, out := &in.EnableGarbageCollector, &out.EnableGarbageCollector
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.GCIgnoredResources != nil {
|
||||||
|
in, out := &in.GCIgnoredResources, &out.GCIgnoredResources
|
||||||
|
*out = make([]GroupResource, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GarbageCollectorControllerConfiguration.
|
||||||
|
func (in *GarbageCollectorControllerConfiguration) DeepCopy() *GarbageCollectorControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GarbageCollectorControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GenericControllerManagerConfiguration) DeepCopyInto(out *GenericControllerManagerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.MinResyncPeriod = in.MinResyncPeriod
|
||||||
|
out.ClientConnection = in.ClientConnection
|
||||||
|
out.ControllerStartInterval = in.ControllerStartInterval
|
||||||
|
in.LeaderElection.DeepCopyInto(&out.LeaderElection)
|
||||||
|
if in.Controllers != nil {
|
||||||
|
in, out := &in.Controllers, &out.Controllers
|
||||||
|
*out = make([]string, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
|
out.Debugging = in.Debugging
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GenericControllerManagerConfiguration.
|
||||||
|
func (in *GenericControllerManagerConfiguration) DeepCopy() *GenericControllerManagerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GenericControllerManagerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *GroupResource) DeepCopyInto(out *GroupResource) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.
|
||||||
|
func (in *GroupResource) DeepCopy() *GroupResource {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(GroupResource)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *HPAControllerConfiguration) DeepCopyInto(out *HPAControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.HorizontalPodAutoscalerSyncPeriod = in.HorizontalPodAutoscalerSyncPeriod
|
||||||
|
out.HorizontalPodAutoscalerUpscaleForbiddenWindow = in.HorizontalPodAutoscalerUpscaleForbiddenWindow
|
||||||
|
out.HorizontalPodAutoscalerDownscaleStabilizationWindow = in.HorizontalPodAutoscalerDownscaleStabilizationWindow
|
||||||
|
out.HorizontalPodAutoscalerDownscaleForbiddenWindow = in.HorizontalPodAutoscalerDownscaleForbiddenWindow
|
||||||
|
if in.HorizontalPodAutoscalerUseRESTClients != nil {
|
||||||
|
in, out := &in.HorizontalPodAutoscalerUseRESTClients, &out.HorizontalPodAutoscalerUseRESTClients
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.HorizontalPodAutoscalerCPUInitializationPeriod = in.HorizontalPodAutoscalerCPUInitializationPeriod
|
||||||
|
out.HorizontalPodAutoscalerInitialReadinessDelay = in.HorizontalPodAutoscalerInitialReadinessDelay
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAControllerConfiguration.
|
||||||
|
func (in *HPAControllerConfiguration) DeepCopy() *HPAControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(HPAControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *JobControllerConfiguration) DeepCopyInto(out *JobControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobControllerConfiguration.
|
||||||
|
func (in *JobControllerConfiguration) DeepCopy() *JobControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(JobControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *KubeCloudSharedConfiguration) DeepCopyInto(out *KubeCloudSharedConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.CloudProvider = in.CloudProvider
|
||||||
|
out.RouteReconciliationPeriod = in.RouteReconciliationPeriod
|
||||||
|
out.NodeMonitorPeriod = in.NodeMonitorPeriod
|
||||||
|
if in.ConfigureCloudRoutes != nil {
|
||||||
|
in, out := &in.ConfigureCloudRoutes, &out.ConfigureCloudRoutes
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.NodeSyncPeriod = in.NodeSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeCloudSharedConfiguration.
|
||||||
|
func (in *KubeCloudSharedConfiguration) DeepCopy() *KubeCloudSharedConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(KubeCloudSharedConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *KubeControllerManagerConfiguration) DeepCopyInto(out *KubeControllerManagerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.Generic.DeepCopyInto(&out.Generic)
|
||||||
|
in.KubeCloudShared.DeepCopyInto(&out.KubeCloudShared)
|
||||||
|
out.AttachDetachController = in.AttachDetachController
|
||||||
|
out.CSRSigningController = in.CSRSigningController
|
||||||
|
out.DaemonSetController = in.DaemonSetController
|
||||||
|
out.DeploymentController = in.DeploymentController
|
||||||
|
out.DeprecatedController = in.DeprecatedController
|
||||||
|
out.EndpointController = in.EndpointController
|
||||||
|
in.GarbageCollectorController.DeepCopyInto(&out.GarbageCollectorController)
|
||||||
|
in.HPAController.DeepCopyInto(&out.HPAController)
|
||||||
|
out.JobController = in.JobController
|
||||||
|
out.NamespaceController = in.NamespaceController
|
||||||
|
out.NodeIPAMController = in.NodeIPAMController
|
||||||
|
in.NodeLifecycleController.DeepCopyInto(&out.NodeLifecycleController)
|
||||||
|
in.PersistentVolumeBinderController.DeepCopyInto(&out.PersistentVolumeBinderController)
|
||||||
|
out.PodGCController = in.PodGCController
|
||||||
|
out.ReplicaSetController = in.ReplicaSetController
|
||||||
|
out.ReplicationController = in.ReplicationController
|
||||||
|
out.ResourceQuotaController = in.ResourceQuotaController
|
||||||
|
out.SAController = in.SAController
|
||||||
|
out.ServiceController = in.ServiceController
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfiguration.
|
||||||
|
func (in *KubeControllerManagerConfiguration) DeepCopy() *KubeControllerManagerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(KubeControllerManagerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *KubeControllerManagerConfiguration) DeepCopyObject() runtime.Object {
|
||||||
|
if c := in.DeepCopy(); c != nil {
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *NamespaceControllerConfiguration) DeepCopyInto(out *NamespaceControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.NamespaceSyncPeriod = in.NamespaceSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceControllerConfiguration.
|
||||||
|
func (in *NamespaceControllerConfiguration) DeepCopy() *NamespaceControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(NamespaceControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *NodeIPAMControllerConfiguration) DeepCopyInto(out *NodeIPAMControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeIPAMControllerConfiguration.
|
||||||
|
func (in *NodeIPAMControllerConfiguration) DeepCopy() *NodeIPAMControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(NodeIPAMControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *NodeLifecycleControllerConfiguration) DeepCopyInto(out *NodeLifecycleControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
if in.EnableTaintManager != nil {
|
||||||
|
in, out := &in.EnableTaintManager, &out.EnableTaintManager
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.NodeStartupGracePeriod = in.NodeStartupGracePeriod
|
||||||
|
out.NodeMonitorGracePeriod = in.NodeMonitorGracePeriod
|
||||||
|
out.PodEvictionTimeout = in.PodEvictionTimeout
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLifecycleControllerConfiguration.
|
||||||
|
func (in *NodeLifecycleControllerConfiguration) DeepCopy() *NodeLifecycleControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(NodeLifecycleControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopyInto(out *PersistentVolumeBinderControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.PVClaimBinderSyncPeriod = in.PVClaimBinderSyncPeriod
|
||||||
|
in.VolumeConfiguration.DeepCopyInto(&out.VolumeConfiguration)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeBinderControllerConfiguration.
|
||||||
|
func (in *PersistentVolumeBinderControllerConfiguration) DeepCopy() *PersistentVolumeBinderControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PersistentVolumeBinderControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PersistentVolumeRecyclerConfiguration) DeepCopyInto(out *PersistentVolumeRecyclerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeRecyclerConfiguration.
|
||||||
|
func (in *PersistentVolumeRecyclerConfiguration) DeepCopy() *PersistentVolumeRecyclerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PersistentVolumeRecyclerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *PodGCControllerConfiguration) DeepCopyInto(out *PodGCControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodGCControllerConfiguration.
|
||||||
|
func (in *PodGCControllerConfiguration) DeepCopy() *PodGCControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(PodGCControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ReplicaSetControllerConfiguration) DeepCopyInto(out *ReplicaSetControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetControllerConfiguration.
|
||||||
|
func (in *ReplicaSetControllerConfiguration) DeepCopy() *ReplicaSetControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ReplicaSetControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ReplicationControllerConfiguration) DeepCopyInto(out *ReplicationControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerConfiguration.
|
||||||
|
func (in *ReplicationControllerConfiguration) DeepCopy() *ReplicationControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ReplicationControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ResourceQuotaControllerConfiguration) DeepCopyInto(out *ResourceQuotaControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.ResourceQuotaSyncPeriod = in.ResourceQuotaSyncPeriod
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaControllerConfiguration.
|
||||||
|
func (in *ResourceQuotaControllerConfiguration) DeepCopy() *ResourceQuotaControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ResourceQuotaControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *SAControllerConfiguration) DeepCopyInto(out *SAControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SAControllerConfiguration.
|
||||||
|
func (in *SAControllerConfiguration) DeepCopy() *SAControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(SAControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *ServiceControllerConfiguration) DeepCopyInto(out *ServiceControllerConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceControllerConfiguration.
|
||||||
|
func (in *ServiceControllerConfiguration) DeepCopy() *ServiceControllerConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(ServiceControllerConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *VolumeConfiguration) DeepCopyInto(out *VolumeConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
if in.EnableHostPathProvisioning != nil {
|
||||||
|
in, out := &in.EnableHostPathProvisioning, &out.EnableHostPathProvisioning
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
if in.EnableDynamicProvisioning != nil {
|
||||||
|
in, out := &in.EnableDynamicProvisioning, &out.EnableDynamicProvisioning
|
||||||
|
*out = new(bool)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
out.PersistentVolumeRecyclerConfiguration = in.PersistentVolumeRecyclerConfiguration
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeConfiguration.
|
||||||
|
func (in *VolumeConfiguration) DeepCopy() *VolumeConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(VolumeConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
1
vendor/k8s.io/kube-controller-manager
generated
vendored
Symbolic link
1
vendor/k8s.io/kube-controller-manager
generated
vendored
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../staging/src/k8s.io/kube-controller-manager
|
Loading…
Reference in New Issue
Block a user