Skip to content

Commit d51f775

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 48c2535 commit d51f775

File tree

1 file changed

+54
-23
lines changed

1 file changed

+54
-23
lines changed

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

+54-23
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,30 +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 | |
141+
| `PodDeletionCost` | `false` | Alpha | 1.21 | 1.21 |
142+
| `PodDeletionCost` | `true` | Beta | 1.22 | |
146143
| `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | 1.21 |
147144
| `PodAffinityNamespaceSelector` | `true` | Beta | 1.22 | |
148145
| `PodOverhead` | `false` | Alpha | 1.16 | 1.17 |
149146
| `PodOverhead` | `true` | Beta | 1.18 | |
147+
| `PreferNominatedNode` | `false` | Alpha | 1.21 | 1.21 |
148+
| `PreferNominatedNode` | `true` | Beta | 1.22 | |
150149
| `ProbeTerminationGracePeriod` | `false` | Alpha | 1.21 | |
151150
| `ProcMountType` | `false` | Alpha | 1.12 | |
152151
| `QOSReserved` | `false` | Alpha | 1.11 | |
@@ -155,19 +154,19 @@ different Kubernetes components.
155154
| `RemoveSelfLink` | `true` | Beta | 1.20 | |
156155
| `RotateKubeletServerCertificate` | `false` | Alpha | 1.7 | 1.11 |
157156
| `RotateKubeletServerCertificate` | `true` | Beta | 1.12 | |
158-
| `RunAsGroup` | `true` | Beta | 1.14 | |
159157
| `SeccompDefault` | `false` | Alpha | 1.22 | |
160158
| `ServiceInternalTrafficPolicy` | `false` | Alpha | 1.21 | |
161159
| `ServiceLBNodePortControl` | `false` | Alpha | 1.20 | |
162-
| `ServiceLoadBalancerClass` | `false` | Alpha | 1.21 | |
163-
| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 |
164-
| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 |
165-
| `ServiceTopology` | `false` | Alpha | 1.17 | |
166-
| `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 | |
167165
| `StorageVersionAPI` | `false` | Alpha | 1.20 | |
168166
| `StorageVersionHash` | `false` | Alpha | 1.14 | 1.14 |
169167
| `StorageVersionHash` | `true` | Beta | 1.15 | |
170-
| `SuspendJob` | `false` | Alpha | 1.21 | |
168+
| `SuspendJob` | `false` | Alpha | 1.21 | 1.21 |
169+
| `SuspendJob` | `true` | Beta | 1.22 | |
171170
| `TTLAfterFinished` | `false` | Alpha | 1.12 | 1.20 |
172171
| `TTLAfterFinished` | `true` | Beta | 1.21 | |
173172
| `TopologyAwareHints` | `false` | Alpha | 1.21 | |
@@ -179,6 +178,7 @@ different Kubernetes components.
179178
| `WinOverlay` | `true` | Beta | 1.20 | |
180179
| `WindowsEndpointSliceProxying` | `false` | Alpha | 1.19 | 1.20 |
181180
| `WindowsEndpointSliceProxying` | `true` | Beta | 1.21 | |
181+
| `WindowsHostProcessContainers` | `false` | Alpha | 1.22 | |
182182
{{< /table >}}
183183

184184
### Feature gates for graduated or deprecated features
@@ -199,11 +199,13 @@ different Kubernetes components.
199199
| `AttachVolumeLimit` | `false` | Alpha | 1.11 | 1.11 |
200200
| `AttachVolumeLimit` | `true` | Beta | 1.12 | 1.16 |
201201
| `AttachVolumeLimit` | `true` | GA | 1.17 | - |
202+
| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | 1.21 |
203+
| `BalanceAttachedNodeVolumes` | `false` | Deprecated | 1.22 | |
202204
| `BlockVolume` | `false` | Alpha | 1.9 | 1.12 |
203205
| `BlockVolume` | `true` | Beta | 1.13 | 1.17 |
204206
| `BlockVolume` | `true` | GA | 1.18 | - |
205207
| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | 1.20 |
206-
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.22 |
208+
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.21 |
207209
| `BoundServiceAccountTokenVolume` | `true` | GA | 1.22 | - |
208210
| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 |
209211
| `CRIContainerLogRotation` | `true` | Beta | 1.11 | 1.20 |
@@ -214,12 +216,17 @@ different Kubernetes components.
214216
| `CSIDriverRegistry` | `false` | Alpha | 1.12 | 1.13 |
215217
| `CSIDriverRegistry` | `true` | Beta | 1.14 | 1.17 |
216218
| `CSIDriverRegistry` | `true` | GA | 1.18 | |
219+
| `CSIMigrationvSphereComplete` | `false` | Beta | 1.19 | 1.21 |
220+
| `CSIMigrationvSphereComplete` | `false` | Deprecated | 1.22 | - |
217221
| `CSINodeInfo` | `false` | Alpha | 1.12 | 1.13 |
218222
| `CSINodeInfo` | `true` | Beta | 1.14 | 1.16 |
219223
| `CSINodeInfo` | `true` | GA | 1.17 | |
220224
| `CSIPersistentVolume` | `false` | Alpha | 1.9 | 1.9 |
221225
| `CSIPersistentVolume` | `true` | Beta | 1.10 | 1.12 |
222226
| `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 | |
223230
| `CronJobControllerV2` | `false` | Alpha | 1.20 | 1.20 |
224231
| `CronJobControllerV2` | `true` | Beta | 1.21 | 1.21 |
225232
| `CronJobControllerV2` | `true` | GA | 1.22 | - |
@@ -286,16 +293,22 @@ different Kubernetes components.
286293
| `KubeletPodResources` | `false` | Alpha | 1.13 | 1.14 |
287294
| `KubeletPodResources` | `true` | Beta | 1.15 | |
288295
| `KubeletPodResources` | `true` | GA | 1.20 | |
296+
| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 |
297+
| `LegacyNodeRoleBehavior` | `true` | Beta | 1.19 | 1.20 |
289298
| `LegacyNodeRoleBehavior` | `false` | GA | 1.21 | - |
290299
| `MountContainers` | `false` | Alpha | 1.9 | 1.16 |
291300
| `MountContainers` | `false` | Deprecated | 1.17 | - |
292301
| `MountPropagation` | `false` | Alpha | 1.8 | 1.9 |
293302
| `MountPropagation` | `true` | Beta | 1.10 | 1.11 |
294303
| `MountPropagation` | `true` | GA | 1.12 | - |
304+
| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | 1.18 |
305+
| `NodeDisruptionExclusion` | `true` | Beta | 1.19 | 1.20 |
295306
| `NodeDisruptionExclusion` | `true` | GA | 1.21 | - |
296307
| `NodeLease` | `false` | Alpha | 1.12 | 1.13 |
297308
| `NodeLease` | `true` | Beta | 1.14 | 1.16 |
298309
| `NodeLease` | `true` | GA | 1.17 | - |
310+
| `NamespaceDefaultLabelName` | `true` | Beta | 1.21 | 1.21 |
311+
| `NamespaceDefaultLabelName` | `true` | GA | 1.22 | - |
299312
| `PVCProtection` | `false` | Alpha | 1.9 | 1.9 |
300313
| `PVCProtection` | - | Deprecated | 1.10 | - |
301314
| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 |
@@ -325,15 +338,17 @@ different Kubernetes components.
325338
| `RootCAConfigMap` | `true` | GA | 1.21 | - |
326339
| `RotateKubeletClientCertificate` | `true` | Beta | 1.8 | 1.18 |
327340
| `RotateKubeletClientCertificate` | `true` | GA | 1.19 | - |
341+
| `RunAsGroup` | `true` | Beta | 1.14 | 1.20 |
342+
| `RunAsGroup` | `true` | GA | 1.21 | - |
328343
| `RuntimeClass` | `false` | Alpha | 1.12 | 1.13 |
329344
| `RuntimeClass` | `true` | Beta | 1.14 | 1.19 |
330345
| `RuntimeClass` | `true` | GA | 1.20 | - |
331-
| `ScheduleDaemonSetPods` | `false` | Alpha | 1.11 | 1.11 |
332-
| `ScheduleDaemonSetPods` | `true` | Beta | 1.12 | 1.16 |
333-
| `ScheduleDaemonSetPods` | `true` | GA | 1.17 | - |
334346
| `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 |
335347
| `SCTPSupport` | `true` | Beta | 1.19 | 1.19 |
336348
| `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 | - |
337352
| `ServerSideApply` | `false` | Alpha | 1.14 | 1.15 |
338353
| `ServerSideApply` | `true` | Beta | 1.16 | 1.21 |
339354
| `ServerSideApply` | `true` | GA | 1.22 | - |
@@ -346,7 +361,11 @@ different Kubernetes components.
346361
| `ServiceLoadBalancerFinalizer` | `false` | Alpha | 1.15 | 1.15 |
347362
| `ServiceLoadBalancerFinalizer` | `true` | Beta | 1.16 | 1.16 |
348363
| `ServiceLoadBalancerFinalizer` | `true` | GA | 1.17 | - |
364+
| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 |
365+
| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 |
349366
| `ServiceNodeExclusion` | `true` | GA | 1.21 | - |
367+
| `ServiceTopology` | `false` | Alpha | 1.17 | 1.19 |
368+
| `ServiceTopology` | `false` | Deprecated | 1.20 | - |
350369
| `SetHostnameAsFQDN` | `false` | Alpha | 1.19 | 1.19 |
351370
| `SetHostnameAsFQDN` | `true` | Beta | 1.20 | 1.21 |
352371
| `SetHostnameAsFQDN` | `true` | GA | 1.22 | - |
@@ -593,12 +612,17 @@ Each feature gate is designed for enabling/disabling a specific feature:
593612
[CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
594613
- `CustomResourceWebhookConversion`: Enable webhook-based conversion
595614
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.
596617
- `DefaultPodTopologySpread`: Enables the use of `PodTopologySpread` scheduling plugin to do
597618
[default spreading](/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints).
598619
- `DevicePlugins`: Enable the [device-plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)
599620
based resource provisioning on nodes.
600621
- `DisableAcceleratorUsageMetrics`:
601622
[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.
602626
- `DownwardAPIHugePages`: Enables usage of hugepages in
603627
[downward API](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information).
604628
- `DryRun`: Enable server-side [dry run](/docs/reference/using-api/api-concepts/#dry-run) requests
@@ -745,6 +769,9 @@ Each feature gate is designed for enabling/disabling a specific feature:
745769
- `PodShareProcessNamespace`: Enable the setting of `shareProcessNamespace` in a Pod for sharing
746770
a single process namespace between containers running in a pod. More details can be found in
747771
[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.
748775
- `ProbeTerminationGracePeriod`: Enable [setting probe-level
749776
`terminationGracePeriodSeconds`](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#probe-level-terminationgraceperiodseconds)
750777
on pods. See the [enhancement proposal](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period) for more details.
@@ -813,6 +840,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
813840
- `StartupProbe`: Enable the
814841
[startup](/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)
815842
probe in the kubelet.
843+
- `StatefulSetMinReadySeconds`: Allows `minReadySeconds` to be respected by
844+
the StatefulSet controller.
816845
- `StorageObjectInUseProtection`: Postpone the deletion of PersistentVolume or
817846
PersistentVolumeClaim objects if they are still being used.
818847
- `StorageVersionAPI`: Enable the
@@ -882,6 +911,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
882911
will use EndpointSlices as the primary data source instead of Endpoints,
883912
enabling scalability and performance improvements. See
884913
[Enabling Endpoint Slices](/docs/tasks/administer-cluster/enabling-endpointslices/).
914+
- `WindowsHostProcessContainers`: Enables the support for `HostProcess`
915+
containers on Windows nodes.
885916

886917

887918
## {{% heading "whatsnext" %}}

0 commit comments

Comments
 (0)