Skip to content

Commit e9ace31

Browse files
committed
Update feature gates for 1.22
This PR updates the feature gate status based on upstream implementation. The chanegs are listed below with links to upstream PRs merged: - BalanceAttacedNodeVolumes kubernetes/kubernetes#102443 - CSIMigrationvSphereComplete kubernetes/kubernetes#101272 - CSIServiceAccountToken kubernetes/kubernetes#103001 - DaemonSetUpdateSurge kubernetes/kubernetes#101742 - DisableCloudProviders kubernetes/kubernetes#100136 - IndexedJob kubernetes/kubernetes#101292 - LegacyNodeRoleBehavior kubernetes/kubernetes#100776 - NamespaceDefaultLabelName kubernetes/kubernetes#101342 - NetworkPolicyEndPort kubernetes/kubernetes#102834 - NodeDisruptionExclusion kubernetes/kubernetes#100776 - PodAffinityNamespaceSelector kubernetes/kubernetes#101496 - PodDeletionCost kubernetes/kubernetes#101080 - PreferNominatedNode kubernetes/kubernetes#102201 - ServiceLoadBalancerClass kubernetes/kubernetes#103129 - ServiceNodeExclusion kubernetes/kubernetes#100776 - ServiceTopology kubernetes/kubernetes#102412 - SizeMemoryBackedVoluems kubernetes/kubernetes#101048 - StatefulSetMinReadySeconds kubernetes/kubernetes#100842 - SuspendJob kubernetes/kubernetes#102022 - WindowsHostProcessContainers kubernetes/kubernetes#99576
1 parent 781547b commit e9ace31

File tree

1 file changed

+59
-24
lines changed

1 file changed

+59
-24
lines changed

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

+59-24
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ different Kubernetes components.
5858
| `AllowInsecureBackendProxy` | `true` | Beta | 1.17 | |
5959
| `AnyVolumeDataSource` | `false` | Alpha | 1.18 | |
6060
| `AppArmor` | `true` | Beta | 1.4 | |
61-
| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | |
6261
| `CPUManager` | `false` | Alpha | 1.8 | 1.9 |
6362
| `CPUManager` | `true` | Beta | 1.10 | |
6463
| `CSIInlineVolume` | `false` | Alpha | 1.15 | 1.15 |
@@ -81,9 +80,6 @@ different Kubernetes components.
8180
| `CSIMigrationOpenStack` | `true` | Beta | 1.18 | |
8281
| `CSIMigrationOpenStackComplete` | `false` | Alpha | 1.17 | |
8382
| `CSIMigrationvSphere` | `false` | Beta | 1.19 | |
84-
| `CSIMigrationvSphereComplete` | `false` | Beta | 1.19 | |
85-
| `CSIServiceAccountToken` | `false` | Alpha | 1.20 | 1.20 |
86-
| `CSIServiceAccountToken` | `true` | Beta | 1.21 | |
8783
| `CSIStorageCapacity` | `false` | Alpha | 1.19 | 1.20 |
8884
| `CSIStorageCapacity` | `true` | Beta | 1.21 | |
8985
| `CSIVolumeFSGroupPolicy` | `false` | Alpha | 1.19 | 1.19 |
@@ -92,12 +88,15 @@ different Kubernetes components.
9288
| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 |
9389
| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | |
9490
| `CustomCPUCFSQuotaPeriod` | `false` | Alpha | 1.12 | |
91+
| `DaemonSetUpdateSurge` | `false` | Alpha | 1.21 | 1.21 |
92+
| `DaemonSetUpdateSurge` | `true` | Beta | 1.22 | |
9593
| `DefaultPodTopologySpread` | `false` | Alpha | 1.19 | 1.19 |
9694
| `DefaultPodTopologySpread` | `true` | Beta | 1.20 | |
9795
| `DevicePlugins` | `false` | Alpha | 1.8 | 1.9 |
9896
| `DevicePlugins` | `true` | Beta | 1.10 | |
9997
| `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.19 |
10098
| `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.20 | |
99+
| `DisableCloudProviders` | `false` | Alpha | 1.22 | |
101100
| `DownwardAPIHugePages` | `false` | Alpha | 1.20 | 1.20 |
102101
| `DownwardAPIHugePages` | `false` | Beta | 1.21 | |
103102
| `DynamicKubeletConfig` | `false` | Alpha | 1.4 | 1.10 |
@@ -123,29 +122,30 @@ different Kubernetes components.
123122
| `HPAScaleToZero` | `false` | Alpha | 1.16 | |
124123
| `HugePageStorageMediumSize` | `false` | Alpha | 1.18 | 1.18 |
125124
| `HugePageStorageMediumSize` | `true` | Beta | 1.19 | |
126-
| `IndexedJob` | `false` | Alpha | 1.21 | |
125+
| `IndexedJob` | `false` | Alpha | 1.21 | 1.21 |
126+
| `IndexedJob` | `true` | Beta | 1.22 | |
127127
| `IngressClassNamespacedParams` | `false` | Alpha | 1.21 | |
128128
| `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 |
129129
| `IPv6DualStack` | `true` | Beta | 1.21 | |
130130
| `KubeletCredentialProviders` | `false` | Alpha | 1.20 | |
131-
| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 |
132-
| `LegacyNodeRoleBehavior` | `true` | Beta | 1.19 | 1.20 |
133131
| `LocalStorageCapacityIsolation` | `false` | Alpha | 1.7 | 1.9 |
134132
| `LocalStorageCapacityIsolation` | `true` | Beta | 1.10 | |
135133
| `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | |
136134
| `LogarithmicScaleDown` | `false` | Alpha | 1.21 | |
137135
| `KubeletPodResourcesGetAllocatable` | `false` | Alpha | 1.21 | |
138136
| `MixedProtocolLBService` | `false` | Alpha | 1.20 | |
139-
| `NamespaceDefaultLabelName` | `true` | Beta | 1.21 | |
140-
| `NetworkPolicyEndPort` | `false` | Alpha | 1.21 | |
141-
| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | 1.18 |
142-
| `NodeDisruptionExclusion` | `true` | Beta | 1.19 | 1.20 |
137+
| `NetworkPolicyEndPort` | `false` | Alpha | 1.21 | 1.21 |
138+
| `NetworkPolicyEndPort` | `true` | Beta | 1.22 | |
143139
| `NonPreemptingPriority` | `false` | Alpha | 1.15 | 1.18 |
144140
| `NonPreemptingPriority` | `true` | Beta | 1.19 | |
145-
| `PodDeletionCost` | `false` | Alpha | 1.21 | |
146-
| `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | |
141+
| `PodDeletionCost` | `false` | Alpha | 1.21 | 1.21 |
142+
| `PodDeletionCost` | `true` | Beta | 1.22 | |
143+
| `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | 1.21 |
144+
| `PodAffinityNamespaceSelector` | `true` | Beta | 1.22 | |
147145
| `PodOverhead` | `false` | Alpha | 1.16 | 1.17 |
148146
| `PodOverhead` | `true` | Beta | 1.18 | |
147+
| `PreferNominatedNode` | `false` | Alpha | 1.21 | 1.21 |
148+
| `PreferNominatedNode` | `true` | Beta | 1.22 | |
149149
| `ProbeTerminationGracePeriod` | `false` | Alpha | 1.21 | |
150150
| `ProcMountType` | `false` | Alpha | 1.12 | |
151151
| `QOSReserved` | `false` | Alpha | 1.11 | |
@@ -154,18 +154,19 @@ different Kubernetes components.
154154
| `RemoveSelfLink` | `true` | Beta | 1.20 | |
155155
| `RotateKubeletServerCertificate` | `false` | Alpha | 1.7 | 1.11 |
156156
| `RotateKubeletServerCertificate` | `true` | Beta | 1.12 | |
157-
| `RunAsGroup` | `true` | Beta | 1.14 | |
157+
| `SeccompDefault` | `false` | Alpha | 1.22 | |
158158
| `ServiceInternalTrafficPolicy` | `false` | Alpha | 1.21 | |
159159
| `ServiceLBNodePortControl` | `false` | Alpha | 1.20 | |
160-
| `ServiceLoadBalancerClass` | `false` | Alpha | 1.21 | |
161-
| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 |
162-
| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 |
163-
| `ServiceTopology` | `false` | Alpha | 1.17 | |
164-
| `SizeMemoryBackedVolumes` | `false` | Alpha | 1.20 | |
160+
| `ServiceLoadBalancerClass` | `false` | Alpha | 1.21 | 1.21 |
161+
| `ServiceLoadBalancerClass` | `true` | Beta | 1.22 | |
162+
| `SizeMemoryBackedVolumes` | `false` | Alpha | 1.20 | 1.21 |
163+
| `SizeMemoryBackedVolumes` | `true` | Beta | 1.22 | |
164+
| `StatefulSetMinReadySeconds` | `false` | Alpha | 1.22 | |
165165
| `StorageVersionAPI` | `false` | Alpha | 1.20 | |
166166
| `StorageVersionHash` | `false` | Alpha | 1.14 | 1.14 |
167167
| `StorageVersionHash` | `true` | Beta | 1.15 | |
168-
| `SuspendJob` | `false` | Alpha | 1.21 | |
168+
| `SuspendJob` | `false` | Alpha | 1.21 | 1.21 |
169+
| `SuspendJob` | `true` | Beta | 1.22 | |
169170
| `TTLAfterFinished` | `false` | Alpha | 1.12 | 1.20 |
170171
| `TTLAfterFinished` | `true` | Beta | 1.21 | |
171172
| `TopologyAwareHints` | `false` | Alpha | 1.21 | |
@@ -177,6 +178,7 @@ different Kubernetes components.
177178
| `WinOverlay` | `true` | Beta | 1.20 | |
178179
| `WindowsEndpointSliceProxying` | `false` | Alpha | 1.19 | 1.20 |
179180
| `WindowsEndpointSliceProxying` | `true` | Beta | 1.21 | |
181+
| `WindowsHostProcessContainers` | `false` | Alpha | 1.22 | |
180182
{{< /table >}}
181183

182184
### Feature gates for graduated or deprecated features
@@ -197,11 +199,13 @@ different Kubernetes components.
197199
| `AttachVolumeLimit` | `false` | Alpha | 1.11 | 1.11 |
198200
| `AttachVolumeLimit` | `true` | Beta | 1.12 | 1.16 |
199201
| `AttachVolumeLimit` | `true` | GA | 1.17 | - |
202+
| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | 1.21 |
203+
| `BalanceAttachedNodeVolumes` | `false` | Deprecated | 1.22 | |
200204
| `BlockVolume` | `false` | Alpha | 1.9 | 1.12 |
201205
| `BlockVolume` | `true` | Beta | 1.13 | 1.17 |
202206
| `BlockVolume` | `true` | GA | 1.18 | - |
203207
| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | 1.20 |
204-
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.22 |
208+
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.21 |
205209
| `BoundServiceAccountTokenVolume` | `true` | GA | 1.22 | - |
206210
| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 |
207211
| `CRIContainerLogRotation` | `true` | Beta | 1.11 | 1.20 |
@@ -212,12 +216,17 @@ different Kubernetes components.
212216
| `CSIDriverRegistry` | `false` | Alpha | 1.12 | 1.13 |
213217
| `CSIDriverRegistry` | `true` | Beta | 1.14 | 1.17 |
214218
| `CSIDriverRegistry` | `true` | GA | 1.18 | |
219+
| `CSIMigrationvSphereComplete` | `false` | Beta | 1.19 | 1.21 |
220+
| `CSIMigrationvSphereComplete` | `false` | Deprecated | 1.22 | - |
215221
| `CSINodeInfo` | `false` | Alpha | 1.12 | 1.13 |
216222
| `CSINodeInfo` | `true` | Beta | 1.14 | 1.16 |
217223
| `CSINodeInfo` | `true` | GA | 1.17 | |
218224
| `CSIPersistentVolume` | `false` | Alpha | 1.9 | 1.9 |
219225
| `CSIPersistentVolume` | `true` | Beta | 1.10 | 1.12 |
220226
| `CSIPersistentVolume` | `true` | GA | 1.13 | - |
227+
| `CSIServiceAccountToken` | `false` | Alpha | 1.20 | 1.20 |
228+
| `CSIServiceAccountToken` | `true` | Beta | 1.21 | 1.21 |
229+
| `CSIServiceAccountToken` | `true` | GA | 1.22 | |
221230
| `CronJobControllerV2` | `false` | Alpha | 1.20 | 1.20 |
222231
| `CronJobControllerV2` | `true` | Beta | 1.21 | 1.21 |
223232
| `CronJobControllerV2` | `true` | GA | 1.22 | - |
@@ -284,16 +293,22 @@ different Kubernetes components.
284293
| `KubeletPodResources` | `false` | Alpha | 1.13 | 1.14 |
285294
| `KubeletPodResources` | `true` | Beta | 1.15 | |
286295
| `KubeletPodResources` | `true` | GA | 1.20 | |
296+
| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 |
297+
| `LegacyNodeRoleBehavior` | `true` | Beta | 1.19 | 1.20 |
287298
| `LegacyNodeRoleBehavior` | `false` | GA | 1.21 | - |
288299
| `MountContainers` | `false` | Alpha | 1.9 | 1.16 |
289300
| `MountContainers` | `false` | Deprecated | 1.17 | - |
290301
| `MountPropagation` | `false` | Alpha | 1.8 | 1.9 |
291302
| `MountPropagation` | `true` | Beta | 1.10 | 1.11 |
292303
| `MountPropagation` | `true` | GA | 1.12 | - |
304+
| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | 1.18 |
305+
| `NodeDisruptionExclusion` | `true` | Beta | 1.19 | 1.20 |
293306
| `NodeDisruptionExclusion` | `true` | GA | 1.21 | - |
294307
| `NodeLease` | `false` | Alpha | 1.12 | 1.13 |
295308
| `NodeLease` | `true` | Beta | 1.14 | 1.16 |
296309
| `NodeLease` | `true` | GA | 1.17 | - |
310+
| `NamespaceDefaultLabelName` | `true` | Beta | 1.21 | 1.21 |
311+
| `NamespaceDefaultLabelName` | `true` | GA | 1.22 | - |
297312
| `PVCProtection` | `false` | Alpha | 1.9 | 1.9 |
298313
| `PVCProtection` | - | Deprecated | 1.10 | - |
299314
| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 |
@@ -323,15 +338,17 @@ different Kubernetes components.
323338
| `RootCAConfigMap` | `true` | GA | 1.21 | - |
324339
| `RotateKubeletClientCertificate` | `true` | Beta | 1.8 | 1.18 |
325340
| `RotateKubeletClientCertificate` | `true` | GA | 1.19 | - |
341+
| `RunAsGroup` | `true` | Beta | 1.14 | 1.20 |
342+
| `RunAsGroup` | `true` | GA | 1.21 | - |
326343
| `RuntimeClass` | `false` | Alpha | 1.12 | 1.13 |
327344
| `RuntimeClass` | `true` | Beta | 1.14 | 1.19 |
328345
| `RuntimeClass` | `true` | GA | 1.20 | - |
329-
| `ScheduleDaemonSetPods` | `false` | Alpha | 1.11 | 1.11 |
330-
| `ScheduleDaemonSetPods` | `true` | Beta | 1.12 | 1.16 |
331-
| `ScheduleDaemonSetPods` | `true` | GA | 1.17 | - |
332346
| `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 |
333347
| `SCTPSupport` | `true` | Beta | 1.19 | 1.19 |
334348
| `SCTPSupport` | `true` | GA | 1.20 | - |
349+
| `ScheduleDaemonSetPods` | `false` | Alpha | 1.11 | 1.11 |
350+
| `ScheduleDaemonSetPods` | `true` | Beta | 1.12 | 1.16 |
351+
| `ScheduleDaemonSetPods` | `true` | GA | 1.17 | - |
335352
| `ServerSideApply` | `false` | Alpha | 1.14 | 1.15 |
336353
| `ServerSideApply` | `true` | Beta | 1.16 | 1.21 |
337354
| `ServerSideApply` | `true` | GA | 1.22 | - |
@@ -344,7 +361,11 @@ different Kubernetes components.
344361
| `ServiceLoadBalancerFinalizer` | `false` | Alpha | 1.15 | 1.15 |
345362
| `ServiceLoadBalancerFinalizer` | `true` | Beta | 1.16 | 1.16 |
346363
| `ServiceLoadBalancerFinalizer` | `true` | GA | 1.17 | - |
364+
| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 |
365+
| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 |
347366
| `ServiceNodeExclusion` | `true` | GA | 1.21 | - |
367+
| `ServiceTopology` | `false` | Alpha | 1.17 | 1.19 |
368+
| `ServiceTopology` | `false` | Deprecated | 1.20 | - |
348369
| `SetHostnameAsFQDN` | `false` | Alpha | 1.19 | 1.19 |
349370
| `SetHostnameAsFQDN` | `true` | Beta | 1.20 | 1.21 |
350371
| `SetHostnameAsFQDN` | `true` | GA | 1.22 | - |
@@ -591,12 +612,17 @@ Each feature gate is designed for enabling/disabling a specific feature:
591612
[CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
592613
- `CustomResourceWebhookConversion`: Enable webhook-based conversion
593614
on resources created from [CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
615+
- `DaemonSetUpdateSurge`: Enables the DaemonSet workloads to maintain
616+
availability during update per node.
594617
- `DefaultPodTopologySpread`: Enables the use of `PodTopologySpread` scheduling plugin to do
595618
[default spreading](/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints).
596619
- `DevicePlugins`: Enable the [device-plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)
597620
based resource provisioning on nodes.
598621
- `DisableAcceleratorUsageMetrics`:
599622
[Disable accelerator metrics collected by the kubelet](/docs/concepts/cluster-administration/system-metrics/#disable-accelerator-metrics).
623+
- `DisableCloudProviders`: Disables any functionality in `kube-apiserver`,
624+
`kube-controller-manager` and `kubelet` related to the `--cloud-provider`
625+
component flag.
600626
- `DownwardAPIHugePages`: Enables usage of hugepages in
601627
[downward API](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information).
602628
- `DryRun`: Enable server-side [dry run](/docs/reference/using-api/api-concepts/#dry-run) requests
@@ -743,6 +769,9 @@ Each feature gate is designed for enabling/disabling a specific feature:
743769
- `PodShareProcessNamespace`: Enable the setting of `shareProcessNamespace` in a Pod for sharing
744770
a single process namespace between containers running in a pod. More details can be found in
745771
[Share Process Namespace between Containers in a Pod](/docs/tasks/configure-pod-container/share-process-namespace/).
772+
- `PreferNominatedNode`: This flag tells the scheduler whether the nominated
773+
nodes will be checked first before looping through all the other nodes in
774+
the cluster.
746775
- `ProbeTerminationGracePeriod`: Enable [setting probe-level
747776
`terminationGracePeriodSeconds`](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#probe-level-terminationgraceperiodseconds)
748777
on pods. See the [enhancement proposal](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period) for more details.
@@ -782,6 +811,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
782811
instead of the DaemonSet controller.
783812
- `SCTPSupport`: Enables the _SCTP_ `protocol` value in Pod, Service,
784813
Endpoints, EndpointSlice, and NetworkPolicy definitions.
814+
- `SeccompDefault`: If true, automatically set the `seccompProfile` of Pods
815+
and Containers to "Default".
785816
- `ServerSideApply`: Enables the [Sever Side Apply (SSA)](/docs/reference/using-api/server-side-apply/)
786817
feature on the API Server.
787818
- `ServiceAccountIssuerDiscovery`: Enable OIDC discovery endpoints (issuer and
@@ -809,6 +840,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
809840
- `StartupProbe`: Enable the
810841
[startup](/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)
811842
probe in the kubelet.
843+
- `StatefulSetMinReadySeconds`: Allows `minReadySeconds` to be respected by
844+
the StatefulSet controller.
812845
- `StorageObjectInUseProtection`: Postpone the deletion of PersistentVolume or
813846
PersistentVolumeClaim objects if they are still being used.
814847
- `StorageVersionAPI`: Enable the
@@ -878,6 +911,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
878911
will use EndpointSlices as the primary data source instead of Endpoints,
879912
enabling scalability and performance improvements. See
880913
[Enabling Endpoint Slices](/docs/tasks/administer-cluster/enabling-endpointslices/).
914+
- `WindowsHostProcessContainers`: Enables the support for `HostProcess`
915+
containers on Windows nodes.
881916

882917

883918
## {{% heading "whatsnext" %}}

0 commit comments

Comments
 (0)