fs.BoolVar(&s.UseServiceAccountCredentials,"use-service-account-credentials",s.UseServiceAccountCredentials,"If true, use individual service account credentials for each controller.")
fs.StringVar(&s.CloudConfigFile,"cloud-config",s.CloudConfigFile,"The path to the cloud provider configuration file. Empty string for no configuration file.")
fs.Int32Var(&s.ConcurrentEndpointSyncs,"concurrent-endpoint-syncs",s.ConcurrentEndpointSyncs,"The number of endpoint syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentServiceSyncs,"concurrent-service-syncs",s.ConcurrentServiceSyncs,"The number of services that are allowed to sync concurrently. Larger number = more responsive service management, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentRCSyncs,"concurrent_rc_syncs",s.ConcurrentRCSyncs,"The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentRSSyncs,"concurrent-replicaset-syncs",s.ConcurrentRSSyncs,"The number of replica sets that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentResourceQuotaSyncs,"concurrent-resource-quota-syncs",s.ConcurrentResourceQuotaSyncs,"The number of resource quotas that are allowed to sync concurrently. Larger number = more responsive quota management, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentDeploymentSyncs,"concurrent-deployment-syncs",s.ConcurrentDeploymentSyncs,"The number of deployment objects that are allowed to sync concurrently. Larger number = more responsive deployments, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentNamespaceSyncs,"concurrent-namespace-syncs",s.ConcurrentNamespaceSyncs,"The number of namespace objects that are allowed to sync concurrently. Larger number = more responsive namespace termination, but more CPU (and network) load")
fs.Int32Var(&s.ConcurrentSATokenSyncs,"concurrent-serviceaccount-token-syncs",s.ConcurrentSATokenSyncs,"The number of service account token objects that are allowed to sync concurrently. Larger number = more responsive token generation, but more CPU (and network) load")
fs.Int32Var(&s.LookupCacheSizeForRC,"replication-controller-lookup-cache-size",s.LookupCacheSizeForRC,"The the size of lookup cache for replication controllers. Larger number = more responsive replica management, but more MEM load.")
fs.Int32Var(&s.LookupCacheSizeForRS,"replicaset-lookup-cache-size",s.LookupCacheSizeForRS,"The the size of lookup cache for replicatsets. Larger number = more responsive replica management, but more MEM load.")
fs.Int32Var(&s.LookupCacheSizeForDaemonSet,"daemonset-lookup-cache-size",s.LookupCacheSizeForDaemonSet,"The the size of lookup cache for daemonsets. Larger number = more responsive daemonsets, but more MEM load.")
fs.DurationVar(&s.ServiceSyncPeriod.Duration,"service-sync-period",s.ServiceSyncPeriod.Duration,"The period for syncing services with their external load balancers")
"This flag is deprecated and will be removed in future releases. See node-monitor-period for Node health checking or "+
"route-reconciliation-period for cloud provider's route configuration settings.")
fs.MarkDeprecated("node-sync-period","This flag is currently no-op and will be deleted.")
fs.DurationVar(&s.RouteReconciliationPeriod.Duration,"route-reconciliation-period",s.RouteReconciliationPeriod.Duration,"The period for reconciling routes created for Nodes by cloud provider.")
fs.DurationVar(&s.ResourceQuotaSyncPeriod.Duration,"resource-quota-sync-period",s.ResourceQuotaSyncPeriod.Duration,"The period for syncing quota usage status in the system")
fs.DurationVar(&s.NamespaceSyncPeriod.Duration,"namespace-sync-period",s.NamespaceSyncPeriod.Duration,"The period for syncing namespace life-cycle updates")
fs.DurationVar(&s.PVClaimBinderSyncPeriod.Duration,"pvclaimbinder-sync-period",s.PVClaimBinderSyncPeriod.Duration,"The period for syncing persistent volumes and persistent volume claims")
fs.DurationVar(&s.MinResyncPeriod.Duration,"min-resync-period",s.MinResyncPeriod.Duration,"The resync period in reflectors will be random between MinResyncPeriod and 2*MinResyncPeriod")
fs.StringVar(&s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS,"pv-recycler-pod-template-filepath-nfs",s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathNFS,"The file path to a pod definition used as a template for NFS persistent volume recycling")
fs.Int32Var(&s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.MinimumTimeoutNFS,"pv-recycler-minimum-timeout-nfs",s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.MinimumTimeoutNFS,"The minimum ActiveDeadlineSeconds to use for an NFS Recycler pod")
fs.Int32Var(&s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.IncrementTimeoutNFS,"pv-recycler-increment-timeout-nfs",s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.IncrementTimeoutNFS,"the increment of time added per Gi to ActiveDeadlineSeconds for an NFS scrubber pod")
fs.StringVar(&s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathHostPath,"pv-recycler-pod-template-filepath-hostpath",s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.PodTemplateFilePathHostPath,"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.")
fs.Int32Var(&s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.MinimumTimeoutHostPath,"pv-recycler-minimum-timeout-hostpath",s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.MinimumTimeoutHostPath,"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.")
fs.Int32Var(&s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.IncrementTimeoutHostPath,"pv-recycler-timeout-increment-hostpath",s.VolumeConfiguration.PersistentVolumeRecyclerConfiguration.IncrementTimeoutHostPath,"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.")
fs.BoolVar(&s.VolumeConfiguration.EnableHostPathProvisioning,"enable-hostpath-provisioner",s.VolumeConfiguration.EnableHostPathProvisioning,"Enable 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.")
fs.BoolVar(&s.VolumeConfiguration.EnableDynamicProvisioning,"enable-dynamic-provisioning",s.VolumeConfiguration.EnableDynamicProvisioning,"Enable dynamic provisioning for environments that support it.")
fs.StringVar(&s.VolumeConfiguration.FlexVolumePluginDir,"flex-volume-plugin-dir",s.VolumeConfiguration.FlexVolumePluginDir,"Full path of the directory in which the flex volume plugin should search for additional third party volume plugins.")
fs.Int32Var(&s.TerminatedPodGCThreshold,"terminated-pod-gc-threshold",s.TerminatedPodGCThreshold,"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.")
fs.DurationVar(&s.HorizontalPodAutoscalerSyncPeriod.Duration,"horizontal-pod-autoscaler-sync-period",s.HorizontalPodAutoscalerSyncPeriod.Duration,"The period for syncing the number of pods in horizontal pod autoscaler.")
fs.DurationVar(&s.DeploymentControllerSyncPeriod.Duration,"deployment-controller-sync-period",s.DeploymentControllerSyncPeriod.Duration,"Period for syncing the deployments.")
fs.DurationVar(&s.PodEvictionTimeout.Duration,"pod-eviction-timeout",s.PodEvictionTimeout.Duration,"The grace period for deleting pods on failed nodes.")
fs.Int32Var(&s.DeletingPodsBurst,"deleting-pods-burst",0,"Number of nodes on which pods are bursty deleted in case of node failure. For more details look into RateLimiter.")
fs.MarkDeprecated("deleting-pods-burst","This flag is currently no-op and will be deleted.")
fs.StringVar(&s.ServiceAccountKeyFile,"service-account-private-key-file",s.ServiceAccountKeyFile,"Filename containing a PEM-encoded private RSA or ECDSA key used to sign service account tokens.")
fs.StringVar(&s.ClusterSigningCertFile,"cluster-signing-cert-file",s.ClusterSigningCertFile,"Filename containing a PEM-encoded X509 CA certificate used to issue cluster-scoped certificates")
fs.StringVar(&s.ClusterSigningKeyFile,"cluster-signing-key-file",s.ClusterSigningKeyFile,"Filename containing a PEM-encoded RSA or ECDSA private key used to sign cluster-scoped certificates")
fs.StringVar(&s.ApproveAllKubeletCSRsForGroup,"insecure-experimental-approve-all-kubelet-csrs-for-group",s.ApproveAllKubeletCSRsForGroup,"The group for which the controller-manager will auto approve all CSRs for kubelet client certificates.")
fs.StringVar(&s.Master,"master",s.Master,"The address of the Kubernetes API server (overrides any value in kubeconfig)")
fs.StringVar(&s.Kubeconfig,"kubeconfig",s.Kubeconfig,"Path to kubeconfig file with authorization and master location information.")
fs.StringVar(&s.RootCAFile,"root-ca-file",s.RootCAFile,"If set, this root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.")
fs.DurationVar(&s.ControllerStartInterval.Duration,"controller-start-interval",s.ControllerStartInterval.Duration,"Interval between starting controller managers.")
fs.BoolVar(&s.EnableGarbageCollector,"enable-garbage-collector",s.EnableGarbageCollector,"Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver.")
fs.Int32Var(&s.ConcurrentGCSyncs,"concurrent-gc-syncs",s.ConcurrentGCSyncs,"The number of garbage collector workers that are allowed to sync concurrently.")
fs.Float32Var(&s.NodeEvictionRate,"node-eviction-rate",0.1,"Number of nodes per second on which pods are deleted in case of node failure when a zone is healthy (see --unhealthy-zone-threshold for definition of healthy/unhealthy). Zone refers to entire cluster in non-multizone clusters.")
fs.Float32Var(&s.SecondaryNodeEvictionRate,"secondary-node-eviction-rate",0.01,"Number of nodes per second on which pods are deleted in case of node failure when a zone is unhealthy (see --unhealthy-zone-threshold for definition of healthy/unhealthy). Zone refers to entire cluster in non-multizone clusters. This value is implicitly overridden to 0 if the cluster size is smaller than --large-cluster-size-threshold.")
fs.Int32Var(&s.LargeClusterSizeThreshold,"large-cluster-size-threshold",50,"Number of nodes from which NodeController treats the cluster as large for the eviction logic purposes. --secondary-node-eviction-rate is implicitly overridden to 0 for clusters this size or smaller.")
fs.Float32Var(&s.UnhealthyZoneThreshold,"unhealthy-zone-threshold",0.55,"Fraction of Nodes in a zone which needs to be not Ready (minimum 3) for zone to be treated as unhealthy. ")
fs.BoolVar(&s.DisableAttachDetachReconcilerSync,"disable-attach-detach-reconcile",false,"Disable volume attach detach reconciler sync. Disabling this may cause volumes to be mismatched with pods. Use wisely.")
fs.DurationVar(&s.ReconcilerSyncLoopPeriod.Duration,"attach-detach-reconcile-period",s.ReconcilerSyncLoopPeriod.Duration,"The reconciler sync wait time between volume attach detach. This duration must be larger than one second, and increasing this value from the default my allow for volume mismatches.")