Reference

Edit This Page

Feature Gates

This page contains an overview of the various feature gates an administrator can specify on different Kubernetes components.

Overview

Feature gates are a set of key=value pairs that describe alpha or experimental features. An administrator can use the --feature-gates command line flag on each component to turn a feature on or off. Each component supports a set of feature gates unique to that component. Use -h flag to see a full set of feature gates for all components.
To set feature gates for a component, such as kubelet, use the --feature-gates flag assigned to a list of feature pairs:

--feature-gates="...,DynamicKubeletConfig=true"

The following table is a summary of the feature gates that you can set on different Kubernetes components.

Feature Default Stage Since Until
Accelerators false Alpha 1.6 1.10
AdvancedAuditing false Alpha 1.7 1.7
AdvancedAuditing true Beta 1.8 1.11
AdvancedAuditing true GA 1.12 -
AffinityInAnnotations false Alpha 1.6 1.7
AllowExtTrafficLocalEndpoints false Beta 1.4 1.6
AllowExtTrafficLocalEndpoints true GA 1.7 -
APIListChunking false Alpha 1.8 1.8
APIListChunking true Beta 1.9
APIResponseCompression false Alpha 1.7
AppArmor true Beta 1.4
AttachVolumeLimit true Alpha 1.11 1.11
AttachVolumeLimit true Beta 1.12
BlockVolume false Alpha 1.9
BlockVolume true Beta 1.13 -
BoundServiceAccountTokenVolume false Alpha 1.13
CPUCFSQuotaPeriod false Alpha 1.12
CPUManager false Alpha 1.8 1.9
CPUManager true Beta 1.10
CRIContainerLogRotation false Alpha 1.10 1.10
CRIContainerLogRotation true Beta 1.11
CSIBlockVolume false Alpha 1.11
CSIDriverRegistry false Alpha 1.12
CSINodeInfo false Alpha 1.12
CSIPersistentVolume false Alpha 1.9 1.9
CSIPersistentVolume true Beta 1.10 1.12
CSIPersistentVolume true GA 1.13 -
CustomPodDNS false Alpha 1.9 1.9
CustomPodDNS true Beta 1.10
CustomResourceSubresources false Alpha 1.10 1.11
CustomResourceSubresources true Beta 1.11 -
CustomResourceValidation false Alpha 1.8 1.8
CustomResourceValidation true Beta 1.9
CustomResourceWebhookConversion false Alpha 1.13
DebugContainers false Alpha 1.10
DevicePlugins false Alpha 1.8 1.9
DevicePlugins true Beta 1.10
DryRun true Beta 1.13
DynamicAuditing false Alpha 1.13
DynamicKubeletConfig false Alpha 1.4 1.10
DynamicKubeletConfig true Beta 1.11
DynamicProvisioningScheduling false Alpha 1.11 1.11
DynamicVolumeProvisioning true Alpha 1.3 1.7
DynamicVolumeProvisioning true GA 1.8
EnableEquivalenceClassCache false Alpha 1.8
ExpandInUsePersistentVolumes false Alpha 1.11
ExpandPersistentVolumes false Alpha 1.8 1.10
ExpandPersistentVolumes true Beta 1.11
ExperimentalCriticalPodAnnotation false Alpha 1.5
ExperimentalHostUserNamespaceDefaulting false Beta 1.5
GCERegionalPersistentDisk true Beta 1.10 1.12
GCERegionalPersistentDisk true GA 1.13 -
HugePages false Alpha 1.8 1.9
HugePages true Beta 1.10
HyperVContainer false Alpha 1.10
Initializers false Alpha 1.7
KubeletConfigFile false Alpha 1.8 1.9
KubeletPluginsWatcher false Alpha 1.11 1.11
KubeletPluginsWatcher true Beta 1.12 1.12
KubeletPluginsWatcher true GA 1.13 -
KubeletPodResources false Alpha 1.13
LocalStorageCapacityIsolation false Alpha 1.7 1.9
LocalStorageCapacityIsolation true Beta 1.10
MountContainers false Alpha 1.9
MountPropagation false Alpha 1.8 1.9
MountPropagation true Beta 1.10 1.11
MountPropagation true GA 1.12
NodeLease false Alpha 1.12
PersistentLocalVolumes false Alpha 1.7 1.9
PersistentLocalVolumes true Beta 1.10
PodPriority false Alpha 1.8 1.10
PodPriority true Beta 1.11
PodReadinessGates false Alpha 1.11
PodReadinessGates true Beta 1.12
PodShareProcessNamespace false Alpha 1.10
PodShareProcessNamespace true Beta 1.12
ProcMountType false Alpha 1.12
PVCProtection false Alpha 1.9 1.9
ResourceLimitsPriorityFunction false Alpha 1.9
ResourceQuotaScopeSelectors false Alpha 1.11 1.11
ResourceQuotaScopeSelectors true Beta 1.12
RotateKubeletClientCertificate true Beta 1.7
RotateKubeletServerCertificate false Alpha 1.7 1.11
RotateKubeletServerCertificate true Beta 1.12
RunAsGroup false Alpha 1.10
RuntimeClass false Alpha 1.12
SCTPSupport false Alpha 1.12
ServiceNodeExclusion false Alpha 1.8
StorageObjectInUseProtection true Beta 1.10 1.10
StorageObjectInUseProtection true GA 1.11
StreamingProxyRedirects true Beta 1.5
SupportIPVSProxyMode false Alpha 1.8 1.8
SupportIPVSProxyMode false Beta 1.9 1.9
SupportIPVSProxyMode true Beta 1.10 1.10
SupportIPVSProxyMode true GA 1.11
SupportPodPidsLimit false Alpha 1.10
Sysctls true Beta 1.11
TaintBasedEvictions false Alpha 1.6 1.12
TaintBasedEvictions true Beta 1.13
TaintNodesByCondition false Alpha 1.8 1.11
TaintNodesByCondition true Beta 1.12
TokenRequest false Alpha 1.10 1.11
TokenRequest true Beta 1.12
TokenRequestProjection false Alpha 1.11 1.11
TokenRequestProjection true Beta 1.12
TTLAfterFinished false Alpha 1.12
VolumeScheduling false Alpha 1.9 1.9
VolumeScheduling true Beta 1.10 1.12
VolumeScheduling true GA 1.13
VolumeSubpathEnvExpansion false Alpha 1.11
VolumeSnapshotDataSource false Alpha 1.12 -
ScheduleDaemonSetPods false Alpha 1.11 1.11
ScheduleDaemonSetPods true Beta 1.12

Using a Feature

Feature Stages

A feature can be in Alpha, Beta or GA stage. An Alpha feature means:

A Beta feature means:

Note: Please do try Beta features and give feedback on them! After they exit beta, it may not be practical for us to make more changes.

A GA feature is also referred to as a stable feature. It means:

Feature Gates

Each feature gate is designed for enabling/disabling a specific feature:

Feedback