# Feature Gates

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->
This page contains an overview of the various feature gates an administrator
can specify on different Kubernetes components.

See [feature stages](#feature-stages) for an explanation of the stages for a feature.

<!-- body -->
## Overview

Feature gates are a set of key=value pairs that describe Kubernetes features.
You can turn these features on or off using the `--feature-gates` command line flag
on each Kubernetes component.

## How to enable Feature Gates

To enable or disable a feature gate for a particular Kubernetes component, use the 
`--feature-gates` flag.

This flag accepts a comma-separated list of key=value pairs, where each key is a 
feature gate name and each value is either `true` (enable) or `false` (disable).

**Example usage:**

```shell
kube-apiserver --feature-gates=FeatureName1=true,FeatureName2=false
kubelet --feature-gates=GracefulNodeShutdown=true
```

Each Kubernetes component supports only the feature gates relevant to its functions.
Use `<component> -h` to list available feature gates for a specific component.

For detailed instructions on configuring feature gates in your cluster, see
[Configure Feature Gates](/docs/tasks/administer-cluster/configure-feature-gates/).

## Feature gates in Kubernetes v1.36 {#list-of-gates}

The following tables are a summary of the feature gates that you can set on
different Kubernetes components.

- The "Since" column contains the Kubernetes release when a feature is introduced
  or its release stage is changed.
- The "Until" column, if not empty, contains the last Kubernetes release in which
  you can still use a feature gate.
- If a feature is in the Alpha or Beta state, you can find the feature listed
  in the [Alpha/Beta feature gate table](#feature-gates-for-alpha-or-beta-features).
- If a feature is stable you can find all stages for that feature listed in the
  [Graduated/Deprecated feature gate table](#feature-gates-for-graduated-or-deprecated-features).
- The [Graduated/Deprecated feature gate table](#feature-gates-for-graduated-or-deprecated-features)
  also lists deprecated and withdrawn features.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Note:</h4>For a reference to old feature gates that are removed, please refer to
<a href="/docs/reference/command-line-tools-reference/feature-gates-removed/">feature gates removed</a>.</div>


<!-- Want to edit this table? See https://k8s.io/docs/contribute/new-content/new-features/#ready-for-review-feature-gates -->
### Feature gates for Alpha or Beta features

<table class="sortable-table">
    <caption style="display:none">Feature gates for features in Alpha or Beta states</caption>
    <thead>
      <tr>
          <th>Feature</th>
          <th>Default</th>
          <th>Stage</th>
          <th>Since</th>
          <th>Until</th>
      </tr>
    </thead>
    <tbody>
            <tr>
                <td><code title="When this feature is enabled, the subject name attribute 1.3.6.1.4.1.57683.2 in an X.509 certificate will be parsed as the user UID during certificate authentication.
">AllowParsingUserUIDFromCertAuth</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="When this feature is enabled, the subject name attribute 1.3.6.1.4.1.57683.2 in an X.509 certificate will be parsed as the user UID during certificate authentication.
">AllowParsingUserUIDFromCertAuth</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the cluster operator to identify corrupt resource(s) using the list operation, and introduces an option ignoreStoreReadErrorWithClusterBreakingPotential that the operator can set to perform unsafe and force delete operation of such corrupt resource(s) using the Kubernetes API.
">AllowUnsafeMalformedObjectDeletion</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Compress the API responses for LIST or GET requests.
">APIResponseCompression</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.7</td>
                <td>1.15</td>
            </tr>
            <tr>
                <td><code title="Compress the API responses for LIST or GET requests.
">APIResponseCompression</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.16</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Assign each API server an ID in a cluster, using a Lease.
">APIServerIdentity</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.20</td>
                <td>1.25</td>
            </tr>
            <tr>
                <td><code title="Assign each API server an ID in a cluster, using a Lease.
">APIServerIdentity</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.26</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This feature gate enables an API server performance improvement: the API server can use separate goroutines (lightweight threads managed by the Go runtime) to serve watch requests.
">APIServingWithRoutine</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="A client-go implementation of a FIFO queue that uses atomic operations to ensure events that come in batches, such as those from a ListAndWatch call, are processed in a single chunk. This is in contrast to the previous implementation which would process these events one by one, potentially causing the internal cache to become temporarily inconsistent with the API server. This feature gate can be toggled in the kube-controller-manager and any client-go based controller.
">AtomicFIFO</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When the AuthorizePodWebsocketUpgradeCreatePermission feature gate is true, clients must be authorized to create Pod subresources even when triggering their creation using a WebSocket.
The connection upgrade request occurs for each of the following subresources: pods/exec, pods/attach, and pods/portforward. This feature gate fixes a security gap caused by the protocol transition: while SPDY requests utilize HTTP POST (naturally aligning with the create RBAC permission), the WebSocket protocol requires an HTTP GET request for the handshake. To correct this defect, a synthetic RBAC check is now applied to ensure WebSocket upgrades strictly enforce the create permission, matching the existing SPDY security model.
You may want to disable this feature gate if you have existing clients or custom tooling that rely on the previous behavior—specifically, if they connect via WebSockets but do not currently hold the create RBAC permission.
">AuthorizePodWebsocketUpgradeCreatePermission</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables CBOR as a supported encoding for requests and responses, and as the preferred storage encoding for custom resources.
">CBORServingAndStorage</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable clearing .status.nominatedNodeName whenever Pods are bound to nodes.
">ClearingNominatedNodeNameAfterBinding</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enable clearing .status.nominatedNodeName whenever Pods are bound to nodes.
">ClearingNominatedNodeNameAfterBinding</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables a watch-based route reconciliation mechanism (rather than reconciling at a fixed interval) within the cloud-controller-manager library.
">CloudControllerManagerWatchBasedRoutesReconciliation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable webhooks in cloud controller manager.
">CloudControllerManagerWebhook</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This feature gate exists in the Kubernetes API server and the controller manager.
Used from the kube-apiserver, it enables ClusterTrustBundle support.
In order to use the ClusterTrustBundle API in your cluster, you need to enable this feature gate and also enable the associated alpha API group using the --runtime-config command line argument to kube-apiserver.
In the Kubernetes controller manager, it is used to control publishing of a ClusterTrustBundle for the kubernetes.io/kube-apiserver-serving signer.
">ClusterTrustBundle</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="This feature gate exists in the Kubernetes API server and the controller manager.
Used from the kube-apiserver, it enables ClusterTrustBundle support.
In order to use the ClusterTrustBundle API in your cluster, you need to enable this feature gate and also enable the associated alpha API group using the --runtime-config command line argument to kube-apiserver.
In the Kubernetes controller manager, it is used to control publishing of a ClusterTrustBundle for the kubernetes.io/kube-apiserver-serving signer.
">ClusterTrustBundle</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="clusterTrustBundle projected volume sources.
">ClusterTrustBundleProjection</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="clusterTrustBundle projected volume sources.
">ClusterTrustBundleProjection</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the component&#39;s flagz endpoint. See zpages for more information.
">ComponentFlagz</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables the component&#39;s flagz endpoint. See zpages for more information.
">ComponentFlagz</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the component&#39;s statusz endpoint. See zpages for more information.
">ComponentStatusz</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables the component&#39;s statusz endpoint. See zpages for more information.
">ComponentStatusz</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable concurrent watch object decoding. This is to avoid starving the API server&#39;s watch cache when a conversion webhook is installed.
">ConcurrentWatchObjectDecode</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables impersonation that is constrained to specific requests instead of being all or nothing.
">ConstrainedImpersonation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables impersonation that is constrained to specific requests instead of being all or nothing.
">ConstrainedImpersonation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet checkpoint API. See Kubelet Checkpoint API for more details.
">ContainerCheckpoint</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.25</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet checkpoint API. See Kubelet Checkpoint API for more details.
">ContainerCheckpoint</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the ability to configure container-level restart policy and restart rules. See Container Restart Policy and Rules for more details.
">ContainerRestartRules</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables the ability to configure container-level restart policy and restart rules. See Container Restart Policy and Rules for more details.
">ContainerRestartRules</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables usage of the StopSignal lifecycle for containers for configuring custom stop signals using which the containers would be stopped.
">ContainerStopSignals</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables extra details in log output of Kubernetes components that support contextual logging.
">ContextualLogging</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.24</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables extra details in log output of Kubernetes components that support contextual logging.
">ContextualLogging</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kube-controller-manager to actively release its leader election lock during leader transitions, rather than waiting for the lock&#39;s TTL to expire. This allows a new leader to be elected more quickly.
">ControllerManagerReleaseLeaderElectionLockOnExit</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the behaviors supporting the LeaseCandidate API, and also enables coordinated leader election for the Kubernetes control plane, deterministically.
">CoordinatedLeaderElection</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables the behaviors supporting the LeaseCandidate API, and also enables coordinated leader election for the Kubernetes control plane, deterministically.
">CoordinatedLeaderElection</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This allows fine-tuning of CPUManager policies, experimental, Alpha-quality options This feature gate guards a group of CPUManager options whose quality level is alpha. This feature gate will never graduate to beta or stable.
">CPUManagerPolicyAlphaOptions</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.23</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This allows fine-tuning of CPUManager policies, experimental, Beta-quality options This feature gate guards a group of CPUManager options whose quality level is beta. This feature gate will never graduate to stable.
">CPUManagerPolicyBetaOptions</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.23</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows for the observed generation to be tracked in CRD conditions. Setting to false will make it so CRD conditions will have the observed generation wiped.
">CRDObservedGenerationTracking</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable streaming RPCs for CRI list operations (ListContainers, ListPodSandbox, ListImages). When enabled, the kubelet uses server-side streaming RPCs (e.g., StreamContainers, StreamPodSandboxes) that allow the container runtime to divide results across multiple response messages, bypassing the 16 MiB gRPC message size limit. This allows listing containers on nodes with thousands of containers without failures. If the container runtime does not support streaming RPCs, the kubelet falls back to unary RPCs.
">CRIListStreaming</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the usage of cross namespace volume data source to allow you to specify a source namespace in the dataSourceRef field of a PersistentVolumeClaim.
">CrossNamespaceVolumeDataSource</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable support for CSI volume health monitoring on node.
">CSIVolumeHealth</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.21</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable nodes to change cpuCFSQuotaPeriod in kubelet config.
">CustomCPUCFSQuotaPeriod</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.12</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This feature gate acts as the Global Safety Switch for Beta-stage validation rules (&#43;k8s:beta). It allows cluster admins to disable enforcement for validations in the Beta stage if regressions are found, forcing them back to Shadow mode.
In Shadow mode, declarative validation is executed and mismatches against handwritten validation are logged as metrics, but failures do not reject requests. Handwritten validation remains authoritative and enforced.
Enforcement logic for resources using WithDeclarativeEnforcement():
Standard tags (no prefix): Always Enforced (Bypasses this gate). Beta tags (&#43;k8s:beta): Enforced when this gate is enabled (default), otherwise Shadowed. Alpha tags (&#43;k8s:alpha): Always Shadowed. This gate has no effect if the master DeclarativeValidation feature gate is disabled.
">DeclarativeValidationBeta</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables a new status field .status.terminatingReplicas in Deployments and ReplicaSets to allow tracking of terminating pods.
">DeploymentReplicaSetTerminatingReplicas</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables a new status field .status.terminatingReplicas in Deployments and ReplicaSets to allow tracking of terminating pods.
">DeploymentReplicaSetTerminatingReplicas</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable cache inconsistency detection in the API server.
">DetectCacheInconsistency</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When the feature gate DisableCPUQuotaWithExclusiveCPUs is enabled (the default), then Kubernetes does not enforce CPU quota for Pods that use the Guaranteed QoS class.
You can disable the DisableCPUQuotaWithExclusiveCPUs feature gate to restore the legacy behavior.
">DisableCPUQuotaWithExclusiveCPUs</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables device sharing across multiple ResourceClaims or requests.
Additionally, if a device supports sharing, its resource (capacity) can be managed through a defined sharing policy.
">DRAConsumableCapacity</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables device sharing across multiple ResourceClaims or requests.
Additionally, if a device supports sharing, its resource (capacity) can be managed through a defined sharing policy.
">DRAConsumableCapacity</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for DeviceBindingConditions in the DRA related fields. This allows for thorough device readiness checks and attachment processes before Bind phase.
">DRADeviceBindingConditions</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables support for DeviceBindingConditions in the DRA related fields. This allows for thorough device readiness checks and attachment processes before Bind phase.
">DRADeviceBindingConditions</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for tainting devices through DeviceTaintRule objects when using dynamic resource allocation to manage devices.
This feature gate has no effect unless you also enable the DRADeviceTaints feature gate.
">DRADeviceTaintRules</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables support for tainting devices through DeviceTaintRule objects when using dynamic resource allocation to manage devices.
This feature gate has no effect unless you also enable the DRADeviceTaints feature gate.
">DRADeviceTaintRules</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for tainting devices and selectively tolerating those taints when using dynamic resource allocation to manage devices.
">DRADeviceTaints</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables support for tainting devices and selectively tolerating those taints when using dynamic resource allocation to manage devices.
">DRADeviceTaints</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for the Extended Resource allocation by DRA feature. It makes it possible to specify an extended resource name in a DeviceClass.
">DRAExtendedResource</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables support for the Extended Resource allocation by DRA feature. It makes it possible to specify an extended resource name in a DeviceClass.
">DRAExtendedResource</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables list-type attribute fields (bools, ints, strings, versions) for devices in ResourceSlice, allowing a device to advertise multiple values for a single attribute.
When enabled, matchAttribute uses set-intersection semantics (the sets of attribute values across all selected devices must have a non-empty intersection), and distinctAttribute uses pairwise-disjoint semantics (the sets must share no values). Scalar attributes remain backward-compatible, treated as singleton sets.
Also adds the includes() helper function to CEL device selector expressions, which works on both scalar and list-type attributes.
For more information, see List type attributes in the Dynamic Resource Allocation documentation.
">DRAListTypeAttributes</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kube-scheduler to incorporate Node Allocatable resources (such as CPU, memory, and hugepages) managed by Dynamic Resource Allocation (DRA) into its standard node resource accounting.
When enabled, DRA drivers can use the nodeAllocatableResourceMappings field on ResourceSlice devices to specify how their devices consume node allocatable resources. This allows the scheduler to combine these DRA allocations with standard Pod requests. It also exposes the status.nodeAllocatableResourceClaimStatuses field on the Pod API to track the resulting resource allocations.
For more information, see Node Allocatable Resources in the Dynamic Resource Allocation documentation.
">DRANodeAllocatableResources</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for requesting Partitionable Devices for DRA. This lets drivers advertise multiple devices that maps to the same resources of a physical device.
">DRAPartitionableDevices</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables support for requesting Partitionable Devices for DRA. This lets drivers advertise multiple devices that maps to the same resources of a physical device.
">DRAPartitionableDevices</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support the ResourceClaim.status.devices field and for setting this status from DRA drivers. It requires the DynamicResourceAllocation feature gate to be enabled.
">DRAResourceClaimDeviceStatus</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables support the ResourceClaim.status.devices field and for setting this status from DRA drivers. It requires the DynamicResourceAllocation feature gate to be enabled.
">DRAResourceClaimDeviceStatus</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for granular authorization of ResourceClaim status updates. This feature requires additional fine-grained access permissions when modifying specific fields within ResourceClaim status objects.
">DRAResourceClaimGranularStatusAuthorization</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the ResourcePoolStatusRequest API for querying the availability of devices in DRA resource pools. When enabled, users can create ResourcePoolStatusRequest objects to get a point-in-time snapshot of device availability (total, allocated, available, and unavailable devices) for a specific driver and optionally a specific pool. A controller in kube-controller-manager processes these one-time requests and populates the status with pool information.
">DRAResourcePoolStatus</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables aborting the per-node filter operation in the scheduler after a certain time (10 seconds by default, configurable in the DynamicResources scheduler plugin configuration).
">DRASchedulerFilterTimeout</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables PodGroup resources from the Workload API to make requests for devices through Dynamic Resource Allocation that can be shared by their member Pods.
">DRAWorkloadResourceClaims</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Support defining container&#39;s Environment Variable Values via File. See Define Environment Variable Values Using An Init Container for more details.
">EnvFiles</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Support defining container&#39;s Environment Variable Values via File. See Define Environment Variable Values Using An Init Container for more details.
">EnvFiles</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable support for the kubelet to receive container life cycle events from the container runtime via an extension to CRI. (PLEG is an abbreviation for “Pod lifecycle event generator”). For this feature to be useful, you also need to enable support for container lifecycle events in each container runtime running in your cluster. If the container runtime does not announce support for container lifecycle events then the kubelet automatically switches to the legacy generic PLEG mechanism, even if you have this feature gate enabled.
">EventedPLEG</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When ExtendWebSocketsToKubelet is enabled and a kubelet node advertises support, exec/attach/portforward streams are proxied directly to the kubelet rather than being translated or tunneled at the API server. Critically, the same stream translation and tunneling handlers used at the API server are now set up identically at the kubelet — the logic is simply moved closer to the container runtime. This feature depends on NodeDeclaredFeatures graduating to beta so that kubelet capability advertisement is reliable in production clusters.
">ExtendWebSocketsToKubelet</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the GangScheduling plugin in kube-scheduler, which implements &quot;all-or-nothing&quot; scheduling algorithm. The Workload API is used to express the requirements.
">GangScheduling</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the support for Workload API to express scheduling requirements at the workload level.
When enabled Pods can reference a specific pod group and use this to influence the way that they are scheduled.
">GenericWorkload</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for graceful shutdown in kubelet. During a system shutdown, kubelet will attempt to detect the shutdown event and gracefully terminate pods running on the node. See Graceful Node Shutdown for more details.
">GracefulNodeShutdown</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.20</td>
                <td>1.20</td>
            </tr>
            <tr>
                <td><code title="Enables support for graceful shutdown in kubelet. During a system shutdown, kubelet will attempt to detect the shutdown event and gracefully terminate pods running on the node. See Graceful Node Shutdown for more details.
">GracefulNodeShutdown</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.21</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet to check Pod priorities when shutting down a node gracefully.
">GracefulNodeShutdownBasedOnPodPriority</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.23</td>
                <td>1.23</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet to check Pod priorities when shutting down a node gracefully.
">GracefulNodeShutdownBasedOnPodPriority</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.24</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows setting any FQDN as the pod&#39;s hostname.
">HostnameOverride</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Allows setting any FQDN as the pod&#39;s hostname.
">HostnameOverride</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables setting a tolerance threshold for HorizontalPodAutoscaler metrics.
">HPAConfigurableTolerance</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables setting a tolerance threshold for HorizontalPodAutoscaler metrics.
">HPAConfigurableTolerance</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables setting minReplicas to 0 for HorizontalPodAutoscaler resources when using custom or external metrics.
">HPAScaleToZero</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.16</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="For each image volume in a Pod, image digest as part of the pod&#39;s status.
">ImageVolumeWithDigest</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Force the informers to deliver watch stream events in order instead of out of order.
">InOrderInformers</code></td>
                <td><code>true</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Force the informers to deliver watch stream events in order instead of out of order.
">InOrderInformers</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the in-place vertical scaling of resources for a Pod (For example, changing a running Pod&#39;s pod-level CPU or memory requests/limits without needing to restart it). For details, see the documentation on In-place Pod-level Resources Vertical Scaling.
">InPlacePodLevelResourcesVerticalScaling</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables the in-place vertical scaling of resources for a Pod (For example, changing a running Pod&#39;s pod-level CPU or memory requests/limits without needing to restart it). For details, see the documentation on In-place Pod-level Resources Vertical Scaling.
">InPlacePodLevelResourcesVerticalScaling</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable resource resizing for containers in Guaranteed pods with integer CPU requests. It applies only in nodes with InPlacePodVerticalScaling and CPUManager features enabled, and the CPUManager policy set to static.
">InPlacePodVerticalScalingExclusiveCPUs</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow resource resize for containers in Guaranteed Pods when the memory manager policy is set to &quot;Static&quot;. Applies only to nodes with InPlacePodVerticalScaling and memory manager features enabled.
">InPlacePodVerticalScalingExclusiveMemory</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for configurable per-node backoff maximums for restarting containers in the CrashLoopBackOff state. For more details, check the crashLoopBackOff.maxContainerRestartPeriod field in the kubelet config file.
">KubeletCrashLoopBackOffMax</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables support for configurable per-node backoff maximums for restarting containers in the CrashLoopBackOff state. For more details, check the crashLoopBackOff.maxContainerRestartPeriod field in the kubelet config file.
">KubeletCrashLoopBackOffMax</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Ensure that pods requesting an image are authorized to access the image with the provided credentials when the image is already present on the node. See Ensure Image Pull Credential Verification.
">KubeletEnsureSecretPulledImages</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Ensure that pods requesting an image are authorized to access the image with the provided credentials when the image is already present on the node. See Ensure Image Pull Credential Verification.
">KubeletEnsureSecretPulledImages</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for running kubelet in a user namespace. See Running Kubernetes Node Components as a Non-root User.
">KubeletInUserNamespace</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.22</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="The split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems.
">KubeletSeparateDiskGC</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="The split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems.
">KubeletSeparateDiskGC</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable kubelet to send the service account token bound to the pod for which the image is being pulled to the credential provider plugin.
">KubeletServiceAccountTokenForCredentialProviders</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable kubelet to send the service account token bound to the pod for which the image is being pulled to the credential provider plugin.
">KubeletServiceAccountTokenForCredentialProviders</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the API server to generate snapshots for the watch cache store and using them to serve LIST requests.
">ListFromCacheSnapshot</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables the API server to generate snapshots for the watch cache store and using them to serve LIST requests.
">ListFromCacheSnapshot</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When LocalStorageCapacityIsolation is enabled for local ephemeral storage, the backing filesystem for emptyDir volumes supports project quotas, and UserNamespacesSupport is enabled, project quotas are used to monitor emptyDir volume storage consumption rather than using filesystem walk, ensuring better performance and accuracy.
">LocalStorageCapacityIsolationFSQuotaMonitoring</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.15</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="When LocalStorageCapacityIsolation is enabled for local ephemeral storage, the backing filesystem for emptyDir volumes supports project quotas, and UserNamespacesSupport is enabled, project quotas are used to monitor emptyDir volume storage consumption rather than using filesystem walk, ensuring better performance and accuracy.
">LocalStorageCapacityIsolationFSQuotaMonitoring</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of experimental, alpha-quality logging options.
">LoggingAlphaOptions</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.24</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of experimental, beta-quality logging options.
">LoggingBetaOptions</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.24</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable loading admission webhooks and CEL-based admission policies from static manifest files on disk via the staticManifestsDir field in AdmissionConfiguration. These policies are active from API server startup, survive etcd unavailability, and can protect API-based admission resources from modification.
">ManifestBasedAdmissionControlConfig</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the matchLabelKeys field for Pod topology spread constraints.
">MatchLabelKeysInPodTopologySpread</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.25</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Enable the matchLabelKeys field for Pod topology spread constraints.
">MatchLabelKeysInPodTopologySpread</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable merging of selectors built from matchLabelKeys into labelSelector of Pod topology spread constraints. This feature gate can be enabled when matchLabelKeys feature is enabled with the MatchLabelKeysInPodTopologySpread feature flag.
">MatchLabelKeysInPodTopologySpreadSelectorMerge</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables setting the maxUnavailable field for the rolling update strategy of a StatefulSet. The field specifies the maximum number of Pods that can be unavailable during the update.
">MaxUnavailableStatefulSet</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.24</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables setting the maxUnavailable field for the rolling update strategy of a StatefulSet. The field specifies the maximum number of Pods that can be unavailable during the update.
">MaxUnavailableStatefulSet</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35.0</td>
                <td>1.35.3</td>
            </tr>
            <tr>
                <td><code title="Enables setting the maxUnavailable field for the rolling update strategy of a StatefulSet. The field specifies the maximum number of Pods that can be unavailable during the update.
">MaxUnavailableStatefulSet</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.35.4</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable memory protection and usage throttle on pod / container using cgroup v2 memory controller. Sets memory.high for throttling on Burstable pods, and optionally sets memory.min / memory.low for tiered memory protection when memoryReservationPolicy is set to TieredReservation.
">MemoryQoS</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.22</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the ability to patch pod templates for suspended Jobs, in order to change requests or limits for infrastructure resources.
">MutablePodResourcesForSuspendedJobs</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable the ability to patch pod templates for suspended Jobs, in order to change requests or limits for infrastructure resources.
">MutablePodResourcesForSuspendedJobs</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow update to the .spec.nodeAffinity field of a PersistentVolume. See Updates to node affinity for more details.
">MutablePVNodeAffinity</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the ability to patch pod templates for suspended Jobs, in order to change the pod scheduling directives.
">MutableSchedulingDirectivesForSuspendedJobs</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable the ability to patch pod templates for suspended Jobs, in order to change the pod scheduling directives.
">MutableSchedulingDirectivesForSuspendedJobs</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables Kubernetes components to expose metrics in Prometheus Native Histogram format for improved efficiency and finer bucket resolution. See Native Histograms for more information.
">NativeHistograms</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables Nodes to report supported features via their .status. This enables the scheduler and admission controller to prevent operations on nodes lacking features required by the pod. See Node Declared Features.
">NodeDeclaredFeatures</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables Nodes to report supported features via their .status. This enables the scheduler and admission controller to prevent operations on nodes lacking features required by the pod. See Node Declared Features.
">NodeDeclaredFeatures</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When enabled, kube-scheduler uses .status.nominatedNodeName to express where a Pod is going to be bound. The .status.nominatedNodeName field is set when kube-scheduler triggers preemption of pods, or anticipates that WaitOnPermit or PreBinding phase will take relatively long. Other components may read and use .status.nominatedNodeName, but should not set it.
When disabled, kube-scheduler will only set .status.nominatedNodeName before triggering preemption.
">NominatedNodeNameForExpectation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="When enabled, kube-scheduler uses .status.nominatedNodeName to express where a Pod is going to be bound. The .status.nominatedNodeName field is set when kube-scheduler triggers preemption of pods, or anticipates that WaitOnPermit or PreBinding phase will take relatively long. Other components may read and use .status.nominatedNodeName, but should not set it.
When disabled, kube-scheduler will only set .status.nominatedNodeName before triggering preemption.
">NominatedNodeNameForExpectation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables populating &quot;enum&quot; fields of OpenAPI schemas in the spec returned from the API server.
">OpenAPIEnums</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.23</td>
                <td>1.23</td>
            </tr>
            <tr>
                <td><code title="Enables populating &quot;enum&quot; fields of OpenAPI schemas in the spec returned from the API server.
">OpenAPIEnums</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.24</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable reusing of scheduling results from the previous scheduling cycle for equivalent pods.
">OpportunisticBatching</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When enabled, the PVC protection controller adds an Unused condition to PersistentVolumeClaims that tracks whether the PVC is currently referenced by any non-terminal Pod. The condition&#39;s lastTransitionTime records when the PVC last transitioned between being in use and being unused.
">PersistentVolumeClaimUnusedSinceTime</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Configure the kubelet to gather container and pod stats from the CRI container runtime rather than gathering them from cAdvisor. As of 1.26, this also includes gathering metrics from CRI and emitting them over /metrics/cadvisor (rather than having cAdvisor emit them directly).
">PodAndContainerStatsFromCRI</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.23</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable PodCertificateRequest objects and podCertificate projected volume sources.
">PodCertificateRequest</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enable PodCertificateRequest objects and podCertificate projected volume sources.
">PodCertificateRequest</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the Pod Deletion Cost feature which allows users to influence ReplicaSet downscaling order.
">PodDeletionCost</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.21</td>
                <td>1.21</td>
            </tr>
            <tr>
                <td><code title="Enable the Pod Deletion Cost feature which allows users to influence ReplicaSet downscaling order.
">PodDeletionCost</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.22</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet Pod Info gRPC API. See Kubelet Pod Info gRPC API for more details.
">PodInfoAPI</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable Pod-level resource managers: the ability for the Topology, CPU, and Memory managers to use information from .spec.resources to perform NUMA alignment for an entire pod and manage resources flexibly for the containers within that pod.
">PodLevelResourceManagers</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable Pod level resources: the ability to specify resource requests and limits at the Pod level, rather than only for specific containers.
">PodLevelResources</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable Pod level resources: the ability to specify resource requests and limits at the Pod level, rather than only for specific containers.
">PodLevelResources</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable fetching specific log streams (either stdout or stderr) from a container&#39;s log streams, using the Pod API.
">PodLogsQuerySplitStreams</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet to mark the PodReadyToStartContainers condition on pods.
This feature gate was previously known as PodHasNetworkCondition, and the associated condition was named PodHasNetwork.
">PodReadyToStartContainersCondition</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet to mark the PodReadyToStartContainers condition on pods.
This feature gate was previously known as PodHasNetworkCondition, and the associated condition was named PodHasNetwork.
">PodReadyToStartContainersCondition</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the PodTopologyLabels admission plugin. See Pod Topology Labels for details.
">PodTopologyLabelsAdmission</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables the PodTopologyLabels admission plugin. See Pod Topology Labels for details.
">PodTopologyLabelsAdmission</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow WebSocket streaming of the portforward sub-protocol (port-forward) from clients requesting version v2 (v2.portforward.k8s.io) of the sub-protocol.
">PortForwardWebsockets</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Allow WebSocket streaming of the portforward sub-protocol (port-forward) from clients requesting version v2 (v2.portforward.k8s.io) of the sub-protocol.
">PortForwardWebsockets</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Denies Pod admission if static Pods reference other API objects.
">PreventStaticPodAPIReferences</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows resource reservations at the QoS level preventing pods at lower QoS levels from bursting into resources requested at higher QoS levels (memory only for now).
">QOSReserved</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.11</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enabled reduction of both the initial delay and the maximum delay accrued between container restarts for a node for containers in CrashLoopBackOff across the cluster to 1s initial delay and 60s maximum delay.
">ReduceDefaultCrashLoopBackOffDecay</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables relaxed validation for Service object names, allowing the use of RFC 1123 label names instead of RFC 1035 label names.
This feature allows Service object names to start with a digit.
">RelaxedServiceNameValidation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables relaxed validation for Service object names, allowing the use of RFC 1123 label names instead of RFC 1035 label names.
This feature allows Service object names to start with a digit.
">RelaxedServiceNameValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet TLS server to update its certificate if the specified certificate file are changed.
This feature is useful when specifying tlsCertFile and tlsPrivateKeyFile in kubelet configuration. The feature gate has no effect for other cases such as using TLS bootstrap.
">ReloadKubeletServerCertificateFile</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the API server to accept UIDs (user IDs) via request header authentication. This will also make the kube-apiserver&#39;s API aggregator add UIDs via standard headers when forwarding requests to the servers serving the aggregated API.
">RemoteRequestHeaderUID</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the allocatedResourcesStatus field within the .status for a Pod. The field reports additional details for each container in the Pod, with the health information for each device assigned to the Pod.
Starting in v1.36 (beta), the health report includes an optional message field that provides additional human-readable context about the health status, such as error details or failure reasons.
This feature applies to devices managed by both Device Plugins and Dynamic Resource Allocation. See Device plugin and unhealthy devices for more details.
">ResourceHealthStatus</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable the allocatedResourcesStatus field within the .status for a Pod. The field reports additional details for each container in the Pod, with the health information for each device assigned to the Pod.
Starting in v1.36 (beta), the health report includes an optional message field that provides additional human-readable context about the health status, such as error details or failure reasons.
This feature applies to devices managed by both Device Plugins and Dynamic Resource Allocation. See Device plugin and unhealthy devices for more details.
">ResourceHealthStatus</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the ability to specify RestartAllContainers as an action in container restartPolicyRules. When a container&#39;s exit matches a rule with this action, the entire Pod is terminated and restarted in-place.
RestartAllContainersOnContainerExits depends on both the ContainerRestartRules and NodeDeclaredFeatures feature gates. If the dependent feature gates are not enabled, kubelet startup can fail.
See Restart All Containers for more details.
">RestartAllContainersOnContainerExits</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables the ability to specify RestartAllContainers as an action in container restartPolicyRules. When a container&#39;s exit matches a rule with this action, the entire Pod is terminated and restarted in-place.
RestartAllContainersOnContainerExits depends on both the ContainerRestartRules and NodeDeclaredFeatures feature gates. If the dependent feature gates are not enabled, kubelet startup can fail.
See Restart All Containers for more details.
">RestartAllContainersOnContainerExits</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the rotation of the server TLS certificate on the kubelet. See kubelet configuration for more details.
">RotateKubeletServerCertificate</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.7</td>
                <td>1.11</td>
            </tr>
            <tr>
                <td><code title="Enable the rotation of the server TLS certificate on the kubelet. See kubelet configuration for more details.
">RotateKubeletServerCertificate</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.12</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables images to be pulled based on the runtime class of the pods that reference them.
">RuntimeClassInImageCriApi</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Change the kube-scheduler to make the entire scheduling cycle free of blocking requests to the Kubernetes API server. Instead, interact with the Kubernetes API using asynchronous code.
">SchedulerAsyncAPICalls</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable running some expensive operations within the scheduler, associated with preemption, asynchronously. Asynchronous processing of preemption improves overall Pod scheduling latency.
">SchedulerAsyncPreemption</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable running some expensive operations within the scheduler, associated with preemption, asynchronously. Asynchronous processing of preemption improves overall Pod scheduling latency.
">SchedulerAsyncPreemption</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Improves scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue.
">SchedulerPopFromBackoffQ</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Speeds up container startup by allowing kubelet to mount volumes for a Pod directly with the correct SELinux label instead of changing each file on the volumes recursively. It widens the performance improvements behind the SELinuxMountReadWriteOncePod feature gate by extending the implementation to all volumes.
Enabling the SELinuxMount feature gate requires the feature gates SELinuxMountReadWriteOncePod and SELinuxChangePolicy to be enabled.
">SELinuxMount</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Speeds up container startup by allowing kubelet to mount volumes for a Pod directly with the correct SELinux label instead of changing each file on the volumes recursively. It widens the performance improvements behind the SELinuxMountReadWriteOncePod feature gate by extending the implementation to all volumes.
Enabling the SELinuxMount feature gate requires the feature gates SELinuxMountReadWriteOncePod and SELinuxChangePolicy to be enabled.
">SELinuxMount</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This gate is used to restrict the audience for which the kubelet can request a service account token for.
">ServiceAccountNodeAudienceRestriction</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="This gate is used to restrict the audience for which the kubelet can request a service account token for.
">ServiceAccountNodeAudienceRestriction</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable support for the shardSelector parameter on list and watch requests, allowing clients to receive a filtered subset of objects based on hash ranges of metadata fields (such as UID). See Sharded list and watch for more details.
">ShardedListAndWatch</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables APF to use size of objects for estimating request cost.
">SizeBasedListCostEstimate</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables behavior within the DaemonSet controller to ensure that prior writes to the API server are observed before proceeding with additional reconciliation for the same DaemonSet. This is to prevent stale cache from causing incorrect or spurious updates to the DaemonSet.
">StaleControllerConsistencyDaemonSet</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables behavior within the Job controller to ensure that prior writes to the API server are observed before proceeding with additional reconciliation for the same Job. This is to prevent stale cache from causing incorrect or spurious updates to the Job.
">StaleControllerConsistencyJob</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables behavior within the ReplicaSet controller to ensure that prior writes to the API server are observed before proceeding with additional reconciliation for the same ReplicaSet. This is to prevent stale cache from causing incorrect or spurious updates to the ReplicaSet.
">StaleControllerConsistencyReplicaSet</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables behavior within the StatefulSet controller to ensure that prior writes to the API server are observed before proceeding with additional reconciliation for the same StatefulSet. This is to prevent stale cache from causing incorrect or spurious updates to the StatefulSet.
">StaleControllerConsistencyStatefulSet</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="The feature gate VolumeCapacityPriority was used in v1.32 to support storage that are statically provisioned. Starting from v1.33, the new feature gate StorageCapacityScoring replaces the old VolumeCapacityPriority gate with added support to dynamically provisioned storage. When StorageCapacityScoring is enabled, the VolumeBinding plugin in the kube-scheduler is extended to score Nodes based on the storage capacity on each of them. This feature is applicable to CSI volumes that supported Storage Capacity, including local storage backed by a CSI driver.
">StorageCapacityScoring</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the storage version API.
">StorageVersionAPI</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.20</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow API servers to expose the storage version hash in the discovery.
">StorageVersionHash</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.14</td>
                <td>1.14</td>
            </tr>
            <tr>
                <td><code title="Allow API servers to expose the storage version hash in the discovery.
">StorageVersionHash</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.15</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the migration of the storage version of a resource.
">StorageVersionMigrator</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables the migration of the storage version of a resource.
">StorageVersionMigrator</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Use stricter validation for fields containing IP addresses and CIDR values.
In particular, with this feature gate enabled, octets within IPv4 addresses are not allowed to have any leading 0s, and IPv4-mapped IPv6 values (e.g. ::ffff:192.168.0.1) are forbidden. These sorts of values can potentially cause security problems when different components interpret the same string as referring to different IP addresses (as in CVE-2021-29923).
This tightening applies only to fields in build-in API kinds, and not to custom resource kinds, values in Kubernetes configuration files, or command-line arguments.
">StrictIPCIDRValidation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Use stricter validation for fields containing IP addresses and CIDR values.
In particular, with this feature gate enabled, octets within IPv4 addresses are not allowed to have any leading 0s, and IPv4-mapped IPv6 values (e.g. ::ffff:192.168.0.1) are forbidden. These sorts of values can potentially cause security problems when different components interpret the same string as referring to different IP addresses (as in CVE-2021-29923).
This tightening applies only to fields in build-in API kinds, and not to custom resource kinds, values in Kubernetes configuration files, or command-line arguments.
">StrictIPCIDRValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables Egress Selector in Structured Authentication Configuration.
">StructuredAuthenticationConfigurationEgressSelector</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables additional metrics for JSON Web Key Set (JWKS) operations in JWT authenticators configured via --authentication-config. When enabled, the API server records metrics about the last time JWKS was fetched and the hash value of the JWKS response. See the metrics reference for details.
">StructuredAuthenticationConfigurationJWKSMetrics</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for fine-grained SupplementalGroups control. For more details, see Configure fine-grained SupplementalGroups control for a Pod.
">SupplementalGroupsPolicy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables support for fine-grained SupplementalGroups control. For more details, see Configure fine-grained SupplementalGroups control for a Pod.
">SupplementalGroupsPolicy</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow using systemd watchdog to monitor the health status of kubelet. See Kubelet Systemd Watchdog for more details.
">SystemdWatchdog</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables numeric comparison operators (Lt and Gt) for tolerations.
">TaintTolerationComparisonOperators</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This is used to ensure that the UID provided in the TokenRequest matches the UID of the ServiceAccount for which the token is being requested. It helps prevent misuse of the TokenRequest API by ensuring that tokens are only issued for the correct ServiceAccount.
">TokenRequestServiceAccountUIDValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable topology-aware scheduling for Workloads.
">TopologyAwareWorkloadScheduling</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of topology manager policies, experimental, Alpha-quality options. This feature gate guards a group of topology manager options whose quality level is alpha. This feature gate will never graduate to beta or stable.
">TopologyManagerPolicyAlphaOptions</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of topology manager policies, experimental, Beta-quality options. This feature gate guards a group of topology manager options whose quality level is beta. This feature gate will never graduate to stable.
">TopologyManagerPolicyBetaOptions</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.26</td>
                <td>1.27</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of topology manager policies, experimental, Beta-quality options. This feature gate guards a group of topology manager options whose quality level is beta. This feature gate will never graduate to stable.
">TopologyManagerPolicyBetaOptions</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow WebSocket streaming of the remote command sub-protocol (exec, cp, attach) from clients requesting version 5 (v5) of the sub-protocol.
">TranslateStreamCloseWebsocketRequests</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Allow WebSocket streaming of the remote command sub-protocol (exec, cp, attach) from clients requesting version 5 (v5) of the sub-protocol.
">TranslateStreamCloseWebsocketRequests</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables HTTP/2 Denial of Service (DoS) mitigations for unauthenticated clients. Kubernetes v1.28.0 through v1.28.2 do not include this feature gate.
">UnauthenticatedHTTP2DOSMitigation</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Enables HTTP/2 Denial of Service (DoS) mitigations for unauthenticated clients. Kubernetes v1.28.0 through v1.28.2 do not include this feature gate.
">UnauthenticatedHTTP2DOSMitigation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Proxy resource requests to the correct peer kube-apiserver when multiple kube-apiservers exist at varied versions. See Mixed version proxy for more information.
">UnknownVersionInteroperabilityProxy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Proxy resource requests to the correct peer kube-apiserver when multiple kube-apiservers exist at varied versions. See Mixed version proxy for more information.
">UnknownVersionInteroperabilityProxy</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable use of a FIFO queue within client-go that unlocks while processing events. If not enabled, the queue instead holds the lock for the entire duration of processing events, which could lead to performance issues in high-throughput scenarios. This feature gate can be toggled in the kube-controller-manager and any client-go based controller.
You can only enable this feature gate if the AtomicFIFO feature gate is also enabled.
">UnlockWhileProcessingFIFO</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When enabled, pods are allowed to use both hostNetwork and User Namespaces simultaneously.
">UserNamespacesHostNetworkSupport</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables volume limit scaling for CSI drivers. This allows scheduler to co-ordinate better with cluster-autoscaler for storage limits. See Storage Limits for more information.
">VolumeLimitScaling</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables post-start-hook for watchcache initialization to be part of readyz (with timeout).
">WatchCacheInitializationPostStartHook</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable support for streaming initial state of objects in watch requests.
">WatchList</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enable support for streaming initial state of objects in watch requests.
">WatchList</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable support for streaming initial state of objects in watch requests.
">WatchList</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable support for streaming initial state of objects in watch requests.
">WatchList</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows an API client to request a stream of data rather than fetching a full list. This functionality is available in client-go and requires the WatchList feature to be enabled on the server. If the WatchList is not supported on the server, the client will seamlessly fall back to a standard list request.
">WatchListClient</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Allows an API client to request a stream of data rather than fetching a full list. This functionality is available in client-go and requires the WatchList feature to be enabled on the server. If the WatchList is not supported on the server, the client will seamlessly fall back to a standard list request.
">WatchListClient</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Add CPU and Memory Affinity support to Windows nodes with CPUManager, MemoryManager and topology manager.
">WindowsCPUAndMemoryAffinity</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for windows node graceful shutdown in kubelet. During a system shutdown, kubelet will attempt to detect the shutdown event and gracefully terminate pods running on the node. See Graceful Node Shutdown for more details.
">WindowsGracefulNodeShutdown</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables support for windows node graceful shutdown in kubelet. During a system shutdown, kubelet will attempt to detect the shutdown event and gracefully terminate pods running on the node. See Graceful Node Shutdown for more details.
">WindowsGracefulNodeShutdown</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the support for Workload-aware preemption.
When enabled, if a PodGroup fails to schedule, the scheduler will use a workload-aware preemption algorithm to select victims to preempt instead of the default pod preemption algorithm.
">WorkloadAwarePreemption</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the Job controller to automatically create Workload and PodGroup objects for qualifying Jobs. See Integrate with Workload APIs for details.
">WorkloadWithJob</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.36</td>
                <td>–</td>
            </tr></tbody>
</table>

<!-- Want to edit this table? See https://k8s.io/docs/contribute/new-content/new-features/#ready-for-review-feature-gates -->
### Feature gates for graduated or deprecated features

<table class="sortable-table">
    <caption style="display:none">Feature Gates for Graduated or Deprecated Features</caption>
    <thead>
      <tr>
          <th>Feature</th>
          <th>Default</th>
          <th>Stage</th>
          <th>Since</th>
          <th>Until</th>
      </tr>
    </thead>
    <tbody>
            <tr>
                <td><code title="Allow kubelet to request a certificate without any Node IP available, only with DNS names.
">AllowDNSOnlyNodeCSR</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Disable node admission validation of CertificateSigningRequests for kubelet signers. Unless you disable this feature gate, Kubernetes enforces that new kubelet certificates have a commonName matching system:node:$nodeName.
">AllowInsecureKubeletCertificateSigningRequests</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable configurable endpoints for anonymous auth for the API server.
">AnonymousAuthConfigurableEndpoints</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enable configurable endpoints for anonymous auth for the API server.
">AnonymousAuthConfigurableEndpoints</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable configurable endpoints for anonymous auth for the API server.
">AnonymousAuthConfigurableEndpoints</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable use of any custom resource as the DataSource of a PVC.
">AnyVolumeDataSource</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.18</td>
                <td>1.23</td>
            </tr>
            <tr>
                <td><code title="Enable use of any custom resource as the DataSource of a PVC.
">AnyVolumeDataSource</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.24</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable use of any custom resource as the DataSource of a PVC.
">AnyVolumeDataSource</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Add support for distributed tracing in the API server. See Traces for Kubernetes System Components for more details.
">APIServerTracing</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.22</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Add support for distributed tracing in the API server. See Traces for Kubernetes System Components for more details.
">APIServerTracing</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Add support for distributed tracing in the API server. See Traces for Kubernetes System Components for more details.
">APIServerTracing</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Make the Node authorizer use fine-grained selector authorization.
">AuthorizeNodeWithSelectors</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Make the Node authorizer use fine-grained selector authorization.
">AuthorizeNodeWithSelectors</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Make the Node authorizer use fine-grained selector authorization.
">AuthorizeNodeWithSelectors</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows authorization to use field and label selectors. Enables fieldSelector and labelSelector fields in the SubjectAccessReview API, passes field and label selector information to authorization webhooks, enables fieldSelector and labelSelector functions in the authorizer CEL library, and enables checking fieldSelector and labelSelector fields in authorization webhook matchConditions.
">AuthorizeWithSelectors</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Allows authorization to use field and label selectors. Enables fieldSelector and labelSelector fields in the SubjectAccessReview API, passes field and label selector information to authorization webhooks, enables fieldSelector and labelSelector functions in the authorizer CEL library, and enables checking fieldSelector and labelSelector fields in authorization webhook matchConditions.
">AuthorizeWithSelectors</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allows authorization to use field and label selectors. Enables fieldSelector and labelSelector fields in the SubjectAccessReview API, passes field and label selector information to authorization webhooks, enables fieldSelector and labelSelector functions in the authorizer CEL library, and enables checking fieldSelector and labelSelector fields in authorization webhook matchConditions.
">AuthorizeWithSelectors</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="When enabled, the API server will replace the legacy HashMap-based watch cache with a BTree-based implementation. This replacement may bring performance improvements.
">BtreeWatchCache</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="When enabled, the API server will replace the legacy HashMap-based watch cache with a BTree-based implementation. This replacement may bring performance improvements.
">BtreeWatchCache</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable legacy writes to update container ready status after the kubelet detects a restart.
This feature gate was introduced to allow you revert the behavior to a previously used default. If you are satisfied with the default behavior, you do not need to enable this feature gate.
">ChangeContainerStatusOnKubeletRestart</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enhance Kubernetes API server performance by serving consistent list requests directly from its watch cache, improving scalability and response times. To consistent list from cache Kubernetes requires a newer etcd version (v3.4.31&#43; or v3.5.13&#43;), that includes fixes to watch progress request feature. If older etcd version is provided Kubernetes will automatically detect it and fallback to serving consistent reads from etcd. Progress notifications ensure watch cache is consistent with etcd while reducing the need for resource-intensive quorum reads from etcd.
See the Kubernetes documentation on Semantics for get and list for more details.
">ConsistentListFromCache</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enhance Kubernetes API server performance by serving consistent list requests directly from its watch cache, improving scalability and response times. To consistent list from cache Kubernetes requires a newer etcd version (v3.4.31&#43; or v3.5.13&#43;), that includes fixes to watch progress request feature. If older etcd version is provided Kubernetes will automatically detect it and fallback to serving consistent reads from etcd. Progress notifications ensure watch cache is consistent with etcd while reducing the need for resource-intensive quorum reads from etcd.
See the Kubernetes documentation on Semantics for get and list for more details.
">ConsistentListFromCache</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enhance Kubernetes API server performance by serving consistent list requests directly from its watch cache, improving scalability and response times. To consistent list from cache Kubernetes requires a newer etcd version (v3.4.31&#43; or v3.5.13&#43;), that includes fixes to watch progress request feature. If older etcd version is provided Kubernetes will automatically detect it and fallback to serving consistent reads from etcd. Progress notifications ensure watch cache is consistent with etcd while reducing the need for resource-intensive quorum reads from etcd.
See the Kubernetes documentation on Semantics for get and list for more details.
">ConsistentListFromCache</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of CPUManager policies.
">CPUManagerPolicyOptions</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.22</td>
                <td>1.22</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of CPUManager policies.
">CPUManagerPolicyOptions</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.23</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allow fine-tuning of CPUManager policies.
">CPUManagerPolicyOptions</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable updates to custom resources to contain violations of their OpenAPI schema if the offending portions of the resource update did not change. See Validation Ratcheting for more details.
">CRDValidationRatcheting</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enable updates to custom resources to contain violations of their OpenAPI schema if the offending portions of the resource update did not change. See Validation Ratcheting for more details.
">CRDValidationRatcheting</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable updates to custom resources to contain violations of their OpenAPI schema if the offending portions of the resource update did not change. See Validation Ratcheting for more details.
">CRDValidationRatcheting</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Set the scheduled job time as an annotation on Jobs that were created on behalf of a CronJob.
">CronJobsScheduledAnnotation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Set the scheduled job time as an annotation on Jobs that were created on behalf of a CronJob.
">CronJobsScheduledAnnotation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables CSI drivers to opt-in for receiving service account tokens from kubelet through the dedicated secrets field in NodePublishVolumeRequest instead of the volume_context field.
">CSIServiceAccountTokenSecrets</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables CSI drivers to opt-in for receiving service account tokens from kubelet through the dedicated secrets field in NodePublishVolumeRequest instead of the volume_context field.
">CSIServiceAccountTokenSecrets</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable selectableFields in the CustomResourceDefinition API to allow filtering of custom resource list, watch and deletecollection requests.
">CustomResourceFieldSelectors</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enable selectableFields in the CustomResourceDefinition API to allow filtering of custom resource list, watch and deletecollection requests.
">CustomResourceFieldSelectors</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enable selectableFields in the CustomResourceDefinition API to allow filtering of custom resource list, watch and deletecollection requests.
">CustomResourceFieldSelectors</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables declarative validation of in-tree Kubernetes APIs. When enabled, APIs with declarative validation rules (defined using IDL tags in the Go code) will have both the generated declarative validation code and the original hand-written validation code executed. The results are compared, and any discrepancies are reported via the declarative_validation_mismatch_total metric. Only the hand-written validation result is returned to the user (eg: actually validates in the request path). The original hand-written validation are still the authoritative validations when this is enabled but this can be changed if the DeclarativeValidationBeta feature gate is enabled in addition to this gate. This feature gate only operates on the kube-apiserver component.
">DeclarativeValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables declarative validation of in-tree Kubernetes APIs. When enabled, APIs with declarative validation rules (defined using IDL tags in the Go code) will have both the generated declarative validation code and the original hand-written validation code executed. The results are compared, and any discrepancies are reported via the declarative_validation_mismatch_total metric. Only the hand-written validation result is returned to the user (eg: actually validates in the request path). The original hand-written validation are still the authoritative validations when this is enabled but this can be changed if the DeclarativeValidationBeta feature gate is enabled in addition to this gate. This feature gate only operates on the kube-apiserver component.
">DeclarativeValidation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Deprecated: in favor of DeclarativeValidationBeta.
When enabled, along with the DeclarativeValidation feature gate, declarative validation errors are returned directly to the caller, replacing hand-written validation errors for rules that have declarative implementations. When disabled (and DeclarativeValidation is enabled), hand-written validation errors are always returned, effectively putting declarative validation in a mismatch validation mode that monitors but does not affect API responses. This mismatch validation mode allows for the monitoring of the declarative_validation_mismatch_total and declarative_validation_panic_total metrics which are implementation details for a safer rollout, average user shouldn&#39;t need to interact with it directly. This feature gate only operates on the kube-apiserver component. Note: Although declarative validation aims for functional equivalence with hand-written validation, the exact description of error messages may differ between the two approaches.
">DeclarativeValidationTakeover</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Deprecated: in favor of DeclarativeValidationBeta.
When enabled, along with the DeclarativeValidation feature gate, declarative validation errors are returned directly to the caller, replacing hand-written validation errors for rules that have declarative implementations. When disabled (and DeclarativeValidation is enabled), hand-written validation errors are always returned, effectively putting declarative validation in a mismatch validation mode that monitors but does not affect API responses. This mismatch validation mode allows for the monitoring of the declarative_validation_mismatch_total and declarative_validation_panic_total metrics which are implementation details for a safer rollout, average user shouldn&#39;t need to interact with it directly. This feature gate only operates on the kube-apiserver component. Note: Although declarative validation aims for functional equivalence with hand-written validation, the exact description of error messages may differ between the two approaches.
">DeclarativeValidationTakeover</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="You can enable the MultiCIDRServiceAllocator feature gate. The API server supports migration from the old bitmap ClusterIP allocators to the new IPAddress allocators.
The API server performs a dual-write on both allocators. This feature gate disables the dual write on the new Cluster IP allocators; you can enable this feature gate if you have completed the relevant stage of the migration.
">DisableAllocatorDualWrite</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="You can enable the MultiCIDRServiceAllocator feature gate. The API server supports migration from the old bitmap ClusterIP allocators to the new IPAddress allocators.
The API server performs a dual-write on both allocators. This feature gate disables the dual write on the new Cluster IP allocators; you can enable this feature gate if you have completed the relevant stage of the migration.
">DisableAllocatorDualWrite</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="You can enable the MultiCIDRServiceAllocator feature gate. The API server supports migration from the old bitmap ClusterIP allocators to the new IPAddress allocators.
The API server performs a dual-write on both allocators. This feature gate disables the dual write on the new Cluster IP allocators; you can enable this feature gate if you have completed the relevant stage of the migration.
">DisableAllocatorDualWrite</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Disable setting the kubeProxyVersion field of the Node.
">DisableNodeKubeProxyVersion</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Disable setting the kubeProxyVersion field of the Node.
">DisableNodeKubeProxyVersion</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31.0</td>
                <td>1.31.0</td>
            </tr>
            <tr>
                <td><code title="Disable setting the kubeProxyVersion field of the Node.
">DisableNodeKubeProxyVersion</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.31.1</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Disable setting the kubeProxyVersion field of the Node.
">DisableNodeKubeProxyVersion</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Disable setting the kubeProxyVersion field of the Node.
">DisableNodeKubeProxyVersion</code></td>
                <td><code>true</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for requesting admin access in a ResourceClaim or a ResourceClaimTemplate. Admin access grants access to in-use devices and may enable additional permissions when making the device available in a container. Starting with Kubernetes v1.33, only users authorized to create ResourceClaim or ResourceClaimTemplate objects in namespaces labeled with resource.kubernetes.io/admin-access: &quot;true&quot; (case-sensitive) can use the adminAccess field. This ensures that non-admin users cannot misuse the feature. Starting with Kubernetes v1.34, this label has been updated to resource.kubernetes.io/admin-access: &quot;true&quot;.
">DRAAdminAccess</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables support for requesting admin access in a ResourceClaim or a ResourceClaimTemplate. Admin access grants access to in-use devices and may enable additional permissions when making the device available in a container. Starting with Kubernetes v1.33, only users authorized to create ResourceClaim or ResourceClaimTemplate objects in namespaces labeled with resource.kubernetes.io/admin-access: &quot;true&quot; (case-sensitive) can use the adminAccess field. This ensures that non-admin users cannot misuse the feature. Starting with Kubernetes v1.34, this label has been updated to resource.kubernetes.io/admin-access: &quot;true&quot;.
">DRAAdminAccess</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables support for requesting admin access in a ResourceClaim or a ResourceClaimTemplate. Admin access grants access to in-use devices and may enable additional permissions when making the device available in a container. Starting with Kubernetes v1.33, only users authorized to create ResourceClaim or ResourceClaimTemplate objects in namespaces labeled with resource.kubernetes.io/admin-access: &quot;true&quot; (case-sensitive) can use the adminAccess field. This ensures that non-admin users cannot misuse the feature. Starting with Kubernetes v1.34, this label has been updated to resource.kubernetes.io/admin-access: &quot;true&quot;.
">DRAAdminAccess</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows specifying a prioritized list of alternative devices that can be allocated to a request in a claim if the preferred alternative is not available.
">DRAPrioritizedList</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allows specifying a prioritized list of alternative devices that can be allocated to a request in a claim if the preferred alternative is not available.
">DRAPrioritizedList</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Allows specifying a prioritized list of alternative devices that can be allocated to a request in a claim if the preferred alternative is not available.
">DRAPrioritizedList</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for resources with custom parameters and a lifecycle that is independent of a Pod. Allocation of resources is handled by the Kubernetes scheduler based on &quot;structured parameters&quot;.
">DynamicResourceAllocation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enables support for resources with custom parameters and a lifecycle that is independent of a Pod. Allocation of resources is handled by the Kubernetes scheduler based on &quot;structured parameters&quot;.
">DynamicResourceAllocation</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables support for resources with custom parameters and a lifecycle that is independent of a Pod. Allocation of resources is handled by the Kubernetes scheduler based on &quot;structured parameters&quot;.
">DynamicResourceAllocation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables support for resources with custom parameters and a lifecycle that is independent of a Pod. Allocation of resources is handled by the Kubernetes scheduler based on &quot;structured parameters&quot;.
">DynamicResourceAllocation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables Indexed Jobs to be scaled up or down by mutating both spec.completions and spec.parallelism together such that spec.completions == spec.parallelism. See docs on elastic Indexed Jobs for more details.
">ElasticIndexedJob</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enables Indexed Jobs to be scaled up or down by mutating both spec.completions and spec.parallelism together such that spec.completions == spec.parallelism. See docs on elastic Indexed Jobs for more details.
">ElasticIndexedJob</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Ensure kubelet respects exec probe timeouts. This feature gate exists in case any of your existing workloads depend on a now-corrected fault where Kubernetes ignored exec probe timeouts. See readiness probes.
">ExecProbeTimeout</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.20</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable setting --service-account-signing-endpoint to make the kube-apiserver use external signer for token signing and token verifying key management.
">ExternalServiceAccountTokenSigner</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable setting --service-account-signing-endpoint to make the kube-apiserver use external signer for token signing and token verifying key management.
">ExternalServiceAccountTokenSigner</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable setting --service-account-signing-endpoint to make the kube-apiserver use external signer for token signing and token verifying key management.
">ExternalServiceAccountTokenSigner</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="This controls if the gitRepo volume plugin is supported or not. The gitRepo volume plugin is disabled by default starting v1.33 release. This provides a way for users to enable it.
">GitRepoVolumeDriver</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet configuration field imageMaximumGCAge, allowing an administrator to specify the age after which an image will be garbage collected.
">ImageMaximumGCAge</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet configuration field imageMaximumGCAge, allowing an administrator to specify the age after which an image will be garbage collected.
">ImageMaximumGCAge</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet configuration field imageMaximumGCAge, allowing an administrator to specify the age after which an image will be garbage collected.
">ImageMaximumGCAge</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow using the image volume source in a Pod. This volume source lets you mount a container image as a read-only volume.
">ImageVolume</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allow using the image volume source in a Pod. This volume source lets you mount a container image as a read-only volume.
">ImageVolume</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Allow using the image volume source in a Pod. This volume source lets you mount a container image as a read-only volume.
">ImageVolume</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Allow using the image volume source in a Pod. This volume source lets you mount a container image as a read-only volume.
">ImageVolume</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow clients to use the LastSyncResourceVersion() call on informers, enabling them to perform actions based on the current resource version. When disabled, LastSyncResourceVersion() succeeds but returns an empty string. Used by kube-controller-manager for StorageVersionMigration.
">InformerResourceVersion</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Allow clients to use the LastSyncResourceVersion() call on informers, enabling them to perform actions based on the current resource version. When disabled, LastSyncResourceVersion() succeeds but returns an empty string. Used by kube-controller-manager for StorageVersionMigration.
">InformerResourceVersion</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables in-place Pod vertical scaling.
">InPlacePodVerticalScaling</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables in-place Pod vertical scaling.
">InPlacePodVerticalScaling</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables in-place Pod vertical scaling.
">InPlacePodVerticalScaling</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the allocatedResources field in the container status. This feature requires the InPlacePodVerticalScaling gate be enabled as well.
">InPlacePodVerticalScalingAllocatedStatus</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables the allocatedResources field in the container status. This feature requires the InPlacePodVerticalScaling gate be enabled as well.
">InPlacePodVerticalScalingAllocatedStatus</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows specifying the maximal number of pod retries per index in Indexed jobs.
">JobBackoffLimitPerIndex</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Allows specifying the maximal number of pod retries per index in Indexed jobs.
">JobBackoffLimitPerIndex</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allows specifying the maximal number of pod retries per index in Indexed jobs.
">JobBackoffLimitPerIndex</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows to delegate reconciliation of a Job object to an external controller.
">JobManagedBy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Allows to delegate reconciliation of a Job object to an external controller.
">JobManagedBy</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Allows to delegate reconciliation of a Job object to an external controller.
">JobManagedBy</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows you to specify pod replacement for terminating pods in a Job
">JobPodReplacementPolicy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Allows you to specify pod replacement for terminating pods in a Job
">JobPodReplacementPolicy</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allows you to specify pod replacement for terminating pods in a Job
">JobPodReplacementPolicy</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow users to specify when a Job can be declared as succeeded based on the set of succeeded pods.
">JobSuccessPolicy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Allow users to specify when a Job can be declared as succeeded based on the set of succeeded pods.
">JobSuccessPolicy</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allow users to specify when a Job can be declared as succeeded based on the set of succeeded pods.
">JobSuccessPolicy</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables KMS v1 API for encryption at rest. See Using a KMS Provider for data encryption for more details.
">KMSv1</code></td>
                <td><code>true</code></td>
                <td>Deprecated</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Enables KMS v1 API for encryption at rest. See Using a KMS Provider for data encryption for more details.
">KMSv1</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.29</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable detection of the kubelet cgroup driver configuration option from the CRI. This feature gate is now on for all clusters. However, it only works on nodes where there is a CRI container runtime that supports the RuntimeConfig CRI call. If the CRI supports this feature, the kubelet ignores the cgroupDriver configuration setting (or deprecated --cgroup-driver command line argument). If the container runtime doesn&#39;t support it, the kubelet falls back to using the driver configured using the cgroupDriver configuration setting. The kubelet will stop falling back to this configuration in Kubernetes 1.36. Thus, users must upgrade their CRI container runtime to a version that supports the RuntimeConfig CRI call by then. Admins can use the metric kubelet_cri_losing_support to see if there are any nodes in their cluster that will lose support in 1.36. The following CRI versions support this CRI call:
containerd: Support was added in v2.0.0 CRI-O: Support was added in v1.28.0 See Configuring a cgroup driver for more details.
">KubeletCgroupDriverFromCRI</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enable detection of the kubelet cgroup driver configuration option from the CRI. This feature gate is now on for all clusters. However, it only works on nodes where there is a CRI container runtime that supports the RuntimeConfig CRI call. If the CRI supports this feature, the kubelet ignores the cgroupDriver configuration setting (or deprecated --cgroup-driver command line argument). If the container runtime doesn&#39;t support it, the kubelet falls back to using the driver configured using the cgroupDriver configuration setting. The kubelet will stop falling back to this configuration in Kubernetes 1.36. Thus, users must upgrade their CRI container runtime to a version that supports the RuntimeConfig CRI call by then. Admins can use the metric kubelet_cri_losing_support to see if there are any nodes in their cluster that will lose support in 1.36. The following CRI versions support this CRI call:
containerd: Support was added in v2.0.0 CRI-O: Support was added in v1.28.0 See Configuring a cgroup driver for more details.
">KubeletCgroupDriverFromCRI</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable detection of the kubelet cgroup driver configuration option from the CRI. This feature gate is now on for all clusters. However, it only works on nodes where there is a CRI container runtime that supports the RuntimeConfig CRI call. If the CRI supports this feature, the kubelet ignores the cgroupDriver configuration setting (or deprecated --cgroup-driver command line argument). If the container runtime doesn&#39;t support it, the kubelet falls back to using the driver configured using the cgroupDriver configuration setting. The kubelet will stop falling back to this configuration in Kubernetes 1.36. Thus, users must upgrade their CRI container runtime to a version that supports the RuntimeConfig CRI call by then. Admins can use the metric kubelet_cri_losing_support to see if there are any nodes in their cluster that will lose support in 1.36. The following CRI versions support this CRI call:
containerd: Support was added in v2.0.0 CRI-O: Support was added in v1.28.0 See Configuring a cgroup driver for more details.
">KubeletCgroupDriverFromCRI</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable fine-grained authorization for the kubelet&#39;s HTTP(s) API.
">KubeletFineGrainedAuthz</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable fine-grained authorization for the kubelet&#39;s HTTP(s) API.
">KubeletFineGrainedAuthz</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable fine-grained authorization for the kubelet&#39;s HTTP(s) API.
">KubeletFineGrainedAuthz</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Extend the kubelet&#39;s pod resources monitoring gRPC API endpoints List and Get to include resources allocated in ResourceClaims via Dynamic Resource Allocation.
Below is an example of GPU metrics to show how this API is consumed by NVIDIA dcgm-exporter to collect per pod GPU metrics allocated by NVIDIA DRA driver:
DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod1&#34;} 23792 DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod2&#34;} 23792 with Pod DRA info: container=&#34;ctr&#34;, dra_claim_name=&#34;single-gpu&#34;, dra_claim_namespace=&#34;gpu-test3&#34;, dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;, dra_pool_name=&#34;sc-starwars-xxxx&#34;, namespace=&#34;gpu-test3&#34;, pod=&#34;pod1&#34; ">KubeletPodResourcesDynamicResources</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Extend the kubelet&#39;s pod resources monitoring gRPC API endpoints List and Get to include resources allocated in ResourceClaims via Dynamic Resource Allocation.
Below is an example of GPU metrics to show how this API is consumed by NVIDIA dcgm-exporter to collect per pod GPU metrics allocated by NVIDIA DRA driver:
DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod1&#34;} 23792 DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod2&#34;} 23792 with Pod DRA info: container=&#34;ctr&#34;, dra_claim_name=&#34;single-gpu&#34;, dra_claim_namespace=&#34;gpu-test3&#34;, dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;, dra_pool_name=&#34;sc-starwars-xxxx&#34;, namespace=&#34;gpu-test3&#34;, pod=&#34;pod1&#34; ">KubeletPodResourcesDynamicResources</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Extend the kubelet&#39;s pod resources monitoring gRPC API endpoints List and Get to include resources allocated in ResourceClaims via Dynamic Resource Allocation.
Below is an example of GPU metrics to show how this API is consumed by NVIDIA dcgm-exporter to collect per pod GPU metrics allocated by NVIDIA DRA driver:
DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod1&#34;} 23792 DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod2&#34;} 23792 with Pod DRA info: container=&#34;ctr&#34;, dra_claim_name=&#34;single-gpu&#34;, dra_claim_namespace=&#34;gpu-test3&#34;, dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;, dra_pool_name=&#34;sc-starwars-xxxx&#34;, namespace=&#34;gpu-test3&#34;, pod=&#34;pod1&#34; ">KubeletPodResourcesDynamicResources</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the Get gRPC endpoint on kubelet&#39;s for Pod resources. This API augments the resource allocation reporting.
">KubeletPodResourcesGet</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable the Get gRPC endpoint on kubelet&#39;s for Pod resources. This API augments the resource allocation reporting.
">KubeletPodResourcesGet</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable the Get gRPC endpoint on kubelet&#39;s for Pod resources. This API augments the resource allocation reporting.
">KubeletPodResourcesGet</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable kubelet to surface Pressure Stall Information (PSI) metrics in the Summary API and Prometheus metrics.
">KubeletPSI</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable kubelet to surface Pressure Stall Information (PSI) metrics in the Summary API and Prometheus metrics.
">KubeletPSI</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable kubelet to surface Pressure Stall Information (PSI) metrics in the Summary API and Prometheus metrics.
">KubeletPSI</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Add support for distributed tracing in the kubelet. When enabled, kubelet CRI interface and authenticated http servers are instrumented to generate OpenTelemetry trace spans. See Traces for Kubernetes System Components for more details.
">KubeletTracing</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.25</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Add support for distributed tracing in the kubelet. When enabled, kubelet CRI interface and authenticated http servers are instrumented to generate OpenTelemetry trace spans. See Traces for Kubernetes System Components for more details.
">KubeletTracing</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Add support for distributed tracing in the kubelet. When enabled, kubelet CRI interface and authenticated http servers are instrumented to generate OpenTelemetry trace spans. See Traces for Kubernetes System Components for more details.
">KubeletTracing</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable semi-random selection of pods to evict on controller scaledown based on logarithmic bucketing of pod timestamps.
">LogarithmicScaleDown</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.21</td>
                <td>1.21</td>
            </tr>
            <tr>
                <td><code title="Enable semi-random selection of pods to evict on controller scaledown based on logarithmic bucketing of pod timestamps.
">LogarithmicScaleDown</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.22</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enable semi-random selection of pods to evict on controller scaledown based on logarithmic bucketing of pod timestamps.
">LogarithmicScaleDown</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the matchLabelKeys and mismatchLabelKeys fields for pod (anti)affinity.
">MatchLabelKeysInPodAffinity</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enable the matchLabelKeys and mismatchLabelKeys fields for pod (anti)affinity.
">MatchLabelKeysInPodAffinity</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable the matchLabelKeys and mismatchLabelKeys fields for pod (anti)affinity.
">MatchLabelKeysInPodAffinity</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows setting memory affinity for a container based on NUMA topology.
">MemoryManager</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.21</td>
                <td>1.21</td>
            </tr>
            <tr>
                <td><code title="Allows setting memory affinity for a container based on NUMA topology.
">MemoryManager</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.22</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Allows setting memory affinity for a container based on NUMA topology.
">MemoryManager</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Track IP address allocations for Service cluster IPs using IPAddress objects.
">MultiCIDRServiceAllocator</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Track IP address allocations for Service cluster IPs using IPAddress objects.
">MultiCIDRServiceAllocator</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Track IP address allocations for Service cluster IPs using IPAddress objects.
">MultiCIDRServiceAllocator</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Make the .spec.drivers[*].allocatable.count field of a CSINode mutable. Also, enable a CSIDriver field, nodeAllocatableUpdatePeriodSeconds.
This allows periodic updates to a node&#39;s reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that the kube-scheduler would otherwise rely upon.
">MutableCSINodeAllocatableCount</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Make the .spec.drivers[*].allocatable.count field of a CSINode mutable. Also, enable a CSIDriver field, nodeAllocatableUpdatePeriodSeconds.
This allows periodic updates to a node&#39;s reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that the kube-scheduler would otherwise rely upon.
">MutableCSINodeAllocatableCount</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Make the .spec.drivers[*].allocatable.count field of a CSINode mutable. Also, enable a CSIDriver field, nodeAllocatableUpdatePeriodSeconds.
This allows periodic updates to a node&#39;s reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that the kube-scheduler would otherwise rely upon.
">MutableCSINodeAllocatableCount</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.35</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Make the .spec.drivers[*].allocatable.count field of a CSINode mutable. Also, enable a CSIDriver field, nodeAllocatableUpdatePeriodSeconds.
This allows periodic updates to a node&#39;s reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that the kube-scheduler would otherwise rely upon.
">MutableCSINodeAllocatableCount</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable MutatingAdmissionPolicy support, which allows CEL mutations to be applied during admission control.
For Kubernetes v1.30 and v1.31, this feature gate existed but had no effect.
">MutatingAdmissionPolicy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable MutatingAdmissionPolicy support, which allows CEL mutations to be applied during admission control.
For Kubernetes v1.30 and v1.31, this feature gate existed but had no effect.
">MutatingAdmissionPolicy</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable MutatingAdmissionPolicy support, which allows CEL mutations to be applied during admission control.
For Kubernetes v1.30 and v1.31, this feature gate existed but had no effect.
">MutatingAdmissionPolicy</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow running kube-proxy in nftables mode.
">NFTablesProxyMode</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Allow running kube-proxy in nftables mode.
">NFTablesProxyMode</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allow running kube-proxy in nftables mode.
">NFTablesProxyMode</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable using nodeAffinityPolicy and nodeTaintsPolicy in Pod topology spread constraints when calculating pod topology spread skew.
">NodeInclusionPolicyInPodTopologySpread</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.25</td>
                <td>1.25</td>
            </tr>
            <tr>
                <td><code title="Enable using nodeAffinityPolicy and nodeTaintsPolicy in Pod topology spread constraints when calculating pod topology spread skew.
">NodeInclusionPolicyInPodTopologySpread</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.26</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable using nodeAffinityPolicy and nodeTaintsPolicy in Pod topology spread constraints when calculating pod topology spread skew.
">NodeInclusionPolicyInPodTopologySpread</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables querying logs of node services using the /logs endpoint.
">NodeLogQuery</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.27</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enables querying logs of node services using the /logs endpoint.
">NodeLogQuery</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables querying logs of node services using the /logs endpoint.
">NodeLogQuery</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet to allocate swap memory for Kubernetes workloads on a node. Must be used with KubeletConfiguration.failSwapOn set to false. For more details, please see swap memory
">NodeSwap</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.22</td>
                <td>1.27</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet to allocate swap memory for Kubernetes workloads on a node. Must be used with KubeletConfiguration.failSwapOn set to false. For more details, please see swap memory
">NodeSwap</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet to allocate swap memory for Kubernetes workloads on a node. Must be used with KubeletConfiguration.failSwapOn set to false. For more details, please see swap memory
">NodeSwap</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable the kubelet to allocate swap memory for Kubernetes workloads on a node. Must be used with KubeletConfiguration.failSwapOn set to false. For more details, please see swap memory
">NodeSwap</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="While deleting namespace, the pods resources is going to be deleted before the rest of resources.
">OrderedNamespaceDeletion</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="While deleting namespace, the pods resources is going to be deleted before the rest of resources.
">OrderedNamespaceDeletion</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="While deleting namespace, the pods resources is going to be deleted before the rest of resources.
">OrderedNamespaceDeletion</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the Job controller and StatefulSet controller to add the pod index as a label when creating new pods. See Job completion mode docs and StatefulSet pod index label docs for more details.
">PodIndexLabel</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enables the Job controller and StatefulSet controller to add the pod index as a label when creating new pods. See Job completion mode docs and StatefulSet pod index label docs for more details.
">PodIndexLabel</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the sleep action in Container lifecycle hooks (preStop and postStart).
">PodLifecycleSleepAction</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enables the sleep action in Container lifecycle hooks (preStop and postStart).
">PodLifecycleSleepAction</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables the sleep action in Container lifecycle hooks (preStop and postStart).
">PodLifecycleSleepAction</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables setting zero value for the sleep action in container lifecycle hooks.
">PodLifecycleSleepActionAllowZero</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables setting zero value for the sleep action in container lifecycle hooks.
">PodLifecycleSleepActionAllowZero</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables setting zero value for the sleep action in container lifecycle hooks.
">PodLifecycleSleepActionAllowZero</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet to set observedGeneration in the Pod .status, and enables other components to set observedGeneration in pod conditions. This feature allows reflecting the .metadata.generation of the Pod at the time that the overall status, or some specific condition, was being recorded. Storing it helps avoid risks associated with lost updates.
">PodObservedGenerationTracking</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet to set observedGeneration in the Pod .status, and enables other components to set observedGeneration in pod conditions. This feature allows reflecting the .metadata.generation of the Pod at the time that the overall status, or some specific condition, was being recorded. Storing it helps avoid risks associated with lost updates.
">PodObservedGenerationTracking</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Enables the kubelet to set observedGeneration in the Pod .status, and enables other components to set observedGeneration in pod conditions. This feature allows reflecting the .metadata.generation of the Pod at the time that the overall status, or some specific condition, was being recorded. Storing it helps avoid risks associated with lost updates.
">PodObservedGenerationTracking</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable setting schedulingGates field to control a Pod&#39;s scheduling readiness.
">PodSchedulingReadiness</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Enable setting schedulingGates field to control a Pod&#39;s scheduling readiness.
">PodSchedulingReadiness</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enable setting schedulingGates field to control a Pod&#39;s scheduling readiness.
">PodSchedulingReadiness</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.30</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows usage of the values PreferSameZone and PreferSameNode in the Service trafficDistribution field.
">PreferSameTrafficDistribution</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allows usage of the values PreferSameZone and PreferSameNode in the Service trafficDistribution field.
">PreferSameTrafficDistribution</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.34</td>
                <td>1.34</td>
            </tr>
            <tr>
                <td><code title="Allows usage of the values PreferSameZone and PreferSameNode in the Service trafficDistribution field.
">PreferSameTrafficDistribution</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.35</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables control over the type proc mounts for containers by setting the procMount field of a Pod&#39;s securityContext.
">ProcMountType</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.12</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enables control over the type proc mounts for containers by setting the procMount field of a Pod&#39;s securityContext.
">ProcMountType</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables control over the type proc mounts for containers by setting the procMount field of a Pod&#39;s securityContext.
">ProcMountType</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables control over the type proc mounts for containers by setting the procMount field of a Pod&#39;s securityContext.
">ProcMountType</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables users to edit their PVCs to smaller sizes so as they can recover from previously issued volume expansion failures. See Recovering from Failure when Expanding Volumes for more details.
">RecoverVolumeExpansionFailure</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.23</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enables users to edit their PVCs to smaller sizes so as they can recover from previously issued volume expansion failures. See Recovering from Failure when Expanding Volumes for more details.
">RecoverVolumeExpansionFailure</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables users to edit their PVCs to smaller sizes so as they can recover from previously issued volume expansion failures. See Recovering from Failure when Expanding Volumes for more details.
">RecoverVolumeExpansionFailure</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for recursive read-only mounts. For more details, see read-only mounts.
">RecursiveReadOnlyMounts</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enables support for recursive read-only mounts. For more details, see read-only mounts.
">RecursiveReadOnlyMounts</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables support for recursive read-only mounts. For more details, see read-only mounts.
">RecursiveReadOnlyMounts</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Relax the server side validation for the DNS search string (.spec.dnsConfig.searches) for containers. For example, with this gate enabled, it is okay to include the _ character in the DNS name search string.
">RelaxedDNSSearchValidation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Relax the server side validation for the DNS search string (.spec.dnsConfig.searches) for containers. For example, with this gate enabled, it is okay to include the _ character in the DNS name search string.
">RelaxedDNSSearchValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Relax the server side validation for the DNS search string (.spec.dnsConfig.searches) for containers. For example, with this gate enabled, it is okay to include the _ character in the DNS name search string.
">RelaxedDNSSearchValidation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow almost all printable ASCII characters in environment variables.
">RelaxedEnvironmentVariableValidation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Allow almost all printable ASCII characters in environment variables.
">RelaxedEnvironmentVariableValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allow almost all printable ASCII characters in environment variables.
">RelaxedEnvironmentVariableValidation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables resilient watchcache initialization to avoid controlplane overload.
">ResilientWatchCacheInitialization</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables resilient watchcache initialization to avoid controlplane overload.
">ResilientWatchCacheInitialization</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables retrying of object creation when the API server is expected to generate a name.
When this feature is enabled, requests using generateName are retried automatically in case the control plane detects a name conflict with an existing object, up to a limit of 8 total attempts.
">RetryGenerateName</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enables retrying of object creation when the API server is expected to generate a name.
When this feature is enabled, requests using generateName are retried automatically in case the control plane detects a name conflict with an existing object, up to a limit of 8 total attempts.
">RetryGenerateName</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enables retrying of object creation when the API server is expected to generate a name.
When this feature is enabled, requests using generateName are retried automatically in case the control plane detects a name conflict with an existing object, up to a limit of 8 total attempts.
">RetryGenerateName</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables scheduler queueing hints, which benefits to reduce the useless requeuing. The scheduler retries scheduling pods if something changes in the cluster that could make the pod scheduled. Queueing hints are internal signals that allow the scheduler to filter the changes in the cluster that are relevant to the unscheduled pod, based on previous scheduling attempts.
">SchedulerQueueingHints</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Enables scheduler queueing hints, which benefits to reduce the useless requeuing. The scheduler retries scheduling pods if something changes in the cluster that could make the pod scheduled. Queueing hints are internal signals that allow the scheduler to filter the changes in the cluster that are relevant to the unscheduled pod, based on previous scheduling attempts.
">SchedulerQueueingHints</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enables scheduler queueing hints, which benefits to reduce the useless requeuing. The scheduler retries scheduling pods if something changes in the cluster that could make the pod scheduled. Queueing hints are internal signals that allow the scheduler to filter the changes in the cluster that are relevant to the unscheduled pod, based on previous scheduling attempts.
">SchedulerQueueingHints</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.32</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables scheduler queueing hints, which benefits to reduce the useless requeuing. The scheduler retries scheduling pods if something changes in the cluster that could make the pod scheduled. Queueing hints are internal signals that allow the scheduler to filter the changes in the cluster that are relevant to the unscheduled pod, based on previous scheduling attempts.
">SchedulerQueueingHints</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables spec.securityContext.seLinuxChangePolicy field. This field can be used to opt-out from applying the SELinux label to the pod volumes using mount options. This is required when a single volume that supports mounting with SELinux mount option is shared between Pods that have different SELinux labels, such as a privileged and unprivileged Pods.
Enabling the SELinuxChangePolicy feature gate requires the feature gate SELinuxMountReadWriteOncePod to be enabled.
">SELinuxChangePolicy</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.32</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables spec.securityContext.seLinuxChangePolicy field. This field can be used to opt-out from applying the SELinux label to the pod volumes using mount options. This is required when a single volume that supports mounting with SELinux mount option is shared between Pods that have different SELinux labels, such as a privileged and unprivileged Pods.
Enabling the SELinuxChangePolicy feature gate requires the feature gate SELinuxMountReadWriteOncePod to be enabled.
">SELinuxChangePolicy</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enables spec.securityContext.seLinuxChangePolicy field. This field can be used to opt-out from applying the SELinux label to the pod volumes using mount options. This is required when a single volume that supports mounting with SELinux mount option is shared between Pods that have different SELinux labels, such as a privileged and unprivileged Pods.
Enabling the SELinuxChangePolicy feature gate requires the feature gate SELinuxMountReadWriteOncePod to be enabled.
">SELinuxChangePolicy</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Speeds up container startup by allowing kubelet to mount volumes for a Pod directly with the correct SELinux label instead of changing each file on the volumes recursively. The initial implementation focused on ReadWriteOncePod volumes.
">SELinuxMountReadWriteOncePod</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.25</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Speeds up container startup by allowing kubelet to mount volumes for a Pod directly with the correct SELinux label instead of changing each file on the volumes recursively. The initial implementation focused on ReadWriteOncePod volumes.
">SELinuxMountReadWriteOncePod</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.27</td>
            </tr>
            <tr>
                <td><code title="Speeds up container startup by allowing kubelet to mount volumes for a Pod directly with the correct SELinux label instead of changing each file on the volumes recursively. The initial implementation focused on ReadWriteOncePod volumes.
">SELinuxMountReadWriteOncePod</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Speeds up container startup by allowing kubelet to mount volumes for a Pod directly with the correct SELinux label instead of changing each file on the volumes recursively. The initial implementation focused on ReadWriteOncePod volumes.
">SELinuxMountReadWriteOncePod</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows the API server watch cache to create a watch on a dedicated RPC. This prevents watch cache from being starved by other watches.
">SeparateCacheWatchRPC</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allows the API server watch cache to create a watch on a dedicated RPC. This prevents watch cache from being starved by other watches.
">SeparateCacheWatchRPC</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables running the taint based eviction controller, that performs Taint-based Evictions, as a standalone controller (separate from the node lifecycle controller).
">SeparateTaintEvictionController</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enables running the taint based eviction controller, that performs Taint-based Evictions, as a standalone controller (separate from the node lifecycle controller).
">SeparateTaintEvictionController</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Controls whether JTIs (UUIDs) are embedded into generated service account tokens, and whether these JTIs are recorded into the Kubernetes audit log for future requests made by these tokens.
">ServiceAccountTokenJTI</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Controls whether JTIs (UUIDs) are embedded into generated service account tokens, and whether these JTIs are recorded into the Kubernetes audit log for future requests made by these tokens.
">ServiceAccountTokenJTI</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Controls whether JTIs (UUIDs) are embedded into generated service account tokens, and whether these JTIs are recorded into the Kubernetes audit log for future requests made by these tokens.
">ServiceAccountTokenJTI</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Controls whether the API server allows binding service account tokens to Node objects.
">ServiceAccountTokenNodeBinding</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Controls whether the API server allows binding service account tokens to Node objects.
">ServiceAccountTokenNodeBinding</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Controls whether the API server allows binding service account tokens to Node objects.
">ServiceAccountTokenNodeBinding</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Controls whether the apiserver will validate a Node reference in service account tokens.
">ServiceAccountTokenNodeBindingValidation</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Controls whether the apiserver will validate a Node reference in service account tokens.
">ServiceAccountTokenNodeBindingValidation</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Controls whether the apiserver will validate a Node reference in service account tokens.
">ServiceAccountTokenNodeBindingValidation</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Controls whether the apiserver embeds the node name and uid for the associated node when issuing service account tokens bound to Pod objects.
">ServiceAccountTokenPodNodeInfo</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Controls whether the apiserver embeds the node name and uid for the associated node when issuing service account tokens bound to Pod objects.
">ServiceAccountTokenPodNodeInfo</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Controls whether the apiserver embeds the node name and uid for the associated node when issuing service account tokens bound to Pod objects.
">ServiceAccountTokenPodNodeInfo</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows usage of the optional spec.trafficDistribution field in Services. The field offers a way to express preferences for how traffic is distributed to Service endpoints.
">ServiceTrafficDistribution</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.30</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Allows usage of the optional spec.trafficDistribution field in Services. The field offers a way to express preferences for how traffic is distributed to Service endpoints.
">ServiceTrafficDistribution</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allows usage of the optional spec.trafficDistribution field in Services. The field offers a way to express preferences for how traffic is distributed to Service endpoints.
">ServiceTrafficDistribution</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow setting the restartPolicy of an init container to Always so that the container becomes a sidecar container (restartable init containers). See Sidecar containers and restartPolicy for more details.
">SidecarContainers</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.28</td>
            </tr>
            <tr>
                <td><code title="Allow setting the restartPolicy of an init container to Always so that the container becomes a sidecar container (restartable init containers). See Sidecar containers and restartPolicy for more details.
">SidecarContainers</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.29</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allow setting the restartPolicy of an init container to Always so that the container becomes a sidecar container (restartable init containers). See Sidecar containers and restartPolicy for more details.
">SidecarContainers</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows the use of the optional .spec.persistentVolumeClaimRetentionPolicy field, providing control over the deletion of PVCs in a StatefulSet&#39;s lifecycle. See PersistentVolumeClaim retention for more details.
">StatefulSetAutoDeletePVC</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.23</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Allows the use of the optional .spec.persistentVolumeClaimRetentionPolicy field, providing control over the deletion of PVCs in a StatefulSet&#39;s lifecycle. See PersistentVolumeClaim retention for more details.
">StatefulSetAutoDeletePVC</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Allows the use of the optional .spec.persistentVolumeClaimRetentionPolicy field, providing control over the deletion of PVCs in a StatefulSet&#39;s lifecycle. See PersistentVolumeClaim retention for more details.
">StatefulSetAutoDeletePVC</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow configuration of the start ordinal in a StatefulSet. See Start ordinal for more details.
">StatefulSetStartOrdinal</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>1.26</td>
            </tr>
            <tr>
                <td><code title="Allow configuration of the start ordinal in a StatefulSet. See Start ordinal for more details.
">StatefulSetStartOrdinal</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.27</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Allow configuration of the start ordinal in a StatefulSet. See Start ordinal for more details.
">StatefulSetStartOrdinal</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.31</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables a namespace indexer for namespace scoped resources in API server cache to accelerate list operations.
">StorageNamespaceIndex</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables a namespace indexer for namespace scoped resources in API server cache to accelerate list operations.
">StorageNamespaceIndex</code></td>
                <td><code>true</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow the API server JSON encoder to encode collections item by item, instead of all at once.
">StreamingCollectionEncodingToJSON</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allow the API server JSON encoder to encode collections item by item, instead of all at once.
">StreamingCollectionEncodingToJSON</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allow the API server Protobuf encoder to encode collections item by item, instead of all at once.
">StreamingCollectionEncodingToProtobuf</code></td>
                <td><code>true</code></td>
                <td>Alpha</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allow the API server Protobuf encoder to encode collections item by item, instead of all at once.
">StreamingCollectionEncodingToProtobuf</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Apply strict CEL cost validation for ValidatingAdmissionPolicies.
">StrictCostEnforcementForVAP</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Apply strict CEL cost validation for ValidatingAdmissionPolicies.
">StrictCostEnforcementForVAP</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Apply strict CEL cost validation for matchConditions within admission webhooks.
">StrictCostEnforcementForWebhooks</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Apply strict CEL cost validation for matchConditions within admission webhooks.
">StrictCostEnforcementForWebhooks</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable structured authentication configuration for the API server.
">StructuredAuthenticationConfiguration</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enable structured authentication configuration for the API server.
">StructuredAuthenticationConfiguration</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable structured authentication configuration for the API server.
">StructuredAuthenticationConfiguration</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable structured authorization configuration, so that cluster administrators can specify more than one authorization webhook in the API server handler chain.
">StructuredAuthorizationConfiguration</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enable structured authorization configuration, so that cluster administrators can specify more than one authorization webhook in the API server handler chain.
">StructuredAuthorizationConfiguration</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enable structured authorization configuration, so that cluster administrators can specify more than one authorization webhook in the API server handler chain.
">StructuredAuthorizationConfiguration</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables topology aware routing based on topology hints in EndpointSlices. See Topology Aware Hints for more details.
">TopologyAwareHints</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.21</td>
                <td>1.22</td>
            </tr>
            <tr>
                <td><code title="Enables topology aware routing based on topology hints in EndpointSlices. See Topology Aware Hints for more details.
">TopologyAwareHints</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.23</td>
                <td>1.23</td>
            </tr>
            <tr>
                <td><code title="Enables topology aware routing based on topology hints in EndpointSlices. See Topology Aware Hints for more details.
">TopologyAwareHints</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.24</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables topology aware routing based on topology hints in EndpointSlices. See Topology Aware Hints for more details.
">TopologyAwareHints</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable fine-tuning of topology manager policies.
">TopologyManagerPolicyOptions</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>1.27</td>
            </tr>
            <tr>
                <td><code title="Enable fine-tuning of topology manager policies.
">TopologyManagerPolicyOptions</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.28</td>
                <td>1.31</td>
            </tr>
            <tr>
                <td><code title="Enable fine-tuning of topology manager policies.
">TopologyManagerPolicyOptions</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.32</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable user namespace support for Pods.
">UserNamespacesSupport</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.28</td>
                <td>1.29</td>
            </tr>
            <tr>
                <td><code title="Enable user namespace support for Pods.
">UserNamespacesSupport</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enable user namespace support for Pods.
">UserNamespacesSupport</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable user namespace support for Pods.
">UserNamespacesSupport</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enable support for VolumeAttributesClasses. See Volume Attributes Classes for more information.
">VolumeAttributesClass</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.29</td>
                <td>1.30</td>
            </tr>
            <tr>
                <td><code title="Enable support for VolumeAttributesClasses. See Volume Attributes Classes for more information.
">VolumeAttributesClass</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.31</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Enable support for VolumeAttributesClasses. See Volume Attributes Classes for more information.
">VolumeAttributesClass</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>1.35</td>
            </tr>
            <tr>
                <td><code title="Enable support for VolumeAttributesClasses. See Volume Attributes Classes for more information.
">VolumeAttributesClass</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.36</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables watches without resourceVersion to be served from storage.
">WatchFromStorageWithoutResourceVersion</code></td>
                <td><code>false</code></td>
                <td>Beta</td>
                <td>1.30</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables watches without resourceVersion to be served from storage.
">WatchFromStorageWithoutResourceVersion</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Enables support for joining Windows containers to a hosts&#39; network namespace.
">WindowsHostNetwork</code></td>
                <td><code>true</code></td>
                <td>Alpha</td>
                <td>1.26</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Enables support for joining Windows containers to a hosts&#39; network namespace.
">WindowsHostNetwork</code></td>
                <td><code>false</code></td>
                <td>Deprecated</td>
                <td>1.33</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows kube-proxy to create DSR loadbalancers for Windows.
">WinDSR</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.14</td>
                <td>1.32</td>
            </tr>
            <tr>
                <td><code title="Allows kube-proxy to create DSR loadbalancers for Windows.
">WinDSR</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.33</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allows kube-proxy to create DSR loadbalancers for Windows.
">WinDSR</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr>
            <tr>
                <td><code title="Allows kube-proxy to run in overlay mode for Windows.
">WinOverlay</code></td>
                <td><code>false</code></td>
                <td>Alpha</td>
                <td>1.14</td>
                <td>1.19</td>
            </tr>
            <tr>
                <td><code title="Allows kube-proxy to run in overlay mode for Windows.
">WinOverlay</code></td>
                <td><code>true</code></td>
                <td>Beta</td>
                <td>1.20</td>
                <td>1.33</td>
            </tr>
            <tr>
                <td><code title="Allows kube-proxy to run in overlay mode for Windows.
">WinOverlay</code></td>
                <td><code>true</code></td>
                <td>GA</td>
                <td>1.34</td>
                <td>–</td>
            </tr></tbody>
</table>

## Using a feature

### Feature stages

A feature can be in *Alpha*, *Beta* or *GA* stage.
An *Alpha* feature means:

* Disabled by default.
* Might be buggy. Enabling the feature may expose bugs.
* Support for feature may be dropped at any time without notice.
* The API may change in incompatible ways in a later software release without notice.
* Recommended for use only in short-lived testing clusters, due to increased
  risk of bugs and lack of long-term support.

A *Beta* feature means:

* Usually enabled by default. Beta API groups are
  [disabled by default](https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/3136-beta-apis-off-by-default).
* The feature is well tested. Enabling the feature is considered safe.
* Support for the overall feature will not be dropped, though details may change.
* The schema and/or semantics of objects may change in incompatible ways in a
  subsequent beta or stable release. When this happens, we will provide instructions
  for migrating to the next version. This may require deleting, editing, and
  re-creating API objects. The editing process may require some thought.
  This may require downtime for applications that rely on the feature.
* Recommended for only non-business-critical uses because of potential for
  incompatible changes in subsequent releases. If you have multiple clusters
  that can be upgraded independently, you may be able to relax this restriction.


<div class="alert alert-info" role="note"><h4 class="alert-heading">Note:</h4>Please do try <em>Beta</em> features and give feedback on them!
After they exit beta, it may not be practical for us to make more changes.</div>


A *General Availability* (GA) feature is also referred to as a *stable* feature. It means:

* The feature is always enabled; you cannot disable it.
* The corresponding feature gate is no longer needed.
* Stable versions of features will appear in released software for many subsequent versions.

## List of feature gates {#feature-gates}

Each feature gate is designed for enabling/disabling a specific feature.

<!-- Want to edit this list? See https://k8s.io/docs/contribute/new-content/new-features/#ready-for-review-feature-gates -->
<dl class="feature-gate-list"><dt id="AllowDNSOnlyNodeCSR"><code class="feature-gate-name">AllowDNSOnlyNodeCSR</code></dt>
      <dd><p>Allow kubelet to request a certificate without any Node IP available, only with DNS names.</p></dd><dt id="AllowInsecureKubeletCertificateSigningRequests"><code class="feature-gate-name">AllowInsecureKubeletCertificateSigningRequests</code></dt>
      <dd><p>Disable node admission validation of
<a href="/docs/reference/access-authn-authz/certificate-signing-requests/#certificate-signing-requests">CertificateSigningRequests</a>
for kubelet signers. Unless you disable this feature gate, Kubernetes enforces that new
kubelet certificates have a <code>commonName</code> matching <code>system:node:$nodeName</code>.</p></dd><dt id="AllowParsingUserUIDFromCertAuth"><code class="feature-gate-name">AllowParsingUserUIDFromCertAuth</code></dt>
      <dd><p>When this feature is enabled, the subject name attribute <code>1.3.6.1.4.1.57683.2</code>
in an X.509 certificate will be parsed as the user UID during certificate authentication.</p></dd><dt id="AllowUnsafeMalformedObjectDeletion"><code class="feature-gate-name">AllowUnsafeMalformedObjectDeletion</code></dt>
      <dd><p>Enables the cluster operator to identify corrupt resource(s) using the <strong>list</strong>
operation, and introduces an option <code>ignoreStoreReadErrorWithClusterBreakingPotential</code>
that the operator can set to perform unsafe and force <strong>delete</strong> operation of
such corrupt resource(s) using the Kubernetes API.</p></dd><dt id="AnonymousAuthConfigurableEndpoints"><code class="feature-gate-name">AnonymousAuthConfigurableEndpoints</code></dt>
      <dd><p>Enable <a href="/docs/reference/access-authn-authz/authentication/#anonymous-authenticator-configuration">configurable endpoints for anonymous auth</a>
for the API server.</p></dd><dt id="AnyVolumeDataSource"><code class="feature-gate-name">AnyVolumeDataSource</code></dt>
      <dd><p>Enable use of any custom resource as the <code>DataSource</code> of a
<a class='glossary-tooltip' title='Claims storage resources defined in a PersistentVolume so that it can be mounted as a volume in a container.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims' target='_blank' aria-label='PVC'>PVC</a>.</p></dd><dt id="APIResponseCompression"><code class="feature-gate-name">APIResponseCompression</code></dt>
      <dd><p>Compress the API responses for <code>LIST</code> or <code>GET</code> requests.</p></dd><dt id="APIServerIdentity"><code class="feature-gate-name">APIServerIdentity</code></dt>
      <dd><p>Assign each API server an ID in a cluster, using a <a href="/docs/concepts/architecture/leases/">Lease</a>.</p></dd><dt id="APIServerTracing"><code class="feature-gate-name">APIServerTracing</code></dt>
      <dd><p>Add support for distributed tracing in the API server.
See <a href="/docs/concepts/cluster-administration/system-traces/">Traces for Kubernetes System Components</a> for more details.</p></dd><dt id="APIServingWithRoutine"><code class="feature-gate-name">APIServingWithRoutine</code></dt>
      <dd><p>This feature gate enables an API server performance improvement:
the API server can use separate goroutines (lightweight threads managed by the Go runtime)
to serve <a href="/docs/reference/using-api/api-concepts/#efficient-detection-of-changes"><strong>watch</strong></a>
requests.</p></dd><dt id="AtomicFIFO"><code class="feature-gate-name">AtomicFIFO</code></dt>
      <dd><p>A client-go implementation of a FIFO queue that uses atomic operations to ensure events that come in
batches, such as those from a ListAndWatch call, are processed in a single chunk. This is in contrast to
the previous implementation which would process these events one by one, potentially causing the internal
cache to become temporarily inconsistent with the API server. This feature gate can be toggled in the
kube-controller-manager and any client-go based controller.</p></dd><dt id="AuthorizeNodeWithSelectors"><code class="feature-gate-name">AuthorizeNodeWithSelectors</code></dt>
      <dd><p>Make the <a href="/docs/reference/access-authn-authz/node/">Node authorizer</a> use fine-grained selector authorization.</p></dd><dt id="AuthorizePodWebsocketUpgradeCreatePermission"><code class="feature-gate-name">AuthorizePodWebsocketUpgradeCreatePermission</code></dt>
      <dd><p>When the <code>AuthorizePodWebsocketUpgradeCreatePermission</code> feature gate is <code>true</code>,
clients must be authorized to <strong>create</strong> Pod subresources even when triggering their
creation using a WebSocket.</p>
<p>The connection upgrade request occurs for each of the following subresources: <code>pods/exec</code>,
<code>pods/attach</code>, and <code>pods/portforward</code>. This feature gate fixes a security gap caused by
the protocol transition: while SPDY requests utilize HTTP <code>POST</code> (naturally aligning with
the <strong>create</strong> RBAC permission), the WebSocket protocol requires an HTTP <code>GET</code> request for
the handshake. To correct this defect, a synthetic RBAC check is now applied to ensure
WebSocket upgrades strictly enforce the <strong>create</strong> permission, matching the existing
SPDY security model.</p>
<p>You may want to disable this feature gate if you have existing clients or custom tooling
that rely on the previous behavior—specifically, if they connect via WebSockets but do <em>not</em>
currently hold the <strong>create</strong> RBAC permission.</p>
</dd><dt id="AuthorizeWithSelectors"><code class="feature-gate-name">AuthorizeWithSelectors</code></dt>
      <dd><p>Allows authorization to use field and label selectors.
Enables <code>fieldSelector</code> and <code>labelSelector</code> fields in the <a href="/docs/reference/kubernetes-api/authorization-resources/subject-access-review-v1/">SubjectAccessReview API</a>,
passes field and label selector information to <a href="/docs/reference/access-authn-authz/webhook/">authorization webhooks</a>,
enables <code>fieldSelector</code> and <code>labelSelector</code> functions in the <a href="https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#AuthzSelectors">authorizer CEL library</a>,
and enables checking <code>fieldSelector</code> and <code>labelSelector</code> fields in <a href="/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization">authorization webhook <code>matchConditions</code></a>.</p></dd><dt id="BtreeWatchCache"><code class="feature-gate-name">BtreeWatchCache</code></dt>
      <dd><p>When enabled, the API server will replace the legacy HashMap-based <em>watch cache</em>
with a BTree-based implementation. This replacement may bring performance improvements.</p></dd><dt id="CBORServingAndStorage"><code class="feature-gate-name">CBORServingAndStorage</code></dt>
      <dd><p>Enables CBOR as a <a href="/docs/reference/using-api/api-concepts/#cbor-encoding">supported encoding for requests and
responses</a>, and as the preferred storage
encoding for custom resources.</p></dd><dt id="ChangeContainerStatusOnKubeletRestart"><code class="feature-gate-name">ChangeContainerStatusOnKubeletRestart</code></dt>
      <dd><p>Enable legacy writes to update container <code>ready</code> status after the kubelet detects a
<a href="/docs/concepts/workloads/pods/pod-lifecycle/#kubelet-restarts">restart</a>.</p>
<p>This feature gate was introduced to allow you revert the behavior to a previously used default.
If you are satisfied with the default behavior, you do not need to enable this
feature gate.</p>
</dd><dt id="ClearingNominatedNodeNameAfterBinding"><code class="feature-gate-name">ClearingNominatedNodeNameAfterBinding</code></dt>
      <dd><p>Enable clearing <code>.status.nominatedNodeName</code> whenever Pods are bound to nodes.</p></dd><dt id="CloudControllerManagerWatchBasedRoutesReconciliation"><code class="feature-gate-name">CloudControllerManagerWatchBasedRoutesReconciliation</code></dt>
      <dd><p>Enables a watch-based route reconciliation mechanism (rather than reconciling at a fixed interval)
within the cloud-controller-manager library.</p></dd><dt id="CloudControllerManagerWebhook"><code class="feature-gate-name">CloudControllerManagerWebhook</code></dt>
      <dd><p>Enable webhooks in cloud controller manager.</p></dd><dt id="ClusterTrustBundle"><code class="feature-gate-name">ClusterTrustBundle</code></dt>
      <dd><p>This feature gate exists in the Kubernetes API server and the controller manager.</p>
<p>Used from the kube-apiserver, it enables ClusterTrustBundle support.</p>
<p>In order to use the ClusterTrustBundle API in your cluster, you need to enable this feature gate
and also <a href="/docs/tasks/administer-cluster/enable-disable-api/">enable</a> the associated alpha API group
using the <code>--runtime-config</code> command line argument to kube-apiserver.</p>
<p>In the Kubernetes controller manager, it is used to control publishing of a ClusterTrustBundle
for the <code>kubernetes.io/kube-apiserver-serving</code> signer.</p>
</dd><dt id="ClusterTrustBundleProjection"><code class="feature-gate-name">ClusterTrustBundleProjection</code></dt>
      <dd><p><a href="/docs/concepts/storage/projected-volumes/#clustertrustbundle"><code>clusterTrustBundle</code> projected volume sources</a>.</p></dd><dt id="ComponentFlagz"><code class="feature-gate-name">ComponentFlagz</code></dt>
      <dd><p>Enables the component's flagz endpoint.
See <a href="/docs/reference/instrumentation/zpages/">zpages</a> for more information.</p></dd><dt id="ComponentStatusz"><code class="feature-gate-name">ComponentStatusz</code></dt>
      <dd><p>Enables the component's statusz endpoint.
See <a href="/docs/reference/instrumentation/zpages/">zpages</a> for more information.</p></dd><dt id="ConcurrentWatchObjectDecode"><code class="feature-gate-name">ConcurrentWatchObjectDecode</code></dt>
      <dd><p>Enable concurrent watch object decoding. This is to avoid starving the API server's
watch cache when a conversion webhook is installed.</p></dd><dt id="ConsistentListFromCache"><code class="feature-gate-name">ConsistentListFromCache</code></dt>
      <dd><p>Enhance Kubernetes API server performance by serving consistent <strong>list</strong> requests
directly from its watch cache, improving scalability and response times.
To consistent list from cache Kubernetes requires a newer etcd version (v3.4.31+ or v3.5.13+),
that includes fixes to watch progress request feature.
If older etcd version is provided Kubernetes will automatically detect it and fallback to serving consistent reads from etcd.
Progress notifications ensure watch cache is consistent with etcd while reducing
the need for resource-intensive quorum reads from etcd.</p>
<p>See the Kubernetes documentation on <a href="/docs/reference/using-api/api-concepts/#semantics-for-get-and-list">Semantics for <strong>get</strong> and <strong>list</strong></a> for more details.</p>
</dd><dt id="ConstrainedImpersonation"><code class="feature-gate-name">ConstrainedImpersonation</code></dt>
      <dd><p>Enables impersonation that is constrained to specific requests instead of being all or nothing.</p></dd><dt id="ContainerCheckpoint"><code class="feature-gate-name">ContainerCheckpoint</code></dt>
      <dd><p>Enables the kubelet <code>checkpoint</code> API.
See <a href="/docs/reference/node/kubelet-checkpoint-api/">Kubelet Checkpoint API</a> for more details.</p></dd><dt id="ContainerRestartRules"><code class="feature-gate-name">ContainerRestartRules</code></dt>
      <dd><p>Enables the ability to configure container-level restart policy and restart rules.
See <a href="/docs/concepts/workloads/pods/pod-lifecycle/#container-restart-rules">Container Restart Policy and Rules</a> for more details.</p></dd><dt id="ContainerStopSignals"><code class="feature-gate-name">ContainerStopSignals</code></dt>
      <dd><p>Enables usage of the StopSignal lifecycle for containers for configuring custom stop signals using which the containers would be stopped.</p></dd><dt id="ContextualLogging"><code class="feature-gate-name">ContextualLogging</code></dt>
      <dd><p>Enables extra details in log output of Kubernetes components that support
contextual logging.</p></dd><dt id="ControllerManagerReleaseLeaderElectionLockOnExit"><code class="feature-gate-name">ControllerManagerReleaseLeaderElectionLockOnExit</code></dt>
      <dd><p>Enables the <code>kube-controller-manager</code> to actively release its leader election lock
during leader transitions, rather than waiting for the lock's TTL to expire.
This allows a new leader to be elected more quickly.</p></dd><dt id="CoordinatedLeaderElection"><code class="feature-gate-name">CoordinatedLeaderElection</code></dt>
      <dd><p>Enables the behaviors supporting the LeaseCandidate API, and also enables
coordinated leader election for the Kubernetes control plane, deterministically.</p></dd><dt id="CPUManagerPolicyAlphaOptions"><code class="feature-gate-name">CPUManagerPolicyAlphaOptions</code></dt>
      <dd><p>This allows fine-tuning of CPUManager policies,
experimental, Alpha-quality options
This feature gate guards <em>a group</em> of CPUManager options whose quality level is alpha.
This feature gate will never graduate to beta or stable.</p></dd><dt id="CPUManagerPolicyBetaOptions"><code class="feature-gate-name">CPUManagerPolicyBetaOptions</code></dt>
      <dd><p>This allows fine-tuning of CPUManager policies,
experimental, Beta-quality options
This feature gate guards <em>a group</em> of CPUManager options whose quality level is beta.
This feature gate will never graduate to stable.</p></dd><dt id="CPUManagerPolicyOptions"><code class="feature-gate-name">CPUManagerPolicyOptions</code></dt>
      <dd><p>Allow fine-tuning of CPUManager policies.</p></dd><dt id="CRDObservedGenerationTracking"><code class="feature-gate-name">CRDObservedGenerationTracking</code></dt>
      <dd><p>Allows for the observed generation to be tracked in CRD conditions. Setting to
false will make it so CRD conditions will have the observed generation wiped.</p></dd><dt id="CRDValidationRatcheting"><code class="feature-gate-name">CRDValidationRatcheting</code></dt>
      <dd><p>Enable updates to custom resources to contain
violations of their OpenAPI schema if the offending portions of the resource
update did not change. See <a href="/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-ratcheting">Validation Ratcheting</a> for more details.</p></dd><dt id="CRIListStreaming"><code class="feature-gate-name">CRIListStreaming</code></dt>
      <dd><p>Enable streaming RPCs for CRI list operations (<code>ListContainers</code>,
<code>ListPodSandbox</code>, <code>ListImages</code>). When enabled, the kubelet uses server-side
streaming RPCs (e.g., <code>StreamContainers</code>, <code>StreamPodSandboxes</code>) that allow the
container runtime to divide results across multiple response messages,
bypassing the 16 MiB gRPC message size limit. This allows listing containers
on nodes with thousands of containers without failures. If the container
runtime does not support streaming RPCs, the kubelet falls back to unary RPCs.</p></dd><dt id="CronJobsScheduledAnnotation"><code class="feature-gate-name">CronJobsScheduledAnnotation</code></dt>
      <dd><p>Set the scheduled job time as an
<a class='glossary-tooltip' title='A key-value pair that is used to attach arbitrary non-identifying metadata to objects.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/overview/working-with-objects/annotations' target='_blank' aria-label='annotation'>annotation</a> on Jobs that were created
on behalf of a CronJob.</p></dd><dt id="CrossNamespaceVolumeDataSource"><code class="feature-gate-name">CrossNamespaceVolumeDataSource</code></dt>
      <dd><p>Enable the usage of cross namespace volume data source
to allow you to specify a source namespace in the <code>dataSourceRef</code> field of a
PersistentVolumeClaim.</p></dd><dt id="CSIServiceAccountTokenSecrets"><code class="feature-gate-name">CSIServiceAccountTokenSecrets</code></dt>
      <dd><p>Enables CSI drivers to opt-in for receiving service account tokens from kubelet
through the dedicated secrets field in NodePublishVolumeRequest instead of the volume_context field.</p></dd><dt id="CSIVolumeHealth"><code class="feature-gate-name">CSIVolumeHealth</code></dt>
      <dd><p>Enable support for CSI volume health monitoring on node.</p></dd><dt id="CustomCPUCFSQuotaPeriod"><code class="feature-gate-name">CustomCPUCFSQuotaPeriod</code></dt>
      <dd><p>Enable nodes to change <code>cpuCFSQuotaPeriod</code> in
<a href="/docs/tasks/administer-cluster/kubelet-config-file/">kubelet config</a>.</p></dd><dt id="CustomResourceFieldSelectors"><code class="feature-gate-name">CustomResourceFieldSelectors</code></dt>
      <dd><p>Enable <code>selectableFields</code> in the
<a class='glossary-tooltip' title='Custom code that defines a resource to add to your Kubernetes API server without building a complete custom server.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/' target='_blank' aria-label='CustomResourceDefinition'>CustomResourceDefinition</a> API to allow filtering
of custom resource <strong>list</strong>, <strong>watch</strong> and <strong>deletecollection</strong> requests.</p></dd><dt id="DeclarativeValidation"><code class="feature-gate-name">DeclarativeValidation</code></dt>
      <dd><p>Enables declarative validation of in-tree Kubernetes APIs. When enabled, APIs with declarative validation rules
(defined using IDL tags in the Go code) will have both the generated declarative validation code
and the original hand-written validation code executed.
The results are compared, and any discrepancies are reported via the <code>declarative_validation_mismatch_total</code> metric.
Only the hand-written validation result is returned to the user (eg: actually validates in the request path).
The original hand-written validation are still the authoritative validations
when this is enabled but this can be changed if the
<a href="/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidationBeta/">DeclarativeValidationBeta feature gate</a>
is enabled in addition to this gate.
This feature gate only operates on the <code>kube-apiserver</code> component.</p></dd><dt id="DeclarativeValidationBeta"><code class="feature-gate-name">DeclarativeValidationBeta</code></dt>
      <dd><p>This feature gate acts as the Global Safety Switch for Beta-stage validation rules (<code>+k8s:beta</code>).
It allows cluster admins to disable enforcement for validations in the Beta stage if
regressions are found, forcing them back to Shadow mode.</p>
<p>In Shadow mode, declarative validation is executed and mismatches against handwritten
validation are logged as metrics, but failures do not reject requests.
Handwritten validation remains authoritative and enforced.</p>
<p>Enforcement logic for resources using <code>WithDeclarativeEnforcement()</code>:</p>
<ul>
<li>Standard tags (no prefix): Always Enforced (Bypasses this gate).</li>
<li>Beta tags (<code>+k8s:beta</code>): Enforced when this gate is enabled (default), otherwise Shadowed.</li>
<li>Alpha tags (<code>+k8s:alpha</code>): Always Shadowed.</li>
</ul>
<p>This gate has no effect if the master <code>DeclarativeValidation</code> feature gate is disabled.</p>
</dd><dt id="DeclarativeValidationTakeover"><code class="feature-gate-name">DeclarativeValidationTakeover</code></dt>
      <dd><p>Deprecated: in favor of <a href="/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidationBeta/">DeclarativeValidationBeta</a>.</p>
<p>When enabled, along with the <a href="/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidation/">DeclarativeValidation</a>
feature gate, declarative validation errors are returned directly to the caller,
replacing hand-written validation errors for rules that have declarative implementations.
When disabled (and <code>DeclarativeValidation</code> is enabled), hand-written validation errors are always returned,
effectively putting declarative validation in a <strong>mismatch validation mode</strong>
that monitors but does not affect API responses.
This <strong>mismatch validation mode</strong>  allows for the monitoring of the <code>declarative_validation_mismatch_total</code>
and <code>declarative_validation_panic_total</code> metrics which are implementation details for a safer rollout,
average user shouldn't need to interact with it directly.
This feature gate only operates on the <code>kube-apiserver</code> component.
Note: Although declarative validation aims for functional equivalence with hand-written validation,
the exact description of error messages may differ between the two approaches.</p>
</dd><dt id="DeploymentReplicaSetTerminatingReplicas"><code class="feature-gate-name">DeploymentReplicaSetTerminatingReplicas</code></dt>
      <dd><p>Enables a new status field <code>.status.terminatingReplicas</code> in Deployments and ReplicaSets to allow tracking of terminating pods.</p></dd><dt id="DetectCacheInconsistency"><code class="feature-gate-name">DetectCacheInconsistency</code></dt>
      <dd><p>Enable cache inconsistency detection in the API server.</p></dd><dt id="DisableAllocatorDualWrite"><code class="feature-gate-name">DisableAllocatorDualWrite</code></dt>
      <dd><p>You can enable the <code>MultiCIDRServiceAllocator</code> feature gate. The API server supports migration
from the old bitmap ClusterIP allocators to the new IPAddress allocators.</p>
<p>The API server performs a dual-write on both allocators. This feature gate disables the dual write
on the new Cluster IP allocators; you can enable this feature gate if you have completed the
relevant stage of the migration.</p>
</dd><dt id="DisableCPUQuotaWithExclusiveCPUs"><code class="feature-gate-name">DisableCPUQuotaWithExclusiveCPUs</code></dt>
      <dd><p>When the feature gate <code>DisableCPUQuotaWithExclusiveCPUs</code> is enabled (the default), then Kubernetes
does <strong>not</strong> enforce CPU quota for Pods that use the <a href="/docs/concepts/workloads/pods/pod-qos/#guaranteed">Guaranteed</a>
<a class='glossary-tooltip' title='QoS Class (Quality of Service Class) provides a way for Kubernetes to classify pods within the cluster into several classes and make decisions about scheduling and eviction.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/workloads/pods/pod-qos/' target='_blank' aria-label='QoS class'>QoS class</a>.</p>
<p>You can disable the <code>DisableCPUQuotaWithExclusiveCPUs</code> feature gate to restore the legacy behavior.</p>
</dd><dt id="DisableNodeKubeProxyVersion"><code class="feature-gate-name">DisableNodeKubeProxyVersion</code></dt>
      <dd><p>Disable setting the <code>kubeProxyVersion</code> field of the Node.</p></dd><dt id="DRAAdminAccess"><code class="feature-gate-name">DRAAdminAccess</code></dt>
      <dd><p>Enables support for requesting <a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#admin-access">admin access</a>
in a ResourceClaim or a ResourceClaimTemplate. Admin access grants access to
in-use devices and may enable additional permissions when making the device
available in a container. Starting with Kubernetes v1.33, only users authorized
to create ResourceClaim or ResourceClaimTemplate objects in namespaces labeled
with <code>resource.kubernetes.io/admin-access: &quot;true&quot;</code> (case-sensitive) can use the
<code>adminAccess</code> field. This ensures that non-admin users cannot misuse the
feature. Starting with Kubernetes v1.34, this label has been updated to <code>resource.kubernetes.io/admin-access: &quot;true&quot;</code>.</p></dd><dt id="DRAConsumableCapacity"><code class="feature-gate-name">DRAConsumableCapacity</code></dt>
      <dd><p>Enables device sharing across multiple ResourceClaims or requests.</p>
<p>Additionally, if a device supports sharing, its resource (capacity) can be managed through a defined sharing policy.</p>
</dd><dt id="DRADeviceBindingConditions"><code class="feature-gate-name">DRADeviceBindingConditions</code></dt>
      <dd><p>Enables support for DeviceBindingConditions in the DRA related fields.
This allows for thorough device readiness checks and attachment processes before Bind phase.</p></dd><dt id="DRADeviceTaintRules"><code class="feature-gate-name">DRADeviceTaintRules</code></dt>
      <dd><p>Enables support for
<a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#device-taints-and-tolerations">tainting devices through DeviceTaintRule objects</a>
when using dynamic resource allocation to manage devices.</p>
<p>This feature gate has no effect unless you also enable the <code>DRADeviceTaints</code> feature gate.</p>
</dd><dt id="DRADeviceTaints"><code class="feature-gate-name">DRADeviceTaints</code></dt>
      <dd><p>Enables support for
<a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#device-taints-and-tolerations">tainting devices and selectively tolerating those taints</a>
when using dynamic resource allocation to manage devices.</p></dd><dt id="DRAExtendedResource"><code class="feature-gate-name">DRAExtendedResource</code></dt>
      <dd><p>Enables support for the <a href="/docs/concepts/configuration/manage-resources-containers/#extended-resources-allocation-by-dra">Extended Resource allocation by DRA</a> feature.
It makes it possible to specify an extended resource name in a DeviceClass.</p></dd><dt id="DRAListTypeAttributes"><code class="feature-gate-name">DRAListTypeAttributes</code></dt>
      <dd><p>Enables list-type attribute fields (<code>bools</code>, <code>ints</code>, <code>strings</code>, <code>versions</code>) for devices
in <code>ResourceSlice</code>, allowing a device to advertise multiple values for a single attribute.</p>
<p>When enabled, <code>matchAttribute</code> uses set-intersection semantics (the sets of attribute
values across all selected devices must have a non-empty intersection), and
<code>distinctAttribute</code> uses pairwise-disjoint semantics (the sets must share no values).
Scalar attributes remain backward-compatible, treated as singleton sets.</p>
<p>Also adds the <code>includes()</code> helper function to CEL device selector expressions, which
works on both scalar and list-type attributes.</p>
<p>For more information, see
<a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#list-type-attributes">List type attributes</a>
in the Dynamic Resource Allocation documentation.</p>
</dd><dt id="DRANodeAllocatableResources"><code class="feature-gate-name">DRANodeAllocatableResources</code></dt>
      <dd><p>Enables the kube-scheduler to incorporate Node Allocatable resources (such as
CPU, memory, and hugepages) managed by Dynamic Resource Allocation (DRA) into
its standard node resource accounting.</p>
<p>When enabled, DRA drivers can use the <code>nodeAllocatableResourceMappings</code> field on
<code>ResourceSlice</code> devices to specify how their devices consume node allocatable
resources. This allows the scheduler to combine these DRA allocations with
standard Pod requests.
It also exposes the <code>status.nodeAllocatableResourceClaimStatuses</code> field on the
Pod API to track the resulting resource allocations.</p>
<p>For more information, see
<a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#node-allocatable-resources">Node Allocatable Resources</a>
in the Dynamic Resource Allocation documentation.</p>
</dd><dt id="DRAPartitionableDevices"><code class="feature-gate-name">DRAPartitionableDevices</code></dt>
      <dd><p>Enables support for requesting <a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#partitionable-devices">Partitionable Devices</a>
for DRA. This lets drivers advertise multiple devices that maps to the same resources
of a physical device.</p></dd><dt id="DRAPrioritizedList"><code class="feature-gate-name">DRAPrioritizedList</code></dt>
      <dd><p>Allows specifying a prioritized list of alternative devices that can be allocated to a request in
a claim if the preferred alternative is not available.</p></dd><dt id="DRAResourceClaimDeviceStatus"><code class="feature-gate-name">DRAResourceClaimDeviceStatus</code></dt>
      <dd><p>Enables support the ResourceClaim.status.devices field and for setting this
status from DRA drivers. It requires the <code>DynamicResourceAllocation</code> feature
gate to be enabled.</p></dd><dt id="DRAResourceClaimGranularStatusAuthorization"><code class="feature-gate-name">DRAResourceClaimGranularStatusAuthorization</code></dt>
      <dd><p>Enables support for granular authorization of ResourceClaim status updates.
This feature requires additional fine-grained access permissions when modifying
specific fields within ResourceClaim status objects.</p></dd><dt id="DRAResourcePoolStatus"><code class="feature-gate-name">DRAResourcePoolStatus</code></dt>
      <dd><p>Enables the ResourcePoolStatusRequest API for querying the
<a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#resource-pool-status">availability of devices in DRA resource pools</a>.
When enabled, users can create ResourcePoolStatusRequest objects to get a
point-in-time snapshot of device availability (total, allocated, available, and
unavailable devices) for a specific driver and optionally a specific pool.
A controller in kube-controller-manager processes these one-time requests and
populates the status with pool information.</p></dd><dt id="DRASchedulerFilterTimeout"><code class="feature-gate-name">DRASchedulerFilterTimeout</code></dt>
      <dd><p>Enables aborting the per-node filter operation in the scheduler after a certain
time (10 seconds by default, configurable in the DynamicResources scheduler
plugin configuration).</p></dd><dt id="DRAWorkloadResourceClaims"><code class="feature-gate-name">DRAWorkloadResourceClaims</code></dt>
      <dd><p>Enables PodGroup resources from the
<a href="/docs/concepts/workloads/workload-api/">Workload API</a> to make requests for
devices through
<a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/">Dynamic Resource Allocation</a>
that can be shared by their member Pods.</p></dd><dt id="DynamicResourceAllocation"><code class="feature-gate-name">DynamicResourceAllocation</code></dt>
      <dd><p>Enables support for resources with custom parameters and a lifecycle
that is independent of a Pod. Allocation of resources is handled
by the Kubernetes scheduler based on &quot;structured parameters&quot;.</p></dd><dt id="ElasticIndexedJob"><code class="feature-gate-name">ElasticIndexedJob</code></dt>
      <dd><p>Enables Indexed Jobs to be scaled up or down by mutating both
<code>spec.completions</code> and <code>spec.parallelism</code> together such that <code>spec.completions == spec.parallelism</code>.
See docs on <a href="/docs/concepts/workloads/controllers/job/#elastic-indexed-jobs">elastic Indexed Jobs</a>
for more details.</p></dd><dt id="EnvFiles"><code class="feature-gate-name">EnvFiles</code></dt>
      <dd><p>Support defining container's Environment Variable Values via File.
See <a href="/docs/tasks/inject-data-application/define-environment-variable-via-file/">Define Environment Variable Values Using An Init Container</a> for more details.</p></dd><dt id="EventedPLEG"><code class="feature-gate-name">EventedPLEG</code></dt>
      <dd><p>Enable support for the kubelet to receive container life cycle events from the
<a class='glossary-tooltip' title='The container runtime is the software that is responsible for running containers.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/setup/production-environment/container-runtimes' target='_blank' aria-label='container runtime'>container runtime</a> via
an extension to <a class='glossary-tooltip' title='Protocol for communication between the kubelet and the local container runtime.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/architecture/cri' target='_blank' aria-label='CRI'>CRI</a>.
(PLEG is an abbreviation for “Pod lifecycle event generator”).
For this feature to be useful, you also need to enable support for container lifecycle events
in each container runtime running in your cluster. If the container runtime does not announce
support for container lifecycle events then the kubelet automatically switches to the legacy
generic PLEG mechanism, even if you have this feature gate enabled.</p></dd><dt id="ExecProbeTimeout"><code class="feature-gate-name">ExecProbeTimeout</code></dt>
      <dd><p>Ensure kubelet respects exec probe timeouts.
This feature gate exists in case any of your existing workloads depend on a
now-corrected fault where Kubernetes ignored exec probe timeouts. See
<a href="/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes">readiness probes</a>.</p></dd><dt id="ExtendWebSocketsToKubelet"><code class="feature-gate-name">ExtendWebSocketsToKubelet</code></dt>
      <dd><p>When ExtendWebSocketsToKubelet is enabled and a kubelet node advertises support,
exec/attach/portforward streams are proxied directly to the kubelet rather than
being translated or tunneled at the API server. Critically, the same
stream translation and tunneling handlers used at the API server are now set up
identically at the kubelet — the logic is simply moved closer to the container
runtime. This feature depends on NodeDeclaredFeatures graduating to beta so that
kubelet capability advertisement is reliable in production clusters.</p></dd><dt id="ExternalServiceAccountTokenSigner"><code class="feature-gate-name">ExternalServiceAccountTokenSigner</code></dt>
      <dd><p>Enable setting <code>--service-account-signing-endpoint</code> to make the kube-apiserver use <a href="/docs/reference/access-authn-authz/service-accounts-admin/#external-serviceaccount-token-signing-and-key-management">external signer</a> for token signing and token verifying key management.</p></dd><dt id="GangScheduling"><code class="feature-gate-name">GangScheduling</code></dt>
      <dd><p>Enables the GangScheduling plugin in kube-scheduler, which implements &quot;all-or-nothing&quot;
scheduling algorithm. The <a href="/docs/concepts/workloads/workload-api/">Workload API</a> is used
to express the requirements.</p></dd><dt id="GenericWorkload"><code class="feature-gate-name">GenericWorkload</code></dt>
      <dd><p>Enables the support for <a href="/docs/concepts/workloads/workload-api/">Workload API</a> to express scheduling requirements at the workload level.</p>
<p>When enabled Pods can reference a specific pod group and use this to influence
the way that they are scheduled.</p>
</dd><dt id="GitRepoVolumeDriver"><code class="feature-gate-name">GitRepoVolumeDriver</code></dt>
      <dd><p>This controls if the <code>gitRepo</code> volume plugin is supported or not.
The <code>gitRepo</code> volume plugin is disabled by default starting v1.33 release.
This provides a way for users to enable it.</p></dd><dt id="GracefulNodeShutdown"><code class="feature-gate-name">GracefulNodeShutdown</code></dt>
      <dd><p>Enables support for graceful shutdown in kubelet.
During a system shutdown, kubelet will attempt to detect the shutdown event
and gracefully terminate pods running on the node. See
<a href="/docs/concepts/architecture/nodes/#graceful-node-shutdown">Graceful Node Shutdown</a>
for more details.</p></dd><dt id="GracefulNodeShutdownBasedOnPodPriority"><code class="feature-gate-name">GracefulNodeShutdownBasedOnPodPriority</code></dt>
      <dd><p>Enables the kubelet to check Pod priorities
when shutting down a node gracefully.</p></dd><dt id="HostnameOverride"><code class="feature-gate-name">HostnameOverride</code></dt>
      <dd><p>Allows setting any FQDN as the pod's hostname.</p></dd><dt id="HPAConfigurableTolerance"><code class="feature-gate-name">HPAConfigurableTolerance</code></dt>
      <dd><p>Enables setting a <a href="/docs/tasks/run-application/horizontal-pod-autoscale#tolerance">tolerance threshold</a>
for HorizontalPodAutoscaler metrics.</p></dd><dt id="HPAScaleToZero"><code class="feature-gate-name">HPAScaleToZero</code></dt>
      <dd><p>Enables setting <code>minReplicas</code> to 0 for <code>HorizontalPodAutoscaler</code>
resources when using custom or external metrics.</p></dd><dt id="ImageMaximumGCAge"><code class="feature-gate-name">ImageMaximumGCAge</code></dt>
      <dd><p>Enables the kubelet configuration field <code>imageMaximumGCAge</code>, allowing an administrator to specify the age after which an image will be garbage collected.</p></dd><dt id="ImageVolume"><code class="feature-gate-name">ImageVolume</code></dt>
      <dd><p>Allow using the <a href="/docs/concepts/storage/volumes/"><code>image</code></a> volume source in a Pod.
This volume source lets you mount a container image as a read-only volume.</p></dd><dt id="ImageVolumeWithDigest"><code class="feature-gate-name">ImageVolumeWithDigest</code></dt>
      <dd><p>For each <a href="/docs/concepts/storage/volumes/#image"><code>image</code> volume</a> in a Pod,
image digest as part of the pod's status.</p></dd><dt id="InformerResourceVersion"><code class="feature-gate-name">InformerResourceVersion</code></dt>
      <dd><p>Allow clients to use the <code>LastSyncResourceVersion()</code> call on informers, enabling
them to perform actions based on the current resource version. When disabled,
<code>LastSyncResourceVersion()</code> succeeds but returns an empty string. Used by
kube-controller-manager for StorageVersionMigration.</p></dd><dt id="InOrderInformers"><code class="feature-gate-name">InOrderInformers</code></dt>
      <dd><p>Force the informers to deliver watch stream events in order instead of out of order.</p></dd><dt id="InPlacePodLevelResourcesVerticalScaling"><code class="feature-gate-name">InPlacePodLevelResourcesVerticalScaling</code></dt>
      <dd><p>Enables the in-place vertical scaling of resources for a Pod (For example, changing a
running Pod's pod-level CPU or memory requests/limits without needing to restart
it). For details, see the documentation on <a href="/docs/tasks/configure-pod-container/resize-pod-resources/">In-place Pod-level Resources Vertical Scaling</a>.</p></dd><dt id="InPlacePodVerticalScaling"><code class="feature-gate-name">InPlacePodVerticalScaling</code></dt>
      <dd><p>Enables in-place Pod vertical scaling.</p></dd><dt id="InPlacePodVerticalScalingAllocatedStatus"><code class="feature-gate-name">InPlacePodVerticalScalingAllocatedStatus</code></dt>
      <dd><p>Enables the <code>allocatedResources</code> field in the container status.
This feature requires the <code>InPlacePodVerticalScaling</code> gate be enabled as well.</p></dd><dt id="InPlacePodVerticalScalingExclusiveCPUs"><code class="feature-gate-name">InPlacePodVerticalScalingExclusiveCPUs</code></dt>
      <dd><p>Enable resource resizing for containers in Guaranteed pods with integer CPU requests.
It applies only in nodes with <code>InPlacePodVerticalScaling</code> and <code>CPUManager</code> features enabled,
and the CPUManager policy set to <code>static</code>.</p></dd><dt id="InPlacePodVerticalScalingExclusiveMemory"><code class="feature-gate-name">InPlacePodVerticalScalingExclusiveMemory</code></dt>
      <dd><p>Allow resource resize for containers in Guaranteed Pods when the memory manager policy is set to <code>&quot;Static&quot;</code>.
Applies only to nodes with <code>InPlacePodVerticalScaling</code> and memory manager features enabled.</p></dd><dt id="JobBackoffLimitPerIndex"><code class="feature-gate-name">JobBackoffLimitPerIndex</code></dt>
      <dd><p>Allows specifying the maximal number of pod
retries per index in Indexed jobs.</p></dd><dt id="JobManagedBy"><code class="feature-gate-name">JobManagedBy</code></dt>
      <dd><p>Allows to delegate reconciliation of a Job object to an external controller.</p></dd><dt id="JobPodReplacementPolicy"><code class="feature-gate-name">JobPodReplacementPolicy</code></dt>
      <dd><p>Allows you to specify pod replacement for terminating pods in a <a href="/docs/concepts/workloads/controllers/job/">Job</a></p></dd><dt id="JobSuccessPolicy"><code class="feature-gate-name">JobSuccessPolicy</code></dt>
      <dd><p>Allow users to specify when a Job can be declared as succeeded based on the set of succeeded pods.</p></dd><dt id="KMSv1"><code class="feature-gate-name">KMSv1</code></dt>
      <dd><p>Enables KMS v1 API for encryption at rest. See
<a href="/docs/tasks/administer-cluster/kms-provider/">Using a KMS Provider for data encryption</a>
for more details.</p></dd><dt id="KubeletCgroupDriverFromCRI"><code class="feature-gate-name">KubeletCgroupDriverFromCRI</code></dt>
      <dd><p>Enable detection of the kubelet cgroup driver
configuration option from the <a class='glossary-tooltip' title='Protocol for communication between the kubelet and the local container runtime.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/architecture/cri' target='_blank' aria-label='CRI'>CRI</a>.
This feature gate is now on for all clusters. However, it only works on nodes
where there is a CRI container runtime that supports the <code>RuntimeConfig</code>
CRI call. If the CRI supports this feature, the kubelet ignores the
<code>cgroupDriver</code> configuration setting (or deprecated <code>--cgroup-driver</code> command
line argument). If the container runtime
doesn't support it, the kubelet falls back to using the driver configured using
the <code>cgroupDriver</code> configuration setting.
The kubelet will stop falling back to this configuration in Kubernetes 1.36.
Thus, users must upgrade their CRI container runtime to a version that supports
the <code>RuntimeConfig</code> CRI call by then. Admins can use the metric
<code>kubelet_cri_losing_support</code> to see if there are any nodes in their cluster that
will lose support in 1.36. The following CRI versions support this CRI call:</p>
<ul>
<li>containerd: Support was added in v2.0.0</li>
<li>CRI-O: Support was added in v1.28.0</li>
</ul>
<p>See <a href="/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/">Configuring a cgroup driver</a>
for more details.</p>
</dd><dt id="KubeletCrashLoopBackOffMax"><code class="feature-gate-name">KubeletCrashLoopBackOffMax</code></dt>
      <dd><p>Enables support for configurable per-node backoff maximums for restarting
containers in the <code>CrashLoopBackOff</code> state.
For more details, check the <code>crashLoopBackOff.maxContainerRestartPeriod</code> field in the
<a href="/docs/reference/config-api/kubelet-config.v1beta1/">kubelet config file</a>.</p></dd><dt id="KubeletEnsureSecretPulledImages"><code class="feature-gate-name">KubeletEnsureSecretPulledImages</code></dt>
      <dd><p>Ensure that pods requesting an image are authorized to access the image
with the provided credentials when the image is already present on the node.
See <a href="/docs/concepts/containers/images/#ensureimagepullcredentialverification">Ensure Image Pull Credential Verification</a>.</p></dd><dt id="KubeletFineGrainedAuthz"><code class="feature-gate-name">KubeletFineGrainedAuthz</code></dt>
      <dd><p>Enable <a href="/docs/reference/access-authn-authz/kubelet-authn-authz/#fine-grained-authorization">fine-grained authorization</a>
for the kubelet's HTTP(s) API.</p></dd><dt id="KubeletInUserNamespace"><code class="feature-gate-name">KubeletInUserNamespace</code></dt>
      <dd><p>Enables support for running kubelet in a
<a class='glossary-tooltip' title='A Linux kernel feature to emulate superuser privilege for unprivileged users.' data-bs-toggle='tooltip' data-bs-placement='top' href='https://man7.org/linux/man-pages/man7/user_namespaces.7.html' target='_blank' aria-label='user namespace'>user namespace</a>.
See <a href="/docs/tasks/administer-cluster/kubelet-in-userns/">Running Kubernetes Node Components as a Non-root User</a>.</p></dd><dt id="KubeletPodResourcesDynamicResources"><code class="feature-gate-name">KubeletPodResourcesDynamicResources</code></dt>
      <dd><p>Extend the kubelet's
<a href="/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/">pod resources monitoring gRPC API</a>
endpoints List and Get to include resources allocated in ResourceClaims
via <a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/">Dynamic Resource Allocation</a>.</p>
<p>Below is an example of GPU metrics to show how this API is consumed by
<a href="https://github.com/NVIDIA/dcgm-exporter">NVIDIA dcgm-exporter</a> to collect per pod GPU metrics allocated by
<a href="https://github.com/NVIDIA/k8s-dra-driver-gpu">NVIDIA DRA driver</a>:</p>
<pre tabindex="0"><code>DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&#34;0&#34;,UUID=&#34;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&#34;,pci_bus_id=&#34;00000009:01:00.0&#34;,device=&#34;nvidia0&#34;,modelName=&#34;NVIDIA GH200 96GB HBM3&#34;,Hostname=&#34;sc-starwars-xxxx&#34;,container=&#34;ctr&#34;,dra_claim_name=&#34;single-gpu&#34;,dra_claim_namespace=&#34;gpu-test3&#34;,dra_device_name=&#34;gpu-0&#34;,dra_driver_name=&#34;gpu.nvidia.com&#34;,dra_pool_name=&#34;sc-starwars-xxxx&#34;,namespace=&#34;gpu-test3&#34;,pod=&#34;pod1&#34;} 23792
<p>DCGM_FI_PROF_PCIE_RX_BYTES{gpu=&quot;0&quot;,UUID=&quot;GPU-a4f34abc-7715-3560-dcea-7238b9611a45&quot;,pci_bus_id=&quot;00000009:01:00.0&quot;,device=&quot;nvidia0&quot;,modelName=&quot;NVIDIA GH200 96GB HBM3&quot;,Hostname=&quot;sc-starwars-xxxx&quot;,container=&quot;ctr&quot;,dra_claim_name=&quot;single-gpu&quot;,dra_claim_namespace=&quot;gpu-test3&quot;,dra_device_name=&quot;gpu-0&quot;,dra_driver_name=&quot;gpu.nvidia.com&quot;,dra_pool_name=&quot;sc-starwars-xxxx&quot;,namespace=&quot;gpu-test3&quot;,pod=&quot;pod2&quot;} 23792</p>
<p>with Pod DRA info:</p>
<p>container=&quot;ctr&quot;,
dra_claim_name=&quot;single-gpu&quot;,
dra_claim_namespace=&quot;gpu-test3&quot;,
dra_device_name=&quot;gpu-0&quot;,dra_driver_name=&quot;gpu.nvidia.com&quot;,
dra_pool_name=&quot;sc-starwars-xxxx&quot;,
namespace=&quot;gpu-test3&quot;,
pod=&quot;pod1&quot;
</code></pre></p>
</dd><dt id="KubeletPodResourcesGet"><code class="feature-gate-name">KubeletPodResourcesGet</code></dt>
      <dd><p>Enable the <code>Get</code> gRPC endpoint on kubelet's for Pod resources.
This API augments the <a href="/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#monitoring-device-plugin-resources">resource allocation reporting</a>.</p></dd><dt id="KubeletPSI"><code class="feature-gate-name">KubeletPSI</code></dt>
      <dd><p>Enable kubelet to surface Pressure Stall Information (PSI) metrics in the Summary API and Prometheus metrics.</p></dd><dt id="KubeletSeparateDiskGC"><code class="feature-gate-name">KubeletSeparateDiskGC</code></dt>
      <dd><p>The split image filesystem feature enables kubelet to perform garbage collection
of images (read-only layers) and/or containers (writeable layers) deployed on
separate filesystems.</p></dd><dt id="KubeletServiceAccountTokenForCredentialProviders"><code class="feature-gate-name">KubeletServiceAccountTokenForCredentialProviders</code></dt>
      <dd><p>Enable kubelet to send the service account token bound to the pod for which the image is being pulled to the credential provider plugin.</p></dd><dt id="KubeletTracing"><code class="feature-gate-name">KubeletTracing</code></dt>
      <dd><p>Add support for distributed tracing in the kubelet.
When enabled, kubelet CRI interface and authenticated http servers are instrumented to generate
OpenTelemetry trace spans.
See <a href="/docs/concepts/cluster-administration/system-traces/">Traces for Kubernetes System Components</a> for more details.</p></dd><dt id="ListFromCacheSnapshot"><code class="feature-gate-name">ListFromCacheSnapshot</code></dt>
      <dd><p>Enables the API server to generate snapshots for the watch cache store and using them to serve LIST requests.</p></dd><dt id="LocalStorageCapacityIsolationFSQuotaMonitoring"><code class="feature-gate-name">LocalStorageCapacityIsolationFSQuotaMonitoring</code></dt>
      <dd><p>When <code>LocalStorageCapacityIsolation</code>
is enabled for
<a href="/docs/concepts/configuration/manage-resources-containers/">local ephemeral storage</a>,
the backing filesystem for <a href="/docs/concepts/storage/volumes/#emptydir">emptyDir volumes</a> supports project quotas,
and <code>UserNamespacesSupport</code> is enabled,
project quotas are used to monitor <code>emptyDir</code> volume storage consumption rather than using filesystem walk, ensuring better performance and accuracy.</p></dd><dt id="LogarithmicScaleDown"><code class="feature-gate-name">LogarithmicScaleDown</code></dt>
      <dd><p>Enable semi-random selection of pods to evict on controller scaledown
based on logarithmic bucketing of pod timestamps.</p></dd><dt id="LoggingAlphaOptions"><code class="feature-gate-name">LoggingAlphaOptions</code></dt>
      <dd><p>Allow fine-tuning of experimental, alpha-quality logging options.</p></dd><dt id="LoggingBetaOptions"><code class="feature-gate-name">LoggingBetaOptions</code></dt>
      <dd><p>Allow fine-tuning of experimental, beta-quality logging options.</p></dd><dt id="ManifestBasedAdmissionControlConfig"><code class="feature-gate-name">ManifestBasedAdmissionControlConfig</code></dt>
      <dd><p>Enable loading admission webhooks and CEL-based admission policies from
static manifest files on disk via the <code>staticManifestsDir</code> field in
<code>AdmissionConfiguration</code>. These policies are active from API server startup,
survive etcd unavailability, and can protect API-based admission resources
from modification.</p></dd><dt id="MatchLabelKeysInPodAffinity"><code class="feature-gate-name">MatchLabelKeysInPodAffinity</code></dt>
      <dd><p>Enable the <code>matchLabelKeys</code> and <code>mismatchLabelKeys</code> fields for
<a href="/docs/concepts/scheduling-eviction/assign-pod-node/">pod (anti)affinity</a>.</p></dd><dt id="MatchLabelKeysInPodTopologySpread"><code class="feature-gate-name">MatchLabelKeysInPodTopologySpread</code></dt>
      <dd><p>Enable the <code>matchLabelKeys</code> field for
<a href="/docs/concepts/scheduling-eviction/topology-spread-constraints/">Pod topology spread constraints</a>.</p></dd><dt id="MatchLabelKeysInPodTopologySpreadSelectorMerge"><code class="feature-gate-name">MatchLabelKeysInPodTopologySpreadSelectorMerge</code></dt>
      <dd><p>Enable merging of selectors built from <code>matchLabelKeys</code> into <code>labelSelector</code> of
<a href="/docs/concepts/scheduling-eviction/topology-spread-constraints/">Pod topology spread constraints</a>.
This feature gate can be enabled when <code>matchLabelKeys</code> feature is enabled with the <code>MatchLabelKeysInPodTopologySpread</code> feature flag.</p></dd><dt id="MaxUnavailableStatefulSet"><code class="feature-gate-name">MaxUnavailableStatefulSet</code></dt>
      <dd><p>Enables setting the <code>maxUnavailable</code> field for the
<a href="/docs/concepts/workloads/controllers/statefulset/#rolling-updates">rolling update strategy</a>
of a StatefulSet. The field specifies the maximum number of Pods
that can be unavailable during the update.</p></dd><dt id="MemoryManager"><code class="feature-gate-name">MemoryManager</code></dt>
      <dd><p>Allows setting memory affinity for a container based on
NUMA topology.</p></dd><dt id="MemoryQoS"><code class="feature-gate-name">MemoryQoS</code></dt>
      <dd><p>Enable memory protection and usage throttle on pod / container using
cgroup v2 memory controller. Sets <code>memory.high</code> for throttling on Burstable
pods, and optionally sets <code>memory.min</code> / <code>memory.low</code> for tiered memory
protection when <code>memoryReservationPolicy</code> is set to <code>TieredReservation</code>.</p></dd><dt id="MultiCIDRServiceAllocator"><code class="feature-gate-name">MultiCIDRServiceAllocator</code></dt>
      <dd><p>Track IP address allocations for Service cluster IPs using IPAddress objects.</p></dd><dt id="MutableCSINodeAllocatableCount"><code class="feature-gate-name">MutableCSINodeAllocatableCount</code></dt>
      <dd><p>Make the <code>.spec.drivers[*].allocatable.count</code> field of a CSINode mutable.
Also, enable a CSIDriver field, <code>nodeAllocatableUpdatePeriodSeconds</code>.</p>
<p>This allows periodic updates to a node's reported allocatable volume capacity,
preventing stateful pods from becoming stuck due to outdated information
that the kube-scheduler would otherwise rely upon.</p>
</dd><dt id="MutablePodResourcesForSuspendedJobs"><code class="feature-gate-name">MutablePodResourcesForSuspendedJobs</code></dt>
      <dd><p>Enable the ability to patch pod templates for suspended Jobs, in order to change requests or limits for infrastructure resources.</p></dd><dt id="MutablePVNodeAffinity"><code class="feature-gate-name">MutablePVNodeAffinity</code></dt>
      <dd><p>Allow update to the <code>.spec.nodeAffinity</code> field of a PersistentVolume.
See <a href="/docs/concepts/storage/persistent-volumes/#updates-to-node-affinity">Updates to node affinity</a> for more details.</p></dd><dt id="MutableSchedulingDirectivesForSuspendedJobs"><code class="feature-gate-name">MutableSchedulingDirectivesForSuspendedJobs</code></dt>
      <dd><p>Enable the ability to patch pod templates for suspended Jobs, in order to change the pod scheduling directives.</p></dd><dt id="MutatingAdmissionPolicy"><code class="feature-gate-name">MutatingAdmissionPolicy</code></dt>
      <dd><p>Enable <a href="/docs/reference/access-authn-authz/mutating-admission-policy/">MutatingAdmissionPolicy</a> support, which allows
<a href="/docs/reference/using-api/cel/">CEL</a> mutations to
be applied during admission control.</p>
<p>For Kubernetes v1.30 and v1.31, this feature gate existed but had no effect.</p>
</dd><dt id="NativeHistograms"><code class="feature-gate-name">NativeHistograms</code></dt>
      <dd><p>Enables Kubernetes components to expose metrics in Prometheus Native Histogram format for improved efficiency and finer bucket resolution.
See <a href="/docs/reference/instrumentation/native-histograms/">Native Histograms</a> for more information.</p></dd><dt id="NFTablesProxyMode"><code class="feature-gate-name">NFTablesProxyMode</code></dt>
      <dd><p>Allow running kube-proxy in <a href="/docs/reference/networking/virtual-ips/#proxy-mode-nftables">nftables mode</a>.</p></dd><dt id="NodeDeclaredFeatures"><code class="feature-gate-name">NodeDeclaredFeatures</code></dt>
      <dd><p>Enables Nodes to report supported features via their <code>.status</code>. This enables the
scheduler and admission controller to prevent operations on nodes lacking features
required by the pod. See <a href="/docs/concepts/scheduling-eviction/node-declared-features/">Node Declared Features</a>.</p></dd><dt id="NodeInclusionPolicyInPodTopologySpread"><code class="feature-gate-name">NodeInclusionPolicyInPodTopologySpread</code></dt>
      <dd><p>Enable using <code>nodeAffinityPolicy</code> and <code>nodeTaintsPolicy</code> in
<a href="/docs/concepts/scheduling-eviction/topology-spread-constraints/">Pod topology spread constraints</a>
when calculating pod topology spread skew.</p></dd><dt id="NodeLogQuery"><code class="feature-gate-name">NodeLogQuery</code></dt>
      <dd><p>Enables querying logs of node services using the <code>/logs</code> endpoint.</p></dd><dt id="NodeSwap"><code class="feature-gate-name">NodeSwap</code></dt>
      <dd><p>Enable the kubelet to allocate swap memory for Kubernetes workloads on a node.
Must be used with <code>KubeletConfiguration.failSwapOn</code> set to false.
For more details, please see <a href="/docs/concepts/architecture/nodes/#swap-memory">swap memory</a></p></dd><dt id="NominatedNodeNameForExpectation"><code class="feature-gate-name">NominatedNodeNameForExpectation</code></dt>
      <dd><p>When enabled, kube-scheduler uses <code>.status.nominatedNodeName</code> to express where a
Pod is going to be bound. The <code>.status.nominatedNodeName</code> field is set when kube-scheduler
triggers preemption of pods, or anticipates that WaitOnPermit or PreBinding phase will take
relatively long.
Other components may read and use <code>.status.nominatedNodeName</code>, but should not set it.</p>
<p>When disabled, kube-scheduler will only set <code>.status.nominatedNodeName</code> before triggering preemption.</p>
</dd><dt id="OpenAPIEnums"><code class="feature-gate-name">OpenAPIEnums</code></dt>
      <dd><p>Enables populating &quot;enum&quot; fields of OpenAPI schemas in the
spec returned from the API server.</p></dd><dt id="OpportunisticBatching"><code class="feature-gate-name">OpportunisticBatching</code></dt>
      <dd><p>Enable reusing of scheduling results from the previous scheduling cycle for equivalent pods.</p></dd><dt id="OrderedNamespaceDeletion"><code class="feature-gate-name">OrderedNamespaceDeletion</code></dt>
      <dd><p>While deleting namespace, the pods resources is going to be deleted before the rest of resources.</p></dd><dt id="PersistentVolumeClaimUnusedSinceTime"><code class="feature-gate-name">PersistentVolumeClaimUnusedSinceTime</code></dt>
      <dd><p>When enabled, the PVC protection controller adds an <code>Unused</code> condition to
PersistentVolumeClaims that tracks whether the PVC is currently referenced by
any non-terminal Pod. The condition's <code>lastTransitionTime</code> records when the PVC
last transitioned between being in use and being unused.</p></dd><dt id="PodAndContainerStatsFromCRI"><code class="feature-gate-name">PodAndContainerStatsFromCRI</code></dt>
      <dd><p>Configure the kubelet to gather container and pod stats from the CRI container runtime rather than gathering them from cAdvisor.
As of 1.26, this also includes gathering metrics from CRI and emitting them over <code>/metrics/cadvisor</code> (rather than having cAdvisor emit them directly).</p></dd><dt id="PodCertificateRequest"><code class="feature-gate-name">PodCertificateRequest</code></dt>
      <dd><p>Enable PodCertificateRequest objects and podCertificate projected volume
sources.</p></dd><dt id="PodDeletionCost"><code class="feature-gate-name">PodDeletionCost</code></dt>
      <dd><p>Enable the <a href="/docs/concepts/workloads/controllers/replicaset/#pod-deletion-cost">Pod Deletion Cost</a>
feature which allows users to influence ReplicaSet downscaling order.</p></dd><dt id="PodIndexLabel"><code class="feature-gate-name">PodIndexLabel</code></dt>
      <dd><p>Enables the Job controller and StatefulSet controller to add the pod index as a label when creating new pods. See <a href="/docs/concepts/workloads/controllers/job/#completion-mode">Job completion mode docs</a> and <a href="/docs/concepts/workloads/controllers/statefulset/#pod-index-label">StatefulSet pod index label docs</a> for more details.</p></dd><dt id="PodInfoAPI"><code class="feature-gate-name">PodInfoAPI</code></dt>
      <dd><p>Enables the kubelet Pod Info gRPC API.
See <a href="/docs/reference/node/kubelet-pod-info-grpc-api/">Kubelet Pod Info gRPC API</a> for more details.</p></dd><dt id="PodLevelResourceManagers"><code class="feature-gate-name">PodLevelResourceManagers</code></dt>
      <dd><p>Enable <em>Pod-level resource managers</em>: the ability for the Topology, CPU, and
Memory managers to use information from <code>.spec.resources</code> to perform NUMA
alignment for an entire pod and manage resources flexibly for the containers
within that pod.</p></dd><dt id="PodLevelResources"><code class="feature-gate-name">PodLevelResources</code></dt>
      <dd><p>Enable <em>Pod level resources</em>:  the ability to specify resource requests and limits
at the Pod level, rather than only for specific containers.</p></dd><dt id="PodLifecycleSleepAction"><code class="feature-gate-name">PodLifecycleSleepAction</code></dt>
      <dd><p>Enables the <code>sleep</code> action in Container lifecycle hooks (<code>preStop</code> and <code>postStart</code>).</p></dd><dt id="PodLifecycleSleepActionAllowZero"><code class="feature-gate-name">PodLifecycleSleepActionAllowZero</code></dt>
      <dd><p>Enables setting zero value for the <code>sleep</code> action in
<a href="/docs/concepts/containers/container-lifecycle-hooks/">container lifecycle hooks</a>.</p></dd><dt id="PodLogsQuerySplitStreams"><code class="feature-gate-name">PodLogsQuerySplitStreams</code></dt>
      <dd><p>Enable fetching specific log streams (either stdout or stderr) from a container's log streams, using the Pod API.</p></dd><dt id="PodObservedGenerationTracking"><code class="feature-gate-name">PodObservedGenerationTracking</code></dt>
      <dd><p>Enables the kubelet to set <code>observedGeneration</code> in the Pod <code>.status</code>, and enables other components to set <code>observedGeneration</code> in pod conditions.
This feature allows reflecting the <code>.metadata.generation</code> of the Pod at the time that the overall status, or some specific condition, was being recorded.
Storing it helps avoid risks associated with <em>lost updates</em>.</p></dd><dt id="PodReadyToStartContainersCondition"><code class="feature-gate-name">PodReadyToStartContainersCondition</code></dt>
      <dd><p>Enable the kubelet to mark the <a href="/docs/concepts/workloads/pods/pod-lifecycle/#pod-has-network">PodReadyToStartContainers</a> condition on pods.</p>
<p>This feature gate was previously known as <code>PodHasNetworkCondition</code>, and the associated condition was
named <code>PodHasNetwork</code>.</p>
</dd><dt id="PodSchedulingReadiness"><code class="feature-gate-name">PodSchedulingReadiness</code></dt>
      <dd><p>Enable setting <code>schedulingGates</code> field to control a Pod's <a href="/docs/concepts/scheduling-eviction/pod-scheduling-readiness/">scheduling readiness</a>.</p></dd><dt id="PodTopologyLabelsAdmission"><code class="feature-gate-name">PodTopologyLabelsAdmission</code></dt>
      <dd><p>Enables the <code>PodTopologyLabels</code> admission plugin.
See <a href="/docs/reference/access-authn-authz/admission-controllers/#podtopologylabels">Pod Topology Labels</a>
for details.</p></dd><dt id="PortForwardWebsockets"><code class="feature-gate-name">PortForwardWebsockets</code></dt>
      <dd><p>Allow WebSocket streaming of the
portforward sub-protocol (<code>port-forward</code>) from clients requesting
version v2 (<code>v2.portforward.k8s.io</code>) of the sub-protocol.</p></dd><dt id="PreferSameTrafficDistribution"><code class="feature-gate-name">PreferSameTrafficDistribution</code></dt>
      <dd><p>Allows usage of the values <code>PreferSameZone</code> and <code>PreferSameNode</code> in
the Service <a href="/docs/reference/networking/virtual-ips/#traffic-distribution"><code>trafficDistribution</code></a>
field.</p></dd><dt id="PreventStaticPodAPIReferences"><code class="feature-gate-name">PreventStaticPodAPIReferences</code></dt>
      <dd><p>Denies Pod admission if static Pods reference other API objects.</p></dd><dt id="ProcMountType"><code class="feature-gate-name">ProcMountType</code></dt>
      <dd><p>Enables control over the type proc mounts for containers
by setting the <code>procMount</code> field of a Pod's <code>securityContext</code>.</p></dd><dt id="QOSReserved"><code class="feature-gate-name">QOSReserved</code></dt>
      <dd><p>Allows resource reservations at the QoS level preventing pods
at lower QoS levels from bursting into resources requested at higher QoS levels
(memory only for now).</p></dd><dt id="RecoverVolumeExpansionFailure"><code class="feature-gate-name">RecoverVolumeExpansionFailure</code></dt>
      <dd><p>Enables users to edit their PVCs to smaller
sizes so as they can recover from previously issued volume expansion failures.
See <a href="/docs/concepts/storage/persistent-volumes/#recovering-from-failure-when-expanding-volumes">Recovering from Failure when Expanding Volumes</a>
for more details.</p></dd><dt id="RecursiveReadOnlyMounts"><code class="feature-gate-name">RecursiveReadOnlyMounts</code></dt>
      <dd><p>Enables support for recursive read-only mounts.
For more details, see <a href="/docs/concepts/storage/volumes/#read-only-mounts">read-only mounts</a>.</p></dd><dt id="ReduceDefaultCrashLoopBackOffDecay"><code class="feature-gate-name">ReduceDefaultCrashLoopBackOffDecay</code></dt>
      <dd><p>Enabled reduction of both the initial delay and the maximum delay accrued
between container restarts for a node for containers in <code>CrashLoopBackOff</code>
across the cluster to <code>1s</code> initial delay and <code>60s</code> maximum delay.</p></dd><dt id="RelaxedDNSSearchValidation"><code class="feature-gate-name">RelaxedDNSSearchValidation</code></dt>
      <dd><p>Relax the server side validation for the DNS search string
(<code>.spec.dnsConfig.searches</code>) for containers. For example,
with this gate enabled, it is okay to include the <code>_</code> character
in the DNS name search string.</p></dd><dt id="RelaxedEnvironmentVariableValidation"><code class="feature-gate-name">RelaxedEnvironmentVariableValidation</code></dt>
      <dd><p>Allow almost all printable ASCII characters in environment variables.</p></dd><dt id="RelaxedServiceNameValidation"><code class="feature-gate-name">RelaxedServiceNameValidation</code></dt>
      <dd><p>Enables relaxed validation for Service object names, allowing the use of <a href="/docs/concepts/overview/working-with-objects/names/#dns-label-names">RFC 1123 label names</a> instead of <a href="/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names">RFC 1035 label names</a>.</p>
<p>This feature allows Service object names to start with a digit.</p>
</dd><dt id="ReloadKubeletServerCertificateFile"><code class="feature-gate-name">ReloadKubeletServerCertificateFile</code></dt>
      <dd><p>Enable the kubelet TLS server to update its certificate if the specified certificate file are changed.</p>
<p>This feature is useful when specifying <code>tlsCertFile</code> and <code>tlsPrivateKeyFile</code> in kubelet configuration.
The feature gate has no effect for other cases such as using TLS bootstrap.</p>
</dd><dt id="RemoteRequestHeaderUID"><code class="feature-gate-name">RemoteRequestHeaderUID</code></dt>
      <dd><p>Enable the API server to accept UIDs (user IDs) via request header authentication.
This will also make the <code>kube-apiserver</code>'s API aggregator add UIDs via standard headers when
forwarding requests to the servers serving the aggregated API.</p></dd><dt id="ResilientWatchCacheInitialization"><code class="feature-gate-name">ResilientWatchCacheInitialization</code></dt>
      <dd><p>Enables resilient watchcache initialization to avoid controlplane overload.</p></dd><dt id="ResourceHealthStatus"><code class="feature-gate-name">ResourceHealthStatus</code></dt>
      <dd><p>Enable the <code>allocatedResourcesStatus</code> field within the <code>.status</code> for a Pod. The field
reports additional details for each container in the Pod,
with the health information for each device assigned to the Pod.</p>
<p>Starting in v1.36 (beta), the health report includes an optional <code>message</code> field that
provides additional human-readable context about the health status, such as error details
or failure reasons.</p>
<p>This feature applies to devices managed by both <a href="/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices">Device Plugins</a> and <a href="/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#device-health-monitoring">Dynamic Resource Allocation</a>. See <a href="/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices">Device plugin and unhealthy devices</a> for more details.</p>
</dd><dt id="RestartAllContainersOnContainerExits"><code class="feature-gate-name">RestartAllContainersOnContainerExits</code></dt>
      <dd><p>Enables the ability to specify
<code>RestartAllContainers</code> as an action in container <code>restartPolicyRules</code>. When a container's exit matches a rule with this action, the entire Pod is terminated and restarted in-place.</p>
<p><code>RestartAllContainersOnContainerExits</code> depends on both the <code>ContainerRestartRules</code> and <code>NodeDeclaredFeatures</code> feature gates. If the dependent feature gates are not enabled, kubelet startup can fail.</p>
<p>See <a href="/docs/concepts/workloads/pods/pod-lifecycle/#restart-all-containers">Restart All Containers</a> for more details.</p>
</dd><dt id="RetryGenerateName"><code class="feature-gate-name">RetryGenerateName</code></dt>
      <dd><p>Enables retrying of object creation when the
<a class='glossary-tooltip' title='Control plane component that serves the Kubernetes API.' data-bs-toggle='tooltip' data-bs-placement='top' href='/docs/concepts/architecture/#kube-apiserver' target='_blank' aria-label='API server'>API server</a>
is expected to generate a <a href="/docs/concepts/overview/working-with-objects/names/#names">name</a>.</p>
<p>When this feature is enabled, requests using <code>generateName</code> are retried automatically in case the
control plane detects a name conflict with an existing object, up to a limit of 8 total attempts.</p>
</dd><dt id="RotateKubeletServerCertificate"><code class="feature-gate-name">RotateKubeletServerCertificate</code></dt>
      <dd><p>Enable the rotation of the server TLS certificate on the kubelet.
See <a href="/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration">kubelet configuration</a>
for more details.</p></dd><dt id="RuntimeClassInImageCriApi"><code class="feature-gate-name">RuntimeClassInImageCriApi</code></dt>
      <dd><p>Enables images to be pulled based on the <a href="/docs/concepts/containers/runtime-class/">runtime class</a>
of the pods that reference them.</p></dd><dt id="SchedulerAsyncAPICalls"><code class="feature-gate-name">SchedulerAsyncAPICalls</code></dt>
      <dd><p>Change the kube-scheduler to make the entire scheduling cycle free of blocking requests to the Kubernetes API server.
Instead, interact with the Kubernetes API using asynchronous code.</p></dd><dt id="SchedulerAsyncPreemption"><code class="feature-gate-name">SchedulerAsyncPreemption</code></dt>
      <dd><p>Enable running some expensive operations within the scheduler, associated with
<a href="/docs/concepts/scheduling-eviction/pod-priority-preemption/">preemption</a>, asynchronously.
Asynchronous processing of preemption improves overall Pod scheduling latency.</p></dd><dt id="SchedulerPopFromBackoffQ"><code class="feature-gate-name">SchedulerPopFromBackoffQ</code></dt>
      <dd><p>Improves scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty.
This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue.</p></dd><dt id="SchedulerQueueingHints"><code class="feature-gate-name">SchedulerQueueingHints</code></dt>
      <dd><p>Enables scheduler <a href="/docs/concepts/scheduling-eviction/scheduling-framework/#queueinghint">queueing hints</a>,
which benefits to reduce the useless requeuing.
The scheduler retries scheduling pods if something changes in the cluster that could make the pod scheduled.
Queueing hints are internal signals that allow the scheduler to filter the changes in the cluster
that are relevant to the unscheduled pod, based on previous scheduling attempts.</p></dd><dt id="SELinuxChangePolicy"><code class="feature-gate-name">SELinuxChangePolicy</code></dt>
      <dd><p>Enables <code>spec.securityContext.seLinuxChangePolicy</code> field.
This field can be used to opt-out from applying the SELinux label to the pod
volumes using mount options. This is required when a single volume that supports
mounting with SELinux mount option is shared between Pods that have different
SELinux labels, such as a privileged and unprivileged Pods.</p>
<p>Enabling the <code>SELinuxChangePolicy</code> feature gate requires the feature gate <code>SELinuxMountReadWriteOncePod</code> to
be enabled.</p>
</dd><dt id="SELinuxMount"><code class="feature-gate-name">SELinuxMount</code></dt>
      <dd><p>Speeds up container startup by allowing kubelet to mount volumes
for a Pod directly with the correct SELinux label instead of changing each file on the volumes
recursively.
It widens the performance improvements behind the <code>SELinuxMountReadWriteOncePod</code>
feature gate by extending the implementation to all volumes.</p>
<p>Enabling the <code>SELinuxMount</code> feature gate requires the feature gates <code>SELinuxMountReadWriteOncePod</code>
and <code>SELinuxChangePolicy</code> to be enabled.</p>
</dd><dt id="SELinuxMountReadWriteOncePod"><code class="feature-gate-name">SELinuxMountReadWriteOncePod</code></dt>
      <dd><p>Speeds up container startup by allowing kubelet to mount volumes
for a Pod directly with the correct SELinux label instead of changing each file on the volumes
recursively. The initial implementation focused on ReadWriteOncePod volumes.</p></dd><dt id="SeparateCacheWatchRPC"><code class="feature-gate-name">SeparateCacheWatchRPC</code></dt>
      <dd><p>Allows the API server watch cache to create a watch on a dedicated RPC.
This prevents watch cache from being starved by other watches.</p></dd><dt id="SeparateTaintEvictionController"><code class="feature-gate-name">SeparateTaintEvictionController</code></dt>
      <dd><p>Enables running the <em>taint based eviction</em> controller,
that performs <a href="/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions">Taint-based Evictions</a>,
as a standalone controller (separate from the <em>node lifecycle</em> controller).</p></dd><dt id="ServiceAccountNodeAudienceRestriction"><code class="feature-gate-name">ServiceAccountNodeAudienceRestriction</code></dt>
      <dd><p>This gate is used to restrict the audience for which the kubelet can request a service account token for.</p></dd><dt id="ServiceAccountTokenJTI"><code class="feature-gate-name">ServiceAccountTokenJTI</code></dt>
      <dd><p>Controls whether JTIs (UUIDs) are embedded into generated service account tokens,
and whether these JTIs are recorded into the Kubernetes audit log for future requests made by these tokens.</p></dd><dt id="ServiceAccountTokenNodeBinding"><code class="feature-gate-name">ServiceAccountTokenNodeBinding</code></dt>
      <dd><p>Controls whether the API server allows binding service account tokens to Node objects.</p></dd><dt id="ServiceAccountTokenNodeBindingValidation"><code class="feature-gate-name">ServiceAccountTokenNodeBindingValidation</code></dt>
      <dd><p>Controls whether the apiserver will validate a Node reference in service account tokens.</p></dd><dt id="ServiceAccountTokenPodNodeInfo"><code class="feature-gate-name">ServiceAccountTokenPodNodeInfo</code></dt>
      <dd><p>Controls whether the apiserver embeds the node name and uid
for the associated node when issuing service account tokens bound to Pod objects.</p></dd><dt id="ServiceTrafficDistribution"><code class="feature-gate-name">ServiceTrafficDistribution</code></dt>
      <dd><p>Allows usage of the optional <code>spec.trafficDistribution</code> field in Services. The
field offers a way to express preferences for how traffic is distributed to
Service endpoints.</p></dd><dt id="ShardedListAndWatch"><code class="feature-gate-name">ShardedListAndWatch</code></dt>
      <dd><p>Enable support for the <code>shardSelector</code> parameter on <strong>list</strong> and <strong>watch</strong> requests,
allowing clients to receive a filtered subset of objects based on hash ranges of
metadata fields (such as UID). See
<a href="/docs/reference/using-api/api-concepts/#sharded-list-and-watch">Sharded list and watch</a>
for more details.</p></dd><dt id="SidecarContainers"><code class="feature-gate-name">SidecarContainers</code></dt>
      <dd><p>Allow setting the <code>restartPolicy</code> of an init container to
<code>Always</code> so that the container becomes a sidecar container (restartable init containers).
See <a href="/docs/concepts/workloads/pods/sidecar-containers/">Sidecar containers and restartPolicy</a>
for more details.</p></dd><dt id="SizeBasedListCostEstimate"><code class="feature-gate-name">SizeBasedListCostEstimate</code></dt>
      <dd><p>Enables APF to use size of objects for estimating request cost.</p></dd><dt id="StaleControllerConsistencyDaemonSet"><code class="feature-gate-name">StaleControllerConsistencyDaemonSet</code></dt>
      <dd><p>Enables behavior within the DaemonSet controller to ensure that prior writes to
the API server are observed before proceeding with additional reconciliation for the same DaemonSet.
This is to prevent stale cache from causing incorrect or spurious updates to the DaemonSet.</p></dd><dt id="StaleControllerConsistencyJob"><code class="feature-gate-name">StaleControllerConsistencyJob</code></dt>
      <dd><p>Enables behavior within the Job controller to ensure that prior writes to
the API server are observed before proceeding with additional reconciliation for the same Job.
This is to prevent stale cache from causing incorrect or spurious updates to the Job.</p></dd><dt id="StaleControllerConsistencyReplicaSet"><code class="feature-gate-name">StaleControllerConsistencyReplicaSet</code></dt>
      <dd><p>Enables behavior within the ReplicaSet controller to ensure that prior writes to
the API server are observed before proceeding with additional reconciliation for the same ReplicaSet.
This is to prevent stale cache from causing incorrect or spurious updates to the ReplicaSet.</p></dd><dt id="StaleControllerConsistencyStatefulSet"><code class="feature-gate-name">StaleControllerConsistencyStatefulSet</code></dt>
      <dd><p>Enables behavior within the StatefulSet controller to ensure that prior writes to
the API server are observed before proceeding with additional reconciliation for the same StatefulSet.
This is to prevent stale cache from causing incorrect or spurious updates to the StatefulSet.</p></dd><dt id="StatefulSetAutoDeletePVC"><code class="feature-gate-name">StatefulSetAutoDeletePVC</code></dt>
      <dd><p>Allows the use of the optional <code>.spec.persistentVolumeClaimRetentionPolicy</code> field,
providing control over the deletion of PVCs in a StatefulSet's lifecycle.
See
<a href="/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention">PersistentVolumeClaim retention</a>
for more details.</p></dd><dt id="StatefulSetStartOrdinal"><code class="feature-gate-name">StatefulSetStartOrdinal</code></dt>
      <dd><p>Allow configuration of the start ordinal in a
StatefulSet. See
<a href="/docs/concepts/workloads/controllers/statefulset/#start-ordinal">Start ordinal</a>
for more details.</p></dd><dt id="StorageCapacityScoring"><code class="feature-gate-name">StorageCapacityScoring</code></dt>
      <dd><p>The feature gate <code>VolumeCapacityPriority</code> was used in v1.32 to support storage that are
statically provisioned. Starting from v1.33, the new feature gate <code>StorageCapacityScoring</code>
replaces the old <code>VolumeCapacityPriority</code> gate with added support to dynamically provisioned storage.
When <code>StorageCapacityScoring</code> is enabled, the VolumeBinding plugin in the kube-scheduler is extended
to score Nodes based on the storage capacity on each of them.
This feature is applicable to CSI volumes that supported <a href="/docs/concepts/storage/storage-capacity/">Storage Capacity</a>,
including local storage backed by a CSI driver.</p></dd><dt id="StorageNamespaceIndex"><code class="feature-gate-name">StorageNamespaceIndex</code></dt>
      <dd><p>Enables a namespace indexer for namespace scoped resources
in API server cache to accelerate list operations.</p></dd><dt id="StorageVersionAPI"><code class="feature-gate-name">StorageVersionAPI</code></dt>
      <dd><p>Enable the
<a href="/docs/reference/generated/kubernetes-api/v1.36/#storageversion-v1alpha1-internal-apiserver-k8s-io">storage version API</a>.</p></dd><dt id="StorageVersionHash"><code class="feature-gate-name">StorageVersionHash</code></dt>
      <dd><p>Allow API servers to expose the storage version hash in the
discovery.</p></dd><dt id="StorageVersionMigrator"><code class="feature-gate-name">StorageVersionMigrator</code></dt>
      <dd><p>Enables the migration of the <a href="/docs/concepts/overview/working-with-objects/storage-version/">storage
version</a> of a
resource.</p></dd><dt id="StreamingCollectionEncodingToJSON"><code class="feature-gate-name">StreamingCollectionEncodingToJSON</code></dt>
      <dd><p>Allow the API server JSON encoder to encode collections item by item, instead of all at once.</p></dd><dt id="StreamingCollectionEncodingToProtobuf"><code class="feature-gate-name">StreamingCollectionEncodingToProtobuf</code></dt>
      <dd><p>Allow the API server Protobuf encoder to encode collections item by item, instead of all at once.</p></dd><dt id="StrictCostEnforcementForVAP"><code class="feature-gate-name">StrictCostEnforcementForVAP</code></dt>
      <dd><p>Apply strict CEL cost validation for ValidatingAdmissionPolicies.</p></dd><dt id="StrictCostEnforcementForWebhooks"><code class="feature-gate-name">StrictCostEnforcementForWebhooks</code></dt>
      <dd><p>Apply strict CEL cost validation for <code>matchConditions</code> within
admission webhooks.</p></dd><dt id="StrictIPCIDRValidation"><code class="feature-gate-name">StrictIPCIDRValidation</code></dt>
      <dd><p>Use stricter validation for fields containing IP addresses and CIDR values.</p>
<p>In particular, with this feature gate enabled, octets within IPv4 addresses are
not allowed to have any leading <code>0</code>s, and IPv4-mapped IPv6 values (e.g.
<code>::ffff:192.168.0.1</code>) are forbidden. These sorts of values can potentially cause
security problems when different components interpret the same string as
referring to different IP addresses (as in CVE-2021-29923).</p>
<p>This tightening applies only to fields in build-in API kinds, and not to
custom resource kinds, values in Kubernetes configuration files, or
command-line arguments.</p>
</dd><dt id="StructuredAuthenticationConfiguration"><code class="feature-gate-name">StructuredAuthenticationConfiguration</code></dt>
      <dd><p>Enable <a href="/docs/reference/access-authn-authz/authentication/#configuring-the-api-server">structured authentication configuration</a>
for the API server.</p></dd><dt id="StructuredAuthenticationConfigurationEgressSelector"><code class="feature-gate-name">StructuredAuthenticationConfigurationEgressSelector</code></dt>
      <dd><p>Enables Egress Selector in Structured Authentication Configuration.</p></dd><dt id="StructuredAuthenticationConfigurationJWKSMetrics"><code class="feature-gate-name">StructuredAuthenticationConfigurationJWKSMetrics</code></dt>
      <dd><p>Enables additional metrics for JSON Web Key Set (JWKS) operations in JWT authenticators
configured via <code>--authentication-config</code>. When enabled, the API server records metrics about
the last time JWKS was fetched and the hash value of the JWKS response.
See the <a href="/docs/reference/instrumentation/metrics/">metrics reference</a> for details.</p></dd><dt id="StructuredAuthorizationConfiguration"><code class="feature-gate-name">StructuredAuthorizationConfiguration</code></dt>
      <dd><p>Enable structured authorization configuration, so that cluster administrators
can specify more than one <a href="/docs/reference/access-authn-authz/webhook/">authorization webhook</a>
in the API server handler chain.</p></dd><dt id="SupplementalGroupsPolicy"><code class="feature-gate-name">SupplementalGroupsPolicy</code></dt>
      <dd><p>Enables support for fine-grained SupplementalGroups control.
For more details, see <a href="/docs/tasks/configure-pod-container/security-context/#supplementalgroupspolicy">Configure fine-grained SupplementalGroups control for a Pod</a>.</p></dd><dt id="SystemdWatchdog"><code class="feature-gate-name">SystemdWatchdog</code></dt>
      <dd><p>Allow using systemd watchdog to monitor the health status of kubelet.
See <a href="/docs/reference/node/systemd-watchdog/">Kubelet Systemd Watchdog</a>
for more details.</p></dd><dt id="TaintTolerationComparisonOperators"><code class="feature-gate-name">TaintTolerationComparisonOperators</code></dt>
      <dd><p>Enables numeric comparison operators (<code>Lt</code> and <code>Gt</code>) for
<a href="/docs/concepts/scheduling-eviction/taint-and-toleration/">tolerations</a>.</p></dd><dt id="TokenRequestServiceAccountUIDValidation"><code class="feature-gate-name">TokenRequestServiceAccountUIDValidation</code></dt>
      <dd><p>This is used to ensure that the UID provided in the TokenRequest matches
the UID of the ServiceAccount for which the token is being requested.
It helps prevent misuse of the TokenRequest API by ensuring that
tokens are only issued for the correct ServiceAccount.</p></dd><dt id="TopologyAwareHints"><code class="feature-gate-name">TopologyAwareHints</code></dt>
      <dd><p>Enables topology aware routing based on topology hints
in EndpointSlices. See <a href="/docs/concepts/services-networking/topology-aware-routing/">Topology Aware
Hints</a> for more
details.</p></dd><dt id="TopologyAwareWorkloadScheduling"><code class="feature-gate-name">TopologyAwareWorkloadScheduling</code></dt>
      <dd><p>Enable topology-aware scheduling for Workloads.</p></dd><dt id="TopologyManagerPolicyAlphaOptions"><code class="feature-gate-name">TopologyManagerPolicyAlphaOptions</code></dt>
      <dd><p>Allow fine-tuning of topology manager policies,
experimental, Alpha-quality options.
This feature gate guards <em>a group</em> of topology manager options whose quality level is alpha.
This feature gate will never graduate to beta or stable.</p></dd><dt id="TopologyManagerPolicyBetaOptions"><code class="feature-gate-name">TopologyManagerPolicyBetaOptions</code></dt>
      <dd><p>Allow fine-tuning of topology manager policies,
experimental, Beta-quality options.
This feature gate guards <em>a group</em> of topology manager options whose quality level is beta.
This feature gate will never graduate to stable.</p></dd><dt id="TopologyManagerPolicyOptions"><code class="feature-gate-name">TopologyManagerPolicyOptions</code></dt>
      <dd><p>Enable <a href="/docs/tasks/administer-cluster/topology-manager/#topology-manager-policy-options">fine-tuning</a>
of topology manager policies.</p></dd><dt id="TranslateStreamCloseWebsocketRequests"><code class="feature-gate-name">TranslateStreamCloseWebsocketRequests</code></dt>
      <dd><p>Allow WebSocket streaming of the
remote command sub-protocol (<code>exec</code>, <code>cp</code>, <code>attach</code>) from clients requesting
version 5 (v5) of the sub-protocol.</p></dd><dt id="UnauthenticatedHTTP2DOSMitigation"><code class="feature-gate-name">UnauthenticatedHTTP2DOSMitigation</code></dt>
      <dd><p>Enables HTTP/2 Denial of Service (DoS) mitigations for unauthenticated clients.
Kubernetes v1.28.0 through v1.28.2 do not include this feature gate.</p></dd><dt id="UnknownVersionInteroperabilityProxy"><code class="feature-gate-name">UnknownVersionInteroperabilityProxy</code></dt>
      <dd><p>Proxy resource requests to the correct peer kube-apiserver when
multiple kube-apiservers exist at varied versions.
See <a href="/docs/concepts/architecture/mixed-version-proxy/">Mixed version proxy</a> for more information.</p></dd><dt id="UnlockWhileProcessingFIFO"><code class="feature-gate-name">UnlockWhileProcessingFIFO</code></dt>
      <dd><p>Enable use of a FIFO queue within client-go that unlocks while processing events. If not enabled,
the queue instead holds the lock for the entire duration of processing events, which could lead
to performance issues in high-throughput scenarios. This feature gate can be toggled in the
kube-controller-manager and any client-go based controller.</p>
<p>You can only enable this feature gate if the
<a href="/docs/reference/command-line-tools-reference/feature-gates/#AtomicFIFO">AtomicFIFO</a> feature gate is also enabled.</p>
</dd><dt id="UserNamespacesHostNetworkSupport"><code class="feature-gate-name">UserNamespacesHostNetworkSupport</code></dt>
      <dd><p>When enabled, pods are allowed to use both <code>hostNetwork</code> and <a href="/docs/concepts/workloads/pods/user-namespaces/">User Namespaces</a> simultaneously.</p></dd><dt id="UserNamespacesSupport"><code class="feature-gate-name">UserNamespacesSupport</code></dt>
      <dd><p>Enable user namespace support for Pods.</p></dd><dt id="VolumeAttributesClass"><code class="feature-gate-name">VolumeAttributesClass</code></dt>
      <dd><p>Enable support for VolumeAttributesClasses.
See <a href="/docs/concepts/storage/volume-attributes-classes/">Volume Attributes Classes</a>
for more information.</p></dd><dt id="VolumeLimitScaling"><code class="feature-gate-name">VolumeLimitScaling</code></dt>
      <dd><p>Enables volume limit scaling for CSI drivers. This allows scheduler to
co-ordinate better with cluster-autoscaler for storage limits.
See <a href="/docs/concepts/storage/storage-limits/">Storage Limits</a>
for more information.</p></dd><dt id="WatchCacheInitializationPostStartHook"><code class="feature-gate-name">WatchCacheInitializationPostStartHook</code></dt>
      <dd><p>Enables post-start-hook for watchcache initialization to be part of readyz (with timeout).</p></dd><dt id="WatchFromStorageWithoutResourceVersion"><code class="feature-gate-name">WatchFromStorageWithoutResourceVersion</code></dt>
      <dd><p>Enables watches without <code>resourceVersion</code> to be served from storage.</p></dd><dt id="WatchList"><code class="feature-gate-name">WatchList</code></dt>
      <dd><p>Enable support for <a href="/docs/reference/using-api/api-concepts/#streaming-lists">streaming initial state of objects in watch requests</a>.</p></dd><dt id="WatchListClient"><code class="feature-gate-name">WatchListClient</code></dt>
      <dd><p>Allows an API client to request a stream of data rather than fetching a full list.
This functionality is available in <code>client-go</code> and requires the
<a href="/docs/reference/command-line-tools-reference/feature-gates/">WatchList</a>
feature to be enabled on the server.
If the <code>WatchList</code> is not supported on the server, the client will seamlessly fall back to a standard list request.</p></dd><dt id="WindowsCPUAndMemoryAffinity"><code class="feature-gate-name">WindowsCPUAndMemoryAffinity</code></dt>
      <dd><p>Add CPU and Memory Affinity support to Windows nodes with <a href="/docs/tasks/administer-cluster/cpu-management-policies/#windows-support">CPUManager</a>,
<a href="/docs/tasks/administer-cluster/memory-manager/#windows-support">MemoryManager</a>
and topology manager.</p></dd><dt id="WindowsGracefulNodeShutdown"><code class="feature-gate-name">WindowsGracefulNodeShutdown</code></dt>
      <dd><p>Enables support for windows node graceful shutdown in kubelet.
During a system shutdown, kubelet will attempt to detect the shutdown event
and gracefully terminate pods running on the node. See
<a href="/docs/concepts/architecture/nodes/#graceful-node-shutdown">Graceful Node Shutdown</a>
for more details.</p></dd><dt id="WindowsHostNetwork"><code class="feature-gate-name">WindowsHostNetwork</code></dt>
      <dd><p>Enables support for joining Windows containers to a hosts' network namespace.</p></dd><dt id="WinDSR"><code class="feature-gate-name">WinDSR</code></dt>
      <dd><p>Allows kube-proxy to create DSR loadbalancers for Windows.</p></dd><dt id="WinOverlay"><code class="feature-gate-name">WinOverlay</code></dt>
      <dd><p>Allows kube-proxy to run in overlay mode for Windows.</p></dd><dt id="WorkloadAwarePreemption"><code class="feature-gate-name">WorkloadAwarePreemption</code></dt>
      <dd><p>Enables the support for <a href="/docs/concepts/scheduling-eviction/workload-aware-preemption/">Workload-aware preemption</a>.</p>
<p>When enabled, if a PodGroup fails to schedule, the scheduler will use a workload-aware preemption
algorithm to select victims to preempt instead of the default pod preemption algorithm.</p>
</dd><dt id="WorkloadWithJob"><code class="feature-gate-name">WorkloadWithJob</code></dt>
      <dd><p>Enables the Job controller to automatically create <a href="/docs/concepts/workloads/workload-api/">Workload</a> and <a href="/docs/reference/kubernetes-api/workload-resources/workload-v1alpha1/">PodGroup</a> objects
for <a href="/docs/concepts/workloads/controllers/job/#qualifying-criteria">qualifying Jobs</a>. See <a href="/docs/concepts/workloads/controllers/job/#integrate-with-workload-apis">Integrate with Workload APIs</a>
for details.</p></dd></dl>


## What's next

* The [deprecation policy](/docs/reference/using-api/deprecation-policy/) for Kubernetes explains
  the project's approach to removing features and components.
* Since Kubernetes 1.24, new beta APIs are not enabled by default.  When enabling a beta
  feature, you will also need to enable any associated API resources.
  For example, to enable a particular resource like
  `storage.k8s.io/v1beta1/csistoragecapacities`, set `--runtime-config=storage.k8s.io/v1beta1/csistoragecapacities`.
  See [API Versioning](/docs/reference/using-api/#api-versioning) for more details on the command line flags.
* See [Configure Feature Gates](/docs/tasks/administer-cluster/configure-feature-gates/)
  for step-by-step guidance on enabling feature gates.
