fs.DurationVar(&s.SyncFrequency.Duration,"sync-frequency",s.SyncFrequency.Duration,"Max period between synchronizing running containers and config")
fs.DurationVar(&s.FileCheckFrequency.Duration,"file-check-frequency",s.FileCheckFrequency.Duration,"Duration between checking config files for new data")
fs.DurationVar(&s.HTTPCheckFrequency.Duration,"http-check-frequency",s.HTTPCheckFrequency.Duration,"Duration between checking http for new data")
fs.StringVar(&s.ManifestURL,"manifest-url",s.ManifestURL,"URL for accessing the container manifest")
fs.StringVar(&s.ManifestURLHeader,"manifest-url-header",s.ManifestURLHeader,"HTTP header to use when accessing the manifest URL, with the key separated from the value with a ':', as in 'key:value'")
fs.BoolVar(&s.EnableServer,"enable-server",s.EnableServer,"Enable the Kubelet's server")
fs.UintVar(&s.Port,"port",s.Port,"The port for the Kubelet to serve on.")
fs.UintVar(&s.ReadOnlyPort,"read-only-port",s.ReadOnlyPort,"The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable)")
fs.StringVar(&s.CertDirectory,"cert-dir",s.CertDirectory,"The directory where the TLS certs are located (by default /var/run/kubernetes). "+
"If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored.")
fs.StringVar(&s.HostnameOverride,"hostname-override",s.HostnameOverride,"If non-empty, will use this string as identification instead of the actual hostname.")
fs.StringVar(&s.PodInfraContainerImage,"pod-infra-container-image",s.PodInfraContainerImage,"The image whose network/ipc namespaces containers in each pod will use.")
fs.StringVar(&s.DockerEndpoint,"docker-endpoint",s.DockerEndpoint,"If non-empty, use this for the docker endpoint to communicate with")
fs.StringVar(&s.RootDirectory,"root-dir",s.RootDirectory,"Directory path for managing kubelet files (volume mounts,etc).")
fs.BoolVar(&s.AllowPrivileged,"allow-privileged",s.AllowPrivileged,"If true, allow containers to request privileged mode. [default=false]")
fs.StringVar(&s.HostNetworkSources,"host-network-sources",s.HostNetworkSources,"Comma-separated list of sources from which the Kubelet allows pods to use of host network. [default=\"*\"]")
fs.StringVar(&s.HostPIDSources,"host-pid-sources",s.HostPIDSources,"Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. [default=\"*\"]")
fs.StringVar(&s.HostIPCSources,"host-ipc-sources",s.HostIPCSources,"Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. [default=\"*\"]")
fs.Float64Var(&s.RegistryPullQPS,"registry-qps",s.RegistryPullQPS,"If > 0, limit registry pull QPS to this value. If 0, unlimited. [default=5.0]")
fs.Int32Var(&s.RegistryBurst,"registry-burst",s.RegistryBurst,"Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0")
fs.Int32Var(&s.EventBurst,"event-burst",s.EventBurst,"Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0")
fs.BoolVar(&s.RunOnce,"runonce",s.RunOnce,"If true, exit after spawning pods from local manifests or remote urls. Exclusive with --api-servers, and --enable-server")
fs.BoolVar(&s.EnableDebuggingHandlers,"enable-debugging-handlers",s.EnableDebuggingHandlers,"Enables server endpoints for log collection and local running of containers and commands")
fs.DurationVar(&s.MinimumGCAge.Duration,"minimum-container-ttl-duration",s.MinimumGCAge.Duration,"Minimum age for a finished container before it is garbage collected. Examples: '300ms', '10s' or '2h45m'")
fs.Int32Var(&s.MaxPerPodContainerCount,"maximum-dead-containers-per-container",s.MaxPerPodContainerCount,"Maximum number of old instances to retain per container. Each container takes up some disk space. Default: 2.")
fs.Int32Var(&s.MaxContainerCount,"maximum-dead-containers",s.MaxContainerCount,"Maximum number of old instances of containers to retain globally. Each container takes up some disk space. Default: 100.")
fs.Var(&s.AuthPath,"auth-path","Path to .kubernetes_auth file, specifying how to authenticate to API server.")
fs.MarkDeprecated("auth-path","will be removed in a future version")
fs.Var(&s.KubeConfig,"kubeconfig","Path to a kubeconfig file, specifying how to authenticate to API server (the master location is set by the api-servers flag).")
fs.UintVar(&s.CAdvisorPort,"cadvisor-port",s.CAdvisorPort,"The port of the localhost cAdvisor endpoint")
fs.Var(componentconfig.IPVar{Val:&s.HealthzBindAddress},"healthz-bind-address","The IP address for the healthz server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces)")
fs.StringSliceVar(&s.APIServerList,"api-servers",[]string{},"List of Kubernetes API servers for publishing events, and reading pods and services. (ip:port), comma separated.")
fs.BoolVar(&s.RegisterNode,"register-node",s.RegisterNode,"Register the node with the apiserver (defaults to true if --api-servers is set)")
fs.StringVar(&s.ClusterDomain,"cluster-domain",s.ClusterDomain,"Domain for this cluster. If set, kubelet will configure all containers to search this domain in addition to the host's search domains")
fs.StringVar(&s.MasterServiceNamespace,"master-service-namespace",s.MasterServiceNamespace,"The namespace from which the kubernetes master services should be injected into pods")
fs.StringVar(&s.ClusterDNS,"cluster-dns",s.ClusterDNS,"IP address for a cluster DNS server. This value is used for containers' DNS server in case of Pods with \"dnsPolicy=ClusterFirst\"")
fs.DurationVar(&s.StreamingConnectionIdleTimeout.Duration,"streaming-connection-idle-timeout",s.StreamingConnectionIdleTimeout.Duration,"Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m'")
fs.DurationVar(&s.NodeStatusUpdateFrequency.Duration,"node-status-update-frequency",s.NodeStatusUpdateFrequency.Duration,"Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s")
fs.Var(&bindableNodeLabels,"node-labels","<Warning: Alpha feature> Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ','.")
fs.DurationVar(&s.ImageMinimumGCAge.Duration,"minimum-image-ttl-duration",s.ImageMinimumGCAge.Duration,"Minimum age for a unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'. Default: '2m'")
fs.Int32Var(&s.ImageGCHighThresholdPercent,"image-gc-high-threshold",s.ImageGCHighThresholdPercent,"The percent of disk usage after which image garbage collection is always run. Default: 90%")
fs.Int32Var(&s.ImageGCLowThresholdPercent,"image-gc-low-threshold",s.ImageGCLowThresholdPercent,"The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Default: 80%")
fs.Int32Var(&s.LowDiskSpaceThresholdMB,"low-diskspace-threshold-mb",s.LowDiskSpaceThresholdMB,"The absolute free disk space, in MB, to maintain. When disk space falls below this threshold, new pods would be rejected. Default: 256")
fs.DurationVar(&s.VolumeStatsAggPeriod.Duration,"volume-stats-agg-period",s.VolumeStatsAggPeriod.Duration,"Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0. Default: '1m'")
fs.StringVar(&s.NetworkPluginName,"network-plugin",s.NetworkPluginName,"<Warning: Alpha feature> The name of the network plugin to be invoked for various events in kubelet/pod lifecycle")
fs.StringVar(&s.NetworkPluginDir,"network-plugin-dir",s.NetworkPluginDir,"<Warning: Alpha feature> The full path of the directory in which to search for network plugins")
fs.StringVar(&s.VolumePluginDir,"volume-plugin-dir",s.VolumePluginDir,"<Warning: Alpha feature> The full path of the directory in which to search for additional third party volume plugins")
fs.StringVar(&s.CloudProvider,"cloud-provider",s.CloudProvider,"The provider for cloud services. Empty string for no provider.")
fs.StringVar(&s.CloudConfigFile,"cloud-config",s.CloudConfigFile,"The path to the cloud provider configuration file. Empty string for no configuration file.")
fs.StringVar(&s.KubeletCgroups,"resource-container",s.KubeletCgroups,"Optional absolute name of the resource-only container to create and run the Kubelet in.")
fs.MarkDeprecated("resource-container","Use --kubelet-cgroups instead. Will be removed in a future version.")
fs.StringVar(&s.KubeletCgroups,"kubelet-cgroups",s.KubeletCgroups,"Optional absolute name of cgroups to create and run the Kubelet in.")
fs.StringVar(&s.SystemCgroups,"system-container",s.SystemCgroups,"Optional resource-only container in which to place all non-kernel processes that are not already in a container. Empty for no container. Rolling back the flag requires a reboot. (Default: \"\").")
fs.MarkDeprecated("system-container","Use --system-cgroups instead. Will be removed in a future version.")
fs.StringVar(&s.SystemCgroups,"system-cgroups",s.SystemCgroups,"Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under `/`. Empty for no container. Rolling back the flag requires a reboot. (Default: \"\").")
fs.StringVar(&s.CgroupRoot,"cgroup-root",s.CgroupRoot,"Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default.")
fs.StringVar(&s.ContainerRuntime,"container-runtime",s.ContainerRuntime,"The container runtime to use. Possible values: 'docker', 'rkt'. Default: 'docker'.")
fs.DurationVar(&s.RuntimeRequestTimeout.Duration,"runtime-request-timeout",s.RuntimeRequestTimeout.Duration,"Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. Default: 2m0s")
fs.StringVar(&s.RktPath,"rkt-path",s.RktPath,"Path of rkt binary. Leave empty to use the first rkt in $PATH. Only used if --container-runtime='rkt'.")
fs.StringVar(&s.RktAPIEndpoint,"rkt-api-endpoint",s.RktAPIEndpoint,"The endpoint of the rkt API service to communicate with. Only used if --container-runtime='rkt'.")
fs.StringVar(&s.RktStage1Image,"rkt-stage1-image",s.RktStage1Image,"image to use as stage1. Local paths and http/https URLs are supported. If empty, the 'stage1.aci' in the same directory as '--rkt-path' will be used.")
fs.MarkDeprecated("rkt-stage1-image","Will be removed in a future version. The default stage1 image will be specified by the rkt configurations, see https://github.com/coreos/rkt/blob/master/Documentation/configuration.md for more details.")
fs.StringVar(&s.HairpinMode,"hairpin-mode",s.HairpinMode,"How should the kubelet setup hairpin NAT. This allows endpoints of a Service to loadbalance back to themselves if they should try to access their own Service. Valid values are \"promiscuous-bridge\", \"hairpin-veth\" and \"none\".")
fs.Int32Var(&s.NvidiaGPUs,"experimental-nvidia-gpus",s.NvidiaGPUs,"Number of NVIDIA GPU devices on this node. Only 0 (default) and 1 are currently supported.")
fs.StringVar(&s.DockerExecHandlerName,"docker-exec-handler",s.DockerExecHandlerName,"Handler to use when executing a command in a container. Valid values are 'native' and 'nsenter'. Defaults to 'native'.")
fs.StringVar(&s.PodCIDR,"pod-cidr","","The CIDR to use for pod IP addresses, only used in standalone mode. In cluster mode, this is obtained from the master.")
fs.StringVar(&s.ResolverConfig,"resolv-conf",s.ResolverConfig,"Resolver configuration file used as the basis for the container DNS resolution configuration.")
fs.BoolVar(&s.EnableControllerAttachDetach,"enable-controller-attach-detach",s.EnableControllerAttachDetach,"Enables the Attach/Detach controller to manage attachment/detachment of volumes scheduled to this node, and disables kubelet from executing any attach/detach operations")
// Flags intended for testing, not recommended used in production environments.
fs.BoolVar(&s.ReallyCrashForTesting,"really-crash-for-testing",s.ReallyCrashForTesting,"If true, when panics occur crash. Intended for testing.")
fs.Float64Var(&s.ChaosChance,"chaos-chance",s.ChaosChance,"If > 0.0, introduce random client errors and latency. Intended for testing. [default=0.0]")
fs.BoolVar(&s.Containerized,"containerized",s.Containerized,"Experimental support for running kubelet in a container. Intended for testing. [default=false]")
fs.Uint64Var(&s.MaxOpenFiles,"max-open-files",s.MaxOpenFiles,"Number of files that can be opened by Kubelet process. [default=1000000]")
fs.BoolVar(&s.ReconcileCIDR,"reconcile-cidr",s.ReconcileCIDR,"Reconcile node CIDR with the CIDR specified by the API server. No-op if register-node or configure-cbr0 is false. [default=true]")
fs.Var(&s.SystemReserved,"system-reserved","A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none]")
fs.Var(&s.KubeReserved,"kube-reserved","A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://releases.k8s.io/HEAD/docs/user-guide/compute-resources.md for more detail. [default=none]")
fs.BoolVar(&s.RegisterSchedulable,"register-schedulable",s.RegisterSchedulable,"Register the node as schedulable. No-op if register-node is false. [default=true]")
fs.BoolVar(&s.SerializeImagePulls,"serialize-image-pulls",s.SerializeImagePulls,"Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. [default=true]")
fs.BoolVar(&s.ExperimentalFlannelOverlay,"experimental-flannel-overlay",s.ExperimentalFlannelOverlay,"Experimental support for starting the kubelet with the default overlay network (flannel). Assumes flanneld is already running in client mode. [default=false]")
fs.DurationVar(&s.OutOfDiskTransitionFrequency.Duration,"outofdisk-transition-frequency",s.OutOfDiskTransitionFrequency.Duration,"Duration for which the kubelet has to wait before transitioning out of out-of-disk node condition status. Default: 5m0s")
fs.StringVar(&s.NodeIP,"node-ip",s.NodeIP,"IP address of the node. If set, kubelet will use this IP address for the node")
fs.StringVar(&s.EvictionHard,"eviction-hard",s.EvictionHard,"A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction.")
fs.StringVar(&s.EvictionSoft,"eviction-soft",s.EvictionSoft,"A set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a pod eviction.")
fs.StringVar(&s.EvictionSoftGracePeriod,"eviction-soft-grace-period",s.EvictionSoftGracePeriod,"A set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction.")
fs.DurationVar(&s.EvictionPressureTransitionPeriod.Duration,"eviction-pressure-transition-period",s.EvictionPressureTransitionPeriod.Duration,"Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.")
fs.Int32Var(&s.EvictionMaxPodGracePeriod,"eviction-max-pod-grace-period",s.EvictionMaxPodGracePeriod,"Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. If negative, defer to pod specified value.")
fs.Int32Var(&s.PodsPerCore,"pods-per-core",s.PodsPerCore,"Number of Pods per core that can run on this Kubelet. The total number of Pods on this Kubelet cannot exceed max-pods, so max-pods will be used if this calculation results in a larger number of Pods allowed on the Kubelet. A value of 0 disables this limit.")