Skip to content

Commit 993cc7b

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 98ac1b4 commit 993cc7b

File tree

1 file changed

+57
-23
lines changed

1 file changed

+57
-23
lines changed

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

+57-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,18 +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 | |
157+
| `SeccompDefault` | `false` | Alpha | 1.22 | |
159158
| `ServiceInternalTrafficPolicy` | `false` | Alpha | 1.21 | |
160159
| `ServiceLBNodePortControl` | `false` | Alpha | 1.20 | |
161-
| `ServiceLoadBalancerClass` | `false` | Alpha | 1.21 | |
162-
| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 |
163-
| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 |
164-
| `ServiceTopology` | `false` | Alpha | 1.17 | |
165-
| `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 | |
166165
| `StorageVersionAPI` | `false` | Alpha | 1.20 | |
167166
| `StorageVersionHash` | `false` | Alpha | 1.14 | 1.14 |
168167
| `StorageVersionHash` | `true` | Beta | 1.15 | |
169-
| `SuspendJob` | `false` | Alpha | 1.21 | |
168+
| `SuspendJob` | `false` | Alpha | 1.21 | 1.21 |
169+
| `SuspendJob` | `true` | Beta | 1.22 | |
170170
| `TTLAfterFinished` | `false` | Alpha | 1.12 | 1.20 |
171171
| `TTLAfterFinished` | `true` | Beta | 1.21 | |
172172
| `TopologyAwareHints` | `false` | Alpha | 1.21 | |
@@ -178,6 +178,7 @@ different Kubernetes components.
178178
| `WinOverlay` | `true` | Beta | 1.20 | |
179179
| `WindowsEndpointSliceProxying` | `false` | Alpha | 1.19 | 1.20 |
180180
| `WindowsEndpointSliceProxying` | `true` | Beta | 1.21 | |
181+
| `WindowsHostProcessContainers` | `false` | Alpha | 1.22 | |
181182
{{< /table >}}
182183

183184
### Feature gates for graduated or deprecated features
@@ -198,11 +199,13 @@ different Kubernetes components.
198199
| `AttachVolumeLimit` | `false` | Alpha | 1.11 | 1.11 |
199200
| `AttachVolumeLimit` | `true` | Beta | 1.12 | 1.16 |
200201
| `AttachVolumeLimit` | `true` | GA | 1.17 | - |
202+
| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | 1.21 |
203+
| `BalanceAttachedNodeVolumes` | `false` | Deprecated | 1.22 | |
201204
| `BlockVolume` | `false` | Alpha | 1.9 | 1.12 |
202205
| `BlockVolume` | `true` | Beta | 1.13 | 1.17 |
203206
| `BlockVolume` | `true` | GA | 1.18 | - |
204207
| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | 1.20 |
205-
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.22 |
208+
| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.21 |
206209
| `BoundServiceAccountTokenVolume` | `true` | GA | 1.22 | - |
207210
| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 |
208211
| `CRIContainerLogRotation` | `true` | Beta | 1.11 | 1.20 |
@@ -213,12 +216,17 @@ different Kubernetes components.
213216
| `CSIDriverRegistry` | `false` | Alpha | 1.12 | 1.13 |
214217
| `CSIDriverRegistry` | `true` | Beta | 1.14 | 1.17 |
215218
| `CSIDriverRegistry` | `true` | GA | 1.18 | |
219+
| `CSIMigrationvSphereComplete` | `false` | Beta | 1.19 | 1.21 |
220+
| `CSIMigrationvSphereComplete` | `false` | Deprecated | 1.22 | - |
216221
| `CSINodeInfo` | `false` | Alpha | 1.12 | 1.13 |
217222
| `CSINodeInfo` | `true` | Beta | 1.14 | 1.16 |
218223
| `CSINodeInfo` | `true` | GA | 1.17 | |
219224
| `CSIPersistentVolume` | `false` | Alpha | 1.9 | 1.9 |
220225
| `CSIPersistentVolume` | `true` | Beta | 1.10 | 1.12 |
221226
| `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 | |
222230
| `CronJobControllerV2` | `false` | Alpha | 1.20 | 1.20 |
223231
| `CronJobControllerV2` | `true` | Beta | 1.21 | 1.21 |
224232
| `CronJobControllerV2` | `true` | GA | 1.22 | - |
@@ -285,16 +293,22 @@ different Kubernetes components.
285293
| `KubeletPodResources` | `false` | Alpha | 1.13 | 1.14 |
286294
| `KubeletPodResources` | `true` | Beta | 1.15 | |
287295
| `KubeletPodResources` | `true` | GA | 1.20 | |
296+
| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 |
297+
| `LegacyNodeRoleBehavior` | `true` | Beta | 1.19 | 1.20 |
288298
| `LegacyNodeRoleBehavior` | `false` | GA | 1.21 | - |
289299
| `MountContainers` | `false` | Alpha | 1.9 | 1.16 |
290300
| `MountContainers` | `false` | Deprecated | 1.17 | - |
291301
| `MountPropagation` | `false` | Alpha | 1.8 | 1.9 |
292302
| `MountPropagation` | `true` | Beta | 1.10 | 1.11 |
293303
| `MountPropagation` | `true` | GA | 1.12 | - |
304+
| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | 1.18 |
305+
| `NodeDisruptionExclusion` | `true` | Beta | 1.19 | 1.20 |
294306
| `NodeDisruptionExclusion` | `true` | GA | 1.21 | - |
295307
| `NodeLease` | `false` | Alpha | 1.12 | 1.13 |
296308
| `NodeLease` | `true` | Beta | 1.14 | 1.16 |
297309
| `NodeLease` | `true` | GA | 1.17 | - |
310+
| `NamespaceDefaultLabelName` | `true` | Beta | 1.21 | 1.21 |
311+
| `NamespaceDefaultLabelName` | `true` | GA | 1.22 | - |
298312
| `PVCProtection` | `false` | Alpha | 1.9 | 1.9 |
299313
| `PVCProtection` | - | Deprecated | 1.10 | - |
300314
| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 |
@@ -324,15 +338,17 @@ different Kubernetes components.
324338
| `RootCAConfigMap` | `true` | GA | 1.21 | - |
325339
| `RotateKubeletClientCertificate` | `true` | Beta | 1.8 | 1.18 |
326340
| `RotateKubeletClientCertificate` | `true` | GA | 1.19 | - |
341+
| `RunAsGroup` | `true` | Beta | 1.14 | 1.20 |
342+
| `RunAsGroup` | `true` | GA | 1.21 | - |
327343
| `RuntimeClass` | `false` | Alpha | 1.12 | 1.13 |
328344
| `RuntimeClass` | `true` | Beta | 1.14 | 1.19 |
329345
| `RuntimeClass` | `true` | GA | 1.20 | - |
330-
| `ScheduleDaemonSetPods` | `false` | Alpha | 1.11 | 1.11 |
331-
| `ScheduleDaemonSetPods` | `true` | Beta | 1.12 | 1.16 |
332-
| `ScheduleDaemonSetPods` | `true` | GA | 1.17 | - |
333346
| `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 |
334347
| `SCTPSupport` | `true` | Beta | 1.19 | 1.19 |
335348
| `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 | - |
336352
| `ServerSideApply` | `false` | Alpha | 1.14 | 1.15 |
337353
| `ServerSideApply` | `true` | Beta | 1.16 | 1.21 |
338354
| `ServerSideApply` | `true` | GA | 1.22 | - |
@@ -345,7 +361,11 @@ different Kubernetes components.
345361
| `ServiceLoadBalancerFinalizer` | `false` | Alpha | 1.15 | 1.15 |
346362
| `ServiceLoadBalancerFinalizer` | `true` | Beta | 1.16 | 1.16 |
347363
| `ServiceLoadBalancerFinalizer` | `true` | GA | 1.17 | - |
364+
| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 |
365+
| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 |
348366
| `ServiceNodeExclusion` | `true` | GA | 1.21 | - |
367+
| `ServiceTopology` | `false` | Alpha | 1.17 | 1.19 |
368+
| `ServiceTopology` | `false` | Deprecated | 1.20 | - |
349369
| `SetHostnameAsFQDN` | `false` | Alpha | 1.19 | 1.19 |
350370
| `SetHostnameAsFQDN` | `true` | Beta | 1.20 | 1.21 |
351371
| `SetHostnameAsFQDN` | `true` | GA | 1.22 | - |
@@ -592,12 +612,17 @@ Each feature gate is designed for enabling/disabling a specific feature:
592612
[CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
593613
- `CustomResourceWebhookConversion`: Enable webhook-based conversion
594614
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.
595617
- `DefaultPodTopologySpread`: Enables the use of `PodTopologySpread` scheduling plugin to do
596618
[default spreading](/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints).
597619
- `DevicePlugins`: Enable the [device-plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)
598620
based resource provisioning on nodes.
599621
- `DisableAcceleratorUsageMetrics`:
600622
[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.
601626
- `DownwardAPIHugePages`: Enables usage of hugepages in
602627
[downward API](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information).
603628
- `DryRun`: Enable server-side [dry run](/docs/reference/using-api/api-concepts/#dry-run) requests
@@ -744,6 +769,9 @@ Each feature gate is designed for enabling/disabling a specific feature:
744769
- `PodShareProcessNamespace`: Enable the setting of `shareProcessNamespace` in a Pod for sharing
745770
a single process namespace between containers running in a pod. More details can be found in
746771
[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.
747775
- `ProbeTerminationGracePeriod`: Enable [setting probe-level
748776
`terminationGracePeriodSeconds`](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#probe-level-terminationgraceperiodseconds)
749777
on pods. See the [enhancement proposal](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period) for more details.
@@ -783,6 +811,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
783811
instead of the DaemonSet controller.
784812
- `SCTPSupport`: Enables the _SCTP_ `protocol` value in Pod, Service,
785813
Endpoints, EndpointSlice, and NetworkPolicy definitions.
814+
- `SeccompDefault`: If true, automatically set the `seccompProfile` of Pods
815+
and Containers to "Default".
786816
- `ServerSideApply`: Enables the [Sever Side Apply (SSA)](/docs/reference/using-api/server-side-apply/)
787817
feature on the API Server.
788818
- `ServiceAccountIssuerDiscovery`: Enable OIDC discovery endpoints (issuer and
@@ -810,6 +840,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
810840
- `StartupProbe`: Enable the
811841
[startup](/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)
812842
probe in the kubelet.
843+
- `StatefulSetMinReadySeconds`: Allows `minReadySeconds` to be respected by
844+
the StatefulSet controller.
813845
- `StorageObjectInUseProtection`: Postpone the deletion of PersistentVolume or
814846
PersistentVolumeClaim objects if they are still being used.
815847
- `StorageVersionAPI`: Enable the
@@ -879,6 +911,8 @@ Each feature gate is designed for enabling/disabling a specific feature:
879911
will use EndpointSlices as the primary data source instead of Endpoints,
880912
enabling scalability and performance improvements. See
881913
[Enabling Endpoint Slices](/docs/tasks/administer-cluster/enabling-endpointslices/).
914+
- `WindowsHostProcessContainers`: Enables the support for `HostProcess`
915+
containers on Windows nodes.
882916

883917

884918
## {{% heading "whatsnext" %}}

0 commit comments

Comments
 (0)