Skip to content

Commit 8fde623

Browse files
committed
Fix nits in feature gates page
Issues fixed by this PR: - Link in PodDeletionCost is wrong. - Default value for APIResponseCompression since 1.16 should be true - Default value for KubeletPodResources in 1.13, 1.14 should be false - CSIVolumeHealth is an Alpha feature introduced in 1.21, not graduated or deprecated - EndpointSlice is still Beta in 1.20 - EndpointSliceNodeName is only GA’ed in 1.21 - IndexedJob is an Alpha starting 1.21, not graduated or deprecated - KubeletPodResources has been GA’ed in 1.20, thus should be removed from the first table - RequestManagement was deprecated in 1.17 and replaced by APIPriorityAndFaireness - Several field names are incorrect (e.g. `appProtocol`, `internalTrafficPolicy`, `loadBalancerClass`) - SCTPSupport should be removed from the first table because it was GA’ed in 1.20. - ServcieAppProtocol is Beta until 1.20 - StreamingProxyRedirects is GA’ed in 1.19, not deprecated - No description for ValidateProxyRedirects is provided - VolumeCapacityPriority is an Alpha feature introduced in 1.21, not graduated - The order of VolumePVCDataSource is wrong in the table - No description provided for Initializers - The deprecated status should not be repeated in the description since it is already indicated by the table in which a feature is listed. - No description is provided for RequestManagement
1 parent 5fd397e commit 8fde623

File tree

1 file changed

+34
-30
lines changed

1 file changed

+34
-30
lines changed

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

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ different Kubernetes components.
5353
| `APIPriorityAndFairness` | `false` | Alpha | 1.17 | 1.19 |
5454
| `APIPriorityAndFairness` | `true` | Beta | 1.20 | |
5555
| `APIResponseCompression` | `false` | Alpha | 1.7 | 1.15 |
56-
| `APIResponseCompression` | `false` | Beta | 1.16 | |
56+
| `APIResponseCompression` | `true` | Beta | 1.16 | |
5757
| `APIServerIdentity` | `false` | Alpha | 1.20 | |
5858
| `AllowInsecureBackendProxy` | `true` | Beta | 1.17 | |
5959
| `AnyVolumeDataSource` | `false` | Alpha | 1.18 | |
@@ -90,6 +90,7 @@ different Kubernetes components.
9090
| `CSIStorageCapacity` | `true` | Beta | 1.21 | |
9191
| `CSIVolumeFSGroupPolicy` | `false` | Alpha | 1.19 | 1.19 |
9292
| `CSIVolumeFSGroupPolicy` | `true` | Beta | 1.20 | |
93+
| `CSIVolumeHealth` | `false` | Alpha | 1.21 | |
9394
| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 |
9495
| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | |
9596
| `CronJobControllerV2` | `false` | Alpha | 1.20 | 1.20 |
@@ -125,12 +126,11 @@ different Kubernetes components.
125126
| `HPAScaleToZero` | `false` | Alpha | 1.16 | |
126127
| `HugePageStorageMediumSize` | `false` | Alpha | 1.18 | 1.18 |
127128
| `HugePageStorageMediumSize` | `true` | Beta | 1.19 | |
129+
| `IndexedJob` | `false` | Alpha | 1.21 | |
128130
| `IngressClassNamespacedParams` | `false` | Alpha | 1.21 | |
129131
| `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 |
130132
| `IPv6DualStack` | `true` | Beta | 1.21 | |
131133
| `KubeletCredentialProviders` | `false` | Alpha | 1.20 | |
132-
| `KubeletPodResources` | `true` | Alpha | 1.13 | 1.14 |
133-
| `KubeletPodResources` | `true` | Beta | 1.15 | |
134134
| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 |
135135
| `LegacyNodeRoleBehavior` | `true` | True | 1.19 | |
136136
| `LocalStorageCapacityIsolation` | `false` | Alpha | 1.7 | 1.9 |
@@ -158,8 +158,6 @@ different Kubernetes components.
158158
| `RotateKubeletServerCertificate` | `false` | Alpha | 1.7 | 1.11 |
159159
| `RotateKubeletServerCertificate` | `true` | Beta | 1.12 | |
160160
| `RunAsGroup` | `true` | Beta | 1.14 | |
161-
| `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 |
162-
| `SCTPSupport` | `true` | Beta | 1.19 | |
163161
| `ServerSideApply` | `false` | Alpha | 1.14 | 1.15 |
164162
| `ServerSideApply` | `true` | Beta | 1.16 | |
165163
| `ServiceInternalTrafficPolicy` | `false` | Alpha | 1.21 | |
@@ -181,6 +179,7 @@ different Kubernetes components.
181179
| `TopologyManager` | `true` | Beta | 1.18 | |
182180
| `ValidateProxyRedirects` | `false` | Alpha | 1.12 | 1.13 |
183181
| `ValidateProxyRedirects` | `true` | Beta | 1.14 | |
182+
| `VolumeCapacityPriority` | `false` | Alpha | 1.21 | - |
184183
| `WarningHeaders` | `true` | Beta | 1.19 | |
185184
| `WinDSR` | `false` | Alpha | 1.14 | |
186185
| `WinOverlay` | `false` | Alpha | 1.14 | 1.19 |
@@ -225,7 +224,6 @@ different Kubernetes components.
225224
| `CSIPersistentVolume` | `false` | Alpha | 1.9 | 1.9 |
226225
| `CSIPersistentVolume` | `true` | Beta | 1.10 | 1.12 |
227226
| `CSIPersistentVolume` | `true` | GA | 1.13 | - |
228-
| `CSIVolumeHealth` | `false` | Alpha | 1.21 | - |
229227
| `CustomPodDNS` | `false` | Alpha | 1.9 | 1.9 |
230228
| `CustomPodDNS` | `true` | Beta| 1.10 | 1.13 |
231229
| `CustomPodDNS` | `true` | GA | 1.14 | - |
@@ -258,9 +256,9 @@ different Kubernetes components.
258256
| `EnableEquivalenceClassCache` | - | Deprecated | 1.15 | - |
259257
| `EndpointSlice` | `false` | Alpha | 1.16 | 1.16 |
260258
| `EndpointSlice` | `false` | Beta | 1.17 | 1.17 |
261-
| `EndpointSlice` | `true` | Beta | 1.18 | 1.21 |
259+
| `EndpointSlice` | `true` | Beta | 1.18 | 1.20 |
262260
| `EndpointSlice` | `true` | GA | 1.21 | - |
263-
| `EndpointSliceNodeName` | `false` | Alpha | 1.20 | 1.21 |
261+
| `EndpointSliceNodeName` | `false` | Alpha | 1.20 | 1.20 |
264262
| `EndpointSliceNodeName` | `true` | GA | 1.21 | - |
265263
| `ExperimentalCriticalPodAnnotation` | `false` | Alpha | 1.5 | 1.12 |
266264
| `ExperimentalCriticalPodAnnotation` | `false` | Deprecated | 1.13 | - |
@@ -278,7 +276,6 @@ different Kubernetes components.
278276
| `ImmutableEphemeralVolumes` | `false` | Alpha | 1.18 | 1.18 |
279277
| `ImmutableEphemeralVolumes` | `true` | Beta | 1.19 | 1.20 |
280278
| `ImmutableEphemeralVolumes` | `true` | GA | 1.21 | |
281-
| `IndexedJob` | `false` | Alpha | 1.21 | |
282279
| `Initializers` | `false` | Alpha | 1.7 | 1.13 |
283280
| `Initializers` | - | Deprecated | 1.14 | - |
284281
| `KubeletConfigFile` | `false` | Alpha | 1.8 | 1.9 |
@@ -315,6 +312,7 @@ different Kubernetes components.
315312
| `PodShareProcessNamespace` | `true` | Beta | 1.12 | 1.16 |
316313
| `PodShareProcessNamespace` | `true` | GA | 1.17 | - |
317314
| `RequestManagement` | `false` | Alpha | 1.15 | 1.16 |
315+
| `RequestManagement` | - | Derecated | 1.17 | - |
318316
| `ResourceLimitsPriorityFunction` | `false` | Alpha | 1.9 | 1.18 |
319317
| `ResourceLimitsPriorityFunction` | - | Deprecated | 1.19 | - |
320318
| `ResourceQuotaScopeSelectors` | `false` | Alpha | 1.11 | 1.11 |
@@ -338,7 +336,7 @@ different Kubernetes components.
338336
| `ServiceAccountIssuerDiscovery` | `true` | Beta | 1.20 | 1.20 |
339337
| `ServiceAccountIssuerDiscovery` | `true` | GA | 1.21 | - |
340338
| `ServiceAppProtocol` | `false` | Alpha | 1.18 | 1.18 |
341-
| `ServiceAppProtocol` | `true` | Beta | 1.19 | |
339+
| `ServiceAppProtocol` | `true` | Beta | 1.19 | 1.19 |
342340
| `ServiceAppProtocol` | `true` | GA | 1.20 | - |
343341
| `ServiceLoadBalancerFinalizer` | `false` | Alpha | 1.15 | 1.15 |
344342
| `ServiceLoadBalancerFinalizer` | `true` | Beta | 1.16 | 1.16 |
@@ -350,7 +348,7 @@ different Kubernetes components.
350348
| `StorageObjectInUseProtection` | `true` | GA | 1.11 | - |
351349
| `StreamingProxyRedirects` | `false` | Beta | 1.5 | 1.5 |
352350
| `StreamingProxyRedirects` | `true` | Beta | 1.6 | 1.18 |
353-
| `StreamingProxyRedirects` | - | Deprecated| 1.19 | - |
351+
| `StreamingProxyRedirects` | - | GA | 1.19 | - |
354352
| `SupportIPVSProxyMode` | `false` | Alpha | 1.8 | 1.8 |
355353
| `SupportIPVSProxyMode` | `false` | Beta | 1.9 | 1.9 |
356354
| `SupportIPVSProxyMode` | `true` | Beta | 1.10 | 1.10 |
@@ -375,16 +373,15 @@ different Kubernetes components.
375373
| `TokenRequestProjection` | `false` | Alpha | 1.11 | 1.11 |
376374
| `TokenRequestProjection` | `true` | Beta | 1.12 | 1.19 |
377375
| `TokenRequestProjection` | `true` | GA | 1.20 | - |
378-
| `VolumeCapacityPriority` | `false` | Alpha | 1.21 | - |
379-
| `VolumeSnapshotDataSource` | `false` | Alpha | 1.12 | 1.16 |
380-
| `VolumeSnapshotDataSource` | `true` | Beta | 1.17 | 1.19 |
381-
| `VolumeSnapshotDataSource` | `true` | GA | 1.20 | - |
382376
| `VolumePVCDataSource` | `false` | Alpha | 1.15 | 1.15 |
383377
| `VolumePVCDataSource` | `true` | Beta | 1.16 | 1.17 |
384378
| `VolumePVCDataSource` | `true` | GA | 1.18 | - |
385379
| `VolumeScheduling` | `false` | Alpha | 1.9 | 1.9 |
386380
| `VolumeScheduling` | `true` | Beta | 1.10 | 1.12 |
387381
| `VolumeScheduling` | `true` | GA | 1.13 | - |
382+
| `VolumeSnapshotDataSource` | `false` | Alpha | 1.12 | 1.16 |
383+
| `VolumeSnapshotDataSource` | `true` | Beta | 1.17 | 1.19 |
384+
| `VolumeSnapshotDataSource` | `true` | GA | 1.20 | - |
388385
| `VolumeSubpath` | `true` | GA | 1.10 | - |
389386
| `VolumeSubpathEnvExpansion` | `false` | Alpha | 1.14 | 1.14 |
390387
| `VolumeSubpathEnvExpansion` | `true` | Beta | 1.15 | 1.16 |
@@ -451,7 +448,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
451448
- `APIServerIdentity`: Assign each API server an ID in a cluster.
452449
- `Accelerators`: Enable Nvidia GPU support when using Docker
453450
- `AdvancedAuditing`: Enable [advanced auditing](/docs/tasks/debug-application-cluster/audit/#advanced-audit)
454-
- `AffinityInAnnotations`(*deprecated*): Enable setting
451+
- `AffinityInAnnotations`: Enable setting
455452
[Pod affinity or anti-affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity).
456453
- `AllowExtTrafficLocalEndpoints`: Enable a service to route external requests to node local endpoints.
457454
- `AllowInsecureBackendProxy`: Enable the users to skip TLS verification of
@@ -592,18 +589,18 @@ Each feature gate is designed for enabling/disabling a specific feature:
592589
[downward API](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information).
593590
- `DryRun`: Enable server-side [dry run](/docs/reference/using-api/api-concepts/#dry-run) requests
594591
so that validation, merging, and mutation can be tested without committing.
595-
- `DynamicAuditing`(*deprecated*): Used to enable dynamic auditing before v1.19.
592+
- `DynamicAuditing`: Used to enable dynamic auditing before v1.19.
596593
- `DynamicKubeletConfig`: Enable the dynamic configuration of kubelet. See
597594
[Reconfigure kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet/).
598595
- `DynamicProvisioningScheduling`: Extend the default scheduler to be aware of
599596
volume topology and handle PV provisioning.
600597
This feature is superseded by the `VolumeScheduling` feature completely in v1.12.
601-
- `DynamicVolumeProvisioning`(*deprecated*): Enable the
598+
- `DynamicVolumeProvisioning`: Enable the
602599
[dynamic provisioning](/docs/concepts/storage/dynamic-provisioning/) of persistent volumes to Pods.
603600
- `EfficientWatchResumption`: Allows for storage-originated bookmark (progress
604601
notify) events to be delivered to the users. This is only applied to watch
605602
operations.
606-
- `EnableAggregatedDiscoveryTimeout` (*deprecated*): Enable the five second
603+
- `EnableAggregatedDiscoveryTimeout`: Enable the five second
607604
timeout on aggregated discovery calls.
608605
- `EnableEquivalenceClassCache`: Enable the scheduler to cache equivalence of
609606
nodes when scheduling Pods.
@@ -666,9 +663,11 @@ Each feature gate is designed for enabling/disabling a specific feature:
666663
- `IngressClassNamespacedParams`: Allow namespace-scoped parameters reference in
667664
`IngressClass` resource. This feature adds two fields - `Scope` and `Namespace`
668665
to `IngressClass.spec.parameters`.
666+
- `Initializers`: Allow asynchronous coordination of object creation using the
667+
Initializers admission plugin.
669668
- `IPv6DualStack`: Enable [dual stack](/docs/concepts/services-networking/dual-stack/)
670669
support for IPv6.
671-
- `KubeletConfigFile` (*deprecated*): Enable loading kubelet configuration from
670+
- `KubeletConfigFile`: Enable loading kubelet configuration from
672671
a file specified using a config file.
673672
See [setting kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file/)
674673
for more details.
@@ -699,8 +698,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
699698
based on logarithmic bucketing of pod timestamps.
700699
- `MixedProtocolLBService`: Enable using different protocols in the same `LoadBalancer` type
701700
Service instance.
702-
- `MountContainers` (*deprecated*): Enable using utility containers on host as
703-
the volume mounter.
701+
- `MountContainers`: Enable using utility containers on host as the volume mounter.
704702
- `MountPropagation`: Enable sharing volume mounted by one container to other containers or pods.
705703
For more details, please see [mount propagation](/docs/concepts/storage/volumes/#mount-propagation).
706704
- `NamespaceDefaultLabelName`: Configure the API Server to set an immutable {{< glossary_tooltip text="label" term_id="label" >}}
@@ -742,7 +740,9 @@ Each feature gate is designed for enabling/disabling a specific feature:
742740
[chunking list request](/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks).
743741
- `RemoveSelfLink`: Deprecates and removes `selfLink` from ObjectMeta and
744742
ListMeta.
745-
- `ResourceLimitsPriorityFunction` (*deprecated*): Enable a scheduler priority function that
743+
- `RequestManagement`: Enables managing request concurrency with prioritization and fairness
744+
at each API server. Deprecated by `APIPriorityAndFairness` since 1.17.
745+
- `ResourceLimitsPriorityFunction`: Enable a scheduler priority function that
746746
assigns a lowest possible score of 1 to a node that satisfies at least one of
747747
the input Pod's cpu and memory limits. The intent is to break ties between
748748
nodes with same scores.
@@ -772,11 +772,11 @@ Each feature gate is designed for enabling/disabling a specific feature:
772772
JWKS URLs) for the service account issuer in the API server. See
773773
[Configure Service Accounts for Pods](/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery)
774774
for more details.
775-
- `ServiceAppProtocol`: Enables the `AppProtocol` field on Services and Endpoints.
776-
- `ServiceInternalTrafficPolicy`: Enables the `InternalTrafficPolicy` field on Services
777-
- `ServiceLBNodePortControl`: Enables the `spec.allocateLoadBalancerNodePorts`
778-
field on Services.
779-
- `ServiceLoadBalancerClass`: Enables the `LoadBalancerClass` field on Services. See [Specifying class of load balancer implementation](/docs/concepts/services-networking/service/#load-balancer-class) for more details.
775+
- `ServiceAppProtocol`: Enables the `appProtocol` field on Services and Endpoints.
776+
- `ServiceInternalTrafficPolicy`: Enables the `internalTrafficPolicy` field on Services
777+
- `ServiceLBNodePortControl`: Enables the `allocateLoadBalancerNodePorts` field on Services.
778+
- `ServiceLoadBalancerClass`: Enables the `loadBalancerClass` field on Services. See
779+
[Specifying class of load balancer implementation](/docs/concepts/services-networking/service/#load-balancer-class) for more details.
780780
- `ServiceLoadBalancerFinalizer`: Enable finalizer protection for Service load balancers.
781781
- `ServiceNodeExclusion`: Enable the exclusion of nodes from load balancers
782782
created by a cloud provider. A node is eligible for exclusion if labelled with
@@ -804,12 +804,12 @@ Each feature gate is designed for enabling/disabling a specific feature:
804804
Examples of streaming requests include the `exec`, `attach` and `port-forward` requests.
805805
- `SupportIPVSProxyMode`: Enable providing in-cluster service load balancing using IPVS.
806806
See [service proxies](/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies) for more details.
807-
- `SupportPodPidsLimit`: Enable the support to limiting PIDs in Pods.
808807
- `SupportNodePidsLimit`: Enable the support to limiting PIDs on the Node.
809808
The parameter `pid=<number>` in the `--system-reserved` and `--kube-reserved`
810809
options can be specified to ensure that the specified number of process IDs
811810
will be reserved for the system as a whole and for Kubernetes system daemons
812811
respectively.
812+
- `SupportPodPidsLimit`: Enable the support to limiting PIDs in Pods.
813813
- `SuspendJob`: Enable support to suspend and resume Jobs. See
814814
[the Jobs docs](/docs/concepts/workloads/controllers/job/) for
815815
more details.
@@ -835,14 +835,18 @@ Each feature gate is designed for enabling/disabling a specific feature:
835835
- `TopologyManager`: Enable a mechanism to coordinate fine-grained hardware resource
836836
assignments for different components in Kubernetes. See
837837
[Control Topology Management Policies on a node](/docs/tasks/administer-cluster/topology-manager/).
838-
- `VolumeCapacityPriority`: Enable support for prioritizing nodes in different
838+
- `ValidateProxyRedirects`: This flag controls whether the API server should
839+
validate that redirects are only followed to the same host. Only used if the
840+
`StreamingProxyRedirects` flag is enabled.
841+
- 'VolumeCapacityPriority`: Enable support for prioritizing nodes in different
839842
topologies based on available PV capacity.
840843
- `VolumePVCDataSource`: Enable support for specifying an existing PVC as a DataSource.
841844
- `VolumeScheduling`: Enable volume topology aware scheduling and make the
842845
PersistentVolumeClaim (PVC) binding aware of scheduling decisions. It also
843846
enables the usage of [`local`](/docs/concepts/storage/volumes/#local) volume
844847
type when used together with the `PersistentLocalVolumes` feature gate.
845848
- `VolumeSnapshotDataSource`: Enable volume snapshot data source support.
849+
- `VolumeSubpath`: Allow mounting a subpath of a volume in a container.
846850
- `VolumeSubpathEnvExpansion`: Enable `subPathExpr` field for expanding environment
847851
variables into a `subPath`.
848852
- `WarningHeaders`: Allow sending warning headers in API responses.

0 commit comments

Comments
 (0)