Skip to content

Commit e93b13e

Browse files
authored
Merge pull request #36835 from tengqm/update-feature-gates
Update feature gates page
2 parents 2e29915 + 24aab3d commit e93b13e

File tree

1 file changed

+47
-32
lines changed

1 file changed

+47
-32
lines changed

content/en/docs/reference/command-line-tools-reference/feature-gates.md

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ different Kubernetes components.
6464
| `AnyVolumeDataSource` | `false` | Alpha | 1.18 | 1.23 |
6565
| `AnyVolumeDataSource` | `true` | Beta | 1.24 | |
6666
| `AppArmor` | `true` | Beta | 1.4 | |
67-
| `ContainerCheckpoint` | `false` | Alpha | 1.25 | |
6867
| `CPUManager` | `false` | Alpha | 1.8 | 1.9 |
6968
| `CPUManager` | `true` | Beta | 1.10 | |
7069
| `CPUManagerPolicyAlphaOptions` | `false` | Alpha | 1.23 | |
@@ -82,6 +81,7 @@ different Kubernetes components.
8281
| `CSIMigrationvSphere` | `true` | Beta | 1.25 | |
8382
| `CSINodeExpandSecret` | `false` | Alpha | 1.25 | |
8483
| `CSIVolumeHealth` | `false` | Alpha | 1.21 | |
84+
| `ContainerCheckpoint` | `false` | Alpha | 1.25 | |
8585
| `ContextualLogging` | `false` | Alpha | 1.24 | |
8686
| `CustomCPUCFSQuotaPeriod` | `false` | Alpha | 1.12 | |
8787
| `CustomResourceValidationExpressions` | `false` | Alpha | 1.23 | 1.24 |
@@ -90,8 +90,6 @@ different Kubernetes components.
9090
| `DelegateFSGroupToCSIDriver` | `true` | Beta | 1.23 | |
9191
| `DevicePlugins` | `false` | Alpha | 1.8 | 1.9 |
9292
| `DevicePlugins` | `true` | Beta | 1.10 | |
93-
| `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.19 |
94-
| `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.20 | |
9593
| `DisableCloudProviders` | `false` | Alpha | 1.22 | |
9694
| `DisableKubeletCloudCredentialProviders` | `false` | Alpha | 1.23 | |
9795
| `DownwardAPIHugePages` | `false` | Alpha | 1.20 | 1.20 |
@@ -101,15 +99,15 @@ different Kubernetes components.
10199
| `EndpointSliceTerminatingCondition` | `true` | Beta | 1.22 | |
102100
| `ExpandedDNSConfig` | `false` | Alpha | 1.22 | |
103101
| `ExperimentalHostUserNamespaceDefaulting` | `false` | Beta | 1.5 | |
102+
| `GRPCContainerProbe` | `false` | Alpha | 1.23 | 1.23 |
103+
| `GRPCContainerProbe` | `true` | Beta | 1.24 | |
104104
| `GracefulNodeShutdown` | `false` | Alpha | 1.20 | 1.20 |
105105
| `GracefulNodeShutdown` | `true` | Beta | 1.21 | |
106106
| `GracefulNodeShutdownBasedOnPodPriority` | `false` | Alpha | 1.23 | 1.23 |
107107
| `GracefulNodeShutdownBasedOnPodPriority` | `true` | Beta | 1.24 | |
108-
| `GRPCContainerProbe` | `false` | Alpha | 1.23 | 1.23 |
109-
| `GRPCContainerProbe` | `true` | Beta | 1.24 | |
110-
| `HonorPVReclaimPolicy` | `false` | Alpha | 1.23 | |
111108
| `HPAContainerMetrics` | `false` | Alpha | 1.20 | |
112109
| `HPAScaleToZero` | `false` | Alpha | 1.16 | |
110+
| `HonorPVReclaimPolicy` | `false` | Alpha | 1.23 | |
113111
| `InTreePluginAWSUnregister` | `false` | Alpha | 1.21 | |
114112
| `InTreePluginAzureDiskUnregister` | `false` | Alpha | 1.21 | |
115113
| `InTreePluginAzureFileUnregister` | `false` | Alpha | 1.21 | |
@@ -118,12 +116,13 @@ different Kubernetes components.
118116
| `InTreePluginPortworxUnregister` | `false` | Alpha | 1.23 | |
119117
| `InTreePluginRBDUnregister` | `false` | Alpha | 1.23 | |
120118
| `InTreePluginvSphereUnregister` | `false` | Alpha | 1.21 | |
119+
| `IPTablesOwnershipCleanup` | `false` | Alpha | 1.25 | |
121120
| `JobMutableNodeSchedulingDirectives` | `true` | Beta | 1.23 | |
121+
| `JobPodFailurePolicy` | `false` | Alpha | 1.25 | - |
122122
| `JobReadyPods` | `false` | Alpha | 1.23 | 1.23 |
123123
| `JobReadyPods` | `true` | Beta | 1.24 | |
124124
| `JobTrackingWithFinalizers` | `false` | Alpha | 1.22 | 1.22 |
125-
| `JobTrackingWithFinalizers` | `true` | Beta | 1.23 | 1.23 |
126-
| `JobTrackingWithFinalizers` | `false` | Beta | 1.24 | |
125+
| `JobTrackingWithFinalizers` | `true` | Beta | 1.23 | |
127126
| `KubeletCredentialProviders` | `false` | Alpha | 1.20 | 1.23 |
128127
| `KubeletCredentialProviders` | `true` | Beta | 1.24 | |
129128
| `KubeletInUserNamespace` | `false` | Alpha | 1.22 | |
@@ -132,7 +131,9 @@ different Kubernetes components.
132131
| `KubeletPodResourcesGetAllocatable` | `false` | Alpha | 1.21 | 1.22 |
133132
| `KubeletPodResourcesGetAllocatable` | `true` | Beta | 1.23 | |
134133
| `KubeletTracing` | `false` | Alpha | 1.25 | |
135-
| `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | |
134+
| `LegacyServiceAccountTokenNoAutoGeneration` | `true` | Beta | 1.24 | |
135+
| `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | 1.24 |
136+
| `LocalStorageCapacityIsolationFSQuotaMonitoring` | `true` | Beta | 1.25 | |
136137
| `LogarithmicScaleDown` | `false` | Alpha | 1.21 | 1.21 |
137138
| `LogarithmicScaleDown` | `true` | Beta | 1.22 | |
138139
| `MatchLabelKeysInPodTopologySpread` | `false` | Alpha | 1.25 | |
@@ -141,23 +142,23 @@ different Kubernetes components.
141142
| `MemoryManager` | `true` | Beta | 1.22 | |
142143
| `MemoryQoS` | `false` | Alpha | 1.22 | |
143144
| `MinDomainsInPodTopologySpread` | `false` | Alpha | 1.24 | 1.24 |
144-
| `MinDomainsInPodTopologySpread` | `true` | Beta | 1.25 | |
145+
| `MinDomainsInPodTopologySpread` | `false` | Beta | 1.25 | |
145146
| `MixedProtocolLBService` | `false` | Alpha | 1.20 | 1.23 |
146147
| `MixedProtocolLBService` | `true` | Beta | 1.24 | |
148+
| `MultiCIDRRangeAllocator` | `false` | Alpha | 1.25 | |
147149
| `NetworkPolicyStatus` | `false` | Alpha | 1.24 | |
148150
| `NodeInclusionPolicyInPodTopologySpread` | `false` | Alpha | 1.25 | |
149-
| `NodeSwap` | `false` | Alpha | 1.22 | |
150151
| `NodeOutOfServiceVolumeDetach` | `false` | Alpha | 1.24 | |
152+
| `NodeSwap` | `false` | Alpha | 1.22 | |
151153
| `OpenAPIEnums` | `false` | Alpha | 1.23 | 1.23 |
152154
| `OpenAPIEnums` | `true` | Beta | 1.24 | |
153155
| `OpenAPIV3` | `false` | Alpha | 1.23 | 1.23 |
154156
| `OpenAPIV3` | `true` | Beta | 1.24 | |
155157
| `PodAndContainerStatsFromCRI` | `false` | Alpha | 1.23 | |
156158
| `PodDeletionCost` | `false` | Alpha | 1.21 | 1.21 |
157159
| `PodDeletionCost` | `true` | Beta | 1.22 | |
160+
| `PodDisruptionConditions` | `false` | Alpha | 1.25 | - |
158161
| `PodHasNetworkCondition` | `false` | Alpha | 1.25 | |
159-
| `PodSecurity` | `false` | Alpha | 1.22 | 1.22 |
160-
| `PodSecurity` | `true` | Beta | 1.23 | |
161162
| `ProbeTerminationGracePeriod` | `false` | Alpha | 1.21 | 1.21 |
162163
| `ProbeTerminationGracePeriod` | `false` | Beta | 1.22 | 1.24 |
163164
| `ProbeTerminationGracePeriod` | `true` | Beta | 1.25 | |
@@ -168,16 +169,18 @@ different Kubernetes components.
168169
| `RecoverVolumeExpansionFailure` | `false` | Alpha | 1.23 | |
169170
| `RemainingItemCount` | `false` | Alpha | 1.15 | 1.15 |
170171
| `RemainingItemCount` | `true` | Beta | 1.16 | |
172+
| `RetroactiveDefaultStorageClass` | `false` | Alpha | 1.25 | |
171173
| `RotateKubeletServerCertificate` | `false` | Alpha | 1.7 | 1.11 |
172174
| `RotateKubeletServerCertificate` | `true` | Beta | 1.12 | |
175+
| `SELinuxMountReadWriteOncePod` | `false` | Alpha | 1.25 | |
173176
| `SeccompDefault` | `false` | Alpha | 1.22 | 1.24 |
174177
| `SeccompDefault` | `true` | Beta | 1.25 | |
175178
| `ServerSideFieldValidation` | `false` | Alpha | 1.23 | 1.24 |
176179
| `ServerSideFieldValidation` | `true` | Beta | 1.25 | |
177-
| `ServiceInternalTrafficPolicy` | `false` | Alpha | 1.21 | 1.21 |
178-
| `ServiceInternalTrafficPolicy` | `true` | Beta | 1.22 | |
179180
| `ServiceIPStaticSubrange` | `false` | Alpha | 1.24 | 1.24 |
180181
| `ServiceIPStaticSubrange` | `true` | Beta | 1.25 | |
182+
| `ServiceInternalTrafficPolicy` | `false` | Alpha | 1.21 | 1.21 |
183+
| `ServiceInternalTrafficPolicy` | `true` | Beta | 1.22 | |
181184
| `SizeMemoryBackedVolumes` | `false` | Alpha | 1.20 | 1.21 |
182185
| `SizeMemoryBackedVolumes` | `true` | Beta | 1.22 | |
183186
| `StatefulSetAutoDeletePVC` | `false` | Alpha | 1.22 | |
@@ -189,6 +192,7 @@ different Kubernetes components.
189192
| `TopologyAwareHints` | `true` | Beta | 1.24 | |
190193
| `TopologyManager` | `false` | Alpha | 1.16 | 1.17 |
191194
| `TopologyManager` | `true` | Beta | 1.18 | |
195+
| `UserNamespacesStatelessPodsSupport` | `false` | Alpha | 1.25 | |
192196
| `VolumeCapacityPriority` | `false` | Alpha | 1.21 | - |
193197
| `WinDSR` | `false` | Alpha | 1.14 | |
194198
| `WinOverlay` | `false` | Alpha | 1.14 | 1.19 |
@@ -223,12 +227,6 @@ different Kubernetes components.
223227
| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | 1.20 |
224228
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.21 |
225229
| `BoundServiceAccountTokenVolume` | `true` | GA | 1.22 | - |
226-
| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 |
227-
| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | 1.22 |
228-
| `ConfigurableFSGroupPolicy` | `true` | GA | 1.23 | - |
229-
| `ControllerManagerLeaderMigration` | `false` | Alpha | 1.21 | 1.21 |
230-
| `ControllerManagerLeaderMigration` | `true` | Beta | 1.22 | 1.23 |
231-
| `ControllerManagerLeaderMigration` | `true` | GA | 1.24 | - |
232230
| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 |
233231
| `CRIContainerLogRotation` | `true` | Beta | 1.11 | 1.20 |
234232
| `CRIContainerLogRotation` | `true` | GA | 1.21 | - |
@@ -288,6 +286,12 @@ different Kubernetes components.
288286
| `CSIVolumeFSGroupPolicy` | `true` | GA | 1.23 | |
289287
| `CSRDuration` | `true` | Beta | 1.22 | 1.23 |
290288
| `CSRDuration` | `true` | GA | 1.24 | - |
289+
| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 |
290+
| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | 1.22 |
291+
| `ConfigurableFSGroupPolicy` | `true` | GA | 1.23 | - |
292+
| `ControllerManagerLeaderMigration` | `false` | Alpha | 1.21 | 1.21 |
293+
| `ControllerManagerLeaderMigration` | `true` | Beta | 1.22 | 1.23 |
294+
| `ControllerManagerLeaderMigration` | `true` | GA | 1.24 | - |
291295
| `CronJobControllerV2` | `false` | Alpha | 1.20 | 1.20 |
292296
| `CronJobControllerV2` | `true` | Beta | 1.21 | 1.21 |
293297
| `CronJobControllerV2` | `true` | GA | 1.22 | - |
@@ -317,6 +321,9 @@ different Kubernetes components.
317321
| `DefaultPodTopologySpread` | `false` | Alpha | 1.19 | 1.19 |
318322
| `DefaultPodTopologySpread` | `true` | Beta | 1.20 | 1.23 |
319323
| `DefaultPodTopologySpread` | `true` | GA | 1.24 | - |
324+
| `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.19 |
325+
| `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.20 | 1.24 |
326+
| `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.25 |- |
320327
| `DryRun` | `false` | Alpha | 1.12 | 1.12 |
321328
| `DryRun` | `true` | Beta | 1.13 | 1.18 |
322329
| `DryRun` | `true` | GA | 1.19 | - |
@@ -376,12 +383,12 @@ different Kubernetes components.
376383
| `HugePages` | `true` | GA | 1.14 | - |
377384
| `HyperVContainer` | `false` | Alpha | 1.10 | 1.19 |
378385
| `HyperVContainer` | `false` | Deprecated | 1.20 | - |
379-
| `IdentifyPodOS` | `false` | Alpha | 1.23 | 1.23 |
380-
| `IdentifyPodOS` | `true` | Beta | 1.24 | 1.24 |
381-
| `IdentifyPodOS` | `true` | GA | 1.25 | - |
382386
| `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 |
383387
| `IPv6DualStack` | `true` | Beta | 1.21 | 1.22 |
384388
| `IPv6DualStack` | `true` | GA | 1.23 | - |
389+
| `IdentifyPodOS` | `false` | Alpha | 1.23 | 1.23 |
390+
| `IdentifyPodOS` | `true` | Beta | 1.24 | 1.24 |
391+
| `IdentifyPodOS` | `true` | GA | 1.25 | - |
385392
| `ImmutableEphemeralVolumes` | `false` | Alpha | 1.18 | 1.18 |
386393
| `ImmutableEphemeralVolumes` | `true` | Beta | 1.19 | 1.20 |
387394
| `ImmutableEphemeralVolumes` | `true` | GA | 1.21 | |
@@ -393,7 +400,6 @@ different Kubernetes components.
393400
| `IngressClassNamespacedParams` | `true` | GA | 1.23 | - |
394401
| `Initializers` | `false` | Alpha | 1.7 | 1.13 |
395402
| `Initializers` | - | Deprecated | 1.14 | - |
396-
| `JobPodFailurePolicy` | `false` | Alpha | 1.25 | - |
397403
| `KubeletConfigFile` | `false` | Alpha | 1.8 | 1.9 |
398404
| `KubeletConfigFile` | - | Deprecated | 1.10 | - |
399405
| `KubeletPluginsWatcher` | `false` | Alpha | 1.11 | 1.11 |
@@ -402,7 +408,6 @@ different Kubernetes components.
402408
| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 |
403409
| `LegacyNodeRoleBehavior` | `true` | Beta | 1.19 | 1.20 |
404410
| `LegacyNodeRoleBehavior` | `false` | GA | 1.21 | - |
405-
| `LegacyServiceAccountTokenNoAutoGeneration` | `true` | Beta | 1.24 | |
406411
| `LocalStorageCapacityIsolation` | `false` | Alpha | 1.7 | 1.9 |
407412
| `LocalStorageCapacityIsolation` | `true` | Beta | 1.10 | 1.24 |
408413
| `LocalStorageCapacityIsolation` | `true` | GA | 1.25 | - |
@@ -436,7 +441,6 @@ different Kubernetes components.
436441
| `PodDisruptionBudget` | `false` | Alpha | 1.3 | 1.4 |
437442
| `PodDisruptionBudget` | `true` | Beta | 1.5 | 1.20 |
438443
| `PodDisruptionBudget` | `true` | GA | 1.21 | - |
439-
| `PodDisruptionConditions` | `false` | Alpha | 1.25 | - |
440444
| `PodOverhead` | `false` | Alpha | 1.16 | 1.17 |
441445
| `PodOverhead` | `true` | Beta | 1.18 | 1.23 |
442446
| `PodOverhead` | `true` | GA | 1.24 | - |
@@ -446,6 +450,9 @@ different Kubernetes components.
446450
| `PodReadinessGates` | `false` | Alpha | 1.11 | 1.11 |
447451
| `PodReadinessGates` | `true` | Beta | 1.12 | 1.13 |
448452
| `PodReadinessGates` | `true` | GA | 1.14 | - |
453+
| `PodSecurity` | `false` | Alpha | 1.22 | 1.22 |
454+
| `PodSecurity` | `true` | Beta | 1.23 | 1.24 |
455+
| `PodSecurity` | `true` | GA | 1.25 | |
449456
| `PodShareProcessNamespace` | `false` | Alpha | 1.10 | 1.11 |
450457
| `PodShareProcessNamespace` | `true` | Beta | 1.12 | 1.16 |
451458
| `PodShareProcessNamespace` | `true` | GA | 1.17 | - |
@@ -940,6 +947,9 @@ Each feature gate is designed for enabling/disabling a specific feature:
940947
- `HyperVContainer`: Enable
941948
[Hyper-V isolation](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container)
942949
for Windows containers.
950+
- `IPv6DualStack`: Enable [dual stack](/docs/concepts/services-networking/dual-stack/)
951+
support for IPv6.
952+
- `IPTablesOwnershipCleanup`: This causes kubelet to no longer create legacy IPTables rules.
943953
- `IdentifyPodOS`: Allows the Pod OS field to be specified. This helps in identifying
944954
the OS of the pod authoritatively during the API server admission time.
945955
In Kubernetes {{< skew currentVersion >}}, the allowed values for the `pod.spec.os.name`
@@ -969,11 +979,10 @@ Each feature gate is designed for enabling/disabling a specific feature:
969979
and volume controllers.
970980
- `InTreePluginvSphereUnregister`: Stops registering the vSphere in-tree plugin in kubelet
971981
and volume controllers.
972-
- `IPv6DualStack`: Enable [dual stack](/docs/concepts/services-networking/dual-stack/)
973-
support for IPv6.
974982
- `JobMutableNodeSchedulingDirectives`: Allows updating node scheduling directives in
975983
the pod template of [Job](/docs/concepts/workloads/controllers/job).
976-
- `JobPodFailurePolicy`: Allow users to specify handling of pod failures based on container exit codes and pod conditions.
984+
- `JobPodFailurePolicy`: Allow users to specify handling of pod failures based on container
985+
exit codes and pod conditions.
977986
- `JobReadyPods`: Enables tracking the number of Pods that have a `Ready`
978987
[condition](/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions).
979988
The count of `Ready` pods is recorded in the
@@ -1041,6 +1050,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
10411050
- `MountContainers`: Enable using utility containers on host as the volume mounter.
10421051
- `MountPropagation`: Enable sharing volume mounted by one container to other containers or pods.
10431052
For more details, please see [mount propagation](/docs/concepts/storage/volumes/#mount-propagation).
1053+
- `MultiCIDRRangeAllocator`: Enables the MultiCIDR range allocator.
10441054
- `NamespaceDefaultLabelName`: Configure the API Server to set an immutable
10451055
{{< glossary_tooltip text="label" term_id="label" >}} `kubernetes.io/metadata.name`
10461056
on all namespaces, containing the namespace name.
@@ -1124,6 +1134,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
11241134
the input Pod's cpu and memory limits. The intent is to break ties between
11251135
nodes with same scores.
11261136
- `ResourceQuotaScopeSelectors`: Enable resource quota scope selectors.
1137+
- `RetroactiveDefaultStorageClass`: Allow assigning StorageClass to unbound PVCs retroactively.
11271138
- `RootCAConfigMap`: Configure the `kube-controller-manager` to publish a
11281139
{{< glossary_tooltip text="ConfigMap" term_id="configmap" >}} named `kube-root-ca.crt`
11291140
to every namespace. This ConfigMap contains a CA bundle used for verifying connections
@@ -1140,10 +1151,13 @@ Each feature gate is designed for enabling/disabling a specific feature:
11401151
processes of containers.
11411152
- `RuntimeClass`: Enable the [RuntimeClass](/docs/concepts/containers/runtime-class/) feature
11421153
for selecting container runtime configurations.
1143-
- `ScheduleDaemonSetPods`: Enable DaemonSet Pods to be scheduled by the default scheduler
1144-
instead of the DaemonSet controller.
11451154
- `SCTPSupport`: Enables the _SCTP_ `protocol` value in Pod, Service,
11461155
Endpoints, EndpointSlice, and NetworkPolicy definitions.
1156+
- `SELinuxMountReadWriteOncePod`: Speed up container startup by mounting volumes with the correct
1157+
SELinux label instead of changing each file on the volumes recursively. The initial implementation
1158+
focused on ReadWriteOncePod volumes.
1159+
- `ScheduleDaemonSetPods`: Enable DaemonSet Pods to be scheduled by the default scheduler
1160+
instead of the DaemonSet controller.
11471161
- `SeccompDefault`: Enables the use of `RuntimeDefault` as the default seccomp profile
11481162
for all workloads.
11491163
The seccomp profile is specified in the `securityContext` of a Pod and/or a Container.
@@ -1233,6 +1247,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
12331247
- `TopologyManager`: Enable a mechanism to coordinate fine-grained hardware resource
12341248
assignments for different components in Kubernetes. See
12351249
[Control Topology Management Policies on a node](/docs/tasks/administer-cluster/topology-manager/).
1250+
- `UserNamespacesStatelessPodsSupport`: Enable user namespace support for stateless Pods.
12361251
- `ValidateProxyRedirects`: This flag controls whether the API server should
12371252
validate that redirects are only followed to the same host. Only used if the
12381253
`StreamingProxyRedirects` flag is enabled.

0 commit comments

Comments
 (0)