2019-05-31 09:45:11 +00:00
/ *
Copyright 2017 The Kubernetes Authors .
Licensed under the Apache License , Version 2.0 ( the "License" ) ;
you may not use this file except in compliance with the License .
You may obtain a copy of the License at
http : //www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing , software
distributed under the License is distributed on an "AS IS" BASIS ,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
See the License for the specific language governing permissions and
limitations under the License .
* /
package features
import (
2019-06-24 09:08:09 +00:00
"k8s.io/apimachinery/pkg/util/runtime"
2019-05-31 09:45:11 +00:00
genericfeatures "k8s.io/apiserver/pkg/features"
utilfeature "k8s.io/apiserver/pkg/util/feature"
2019-06-24 09:08:09 +00:00
"k8s.io/component-base/featuregate"
2019-05-31 09:45:11 +00:00
)
const (
// Every feature gate should add method here following this template:
//
// // owner: @username
2021-08-09 07:19:24 +00:00
// // kep: http://kep.k8s.io/NNN
2019-05-31 09:45:11 +00:00
// // alpha: v1.X
2019-06-24 09:08:09 +00:00
// MyFeature featuregate.Feature = "MyFeature"
2019-05-31 09:45:11 +00:00
// owner: @tallclair
// beta: v1.4
2019-06-24 09:08:09 +00:00
AppArmor featuregate . Feature = "AppArmor"
2019-05-31 09:45:11 +00:00
// owner: @mtaufen
// alpha: v1.4
// beta: v1.11
2021-08-09 07:19:24 +00:00
// deprecated: 1.22
2019-06-24 09:08:09 +00:00
DynamicKubeletConfig featuregate . Feature = "DynamicKubeletConfig"
2019-05-31 09:45:11 +00:00
// owner: @pweil-
// alpha: v1.5
//
// Default userns=host for containers that are using other host namespaces, host mounts, the pod
// contains a privileged container, or specific non-namespaced capabilities (MKNOD, SYS_MODULE,
// SYS_TIME). This should only be enabled if user namespace remapping is enabled in the docker daemon.
2019-06-24 09:08:09 +00:00
ExperimentalHostUserNamespaceDefaultingGate featuregate . Feature = "ExperimentalHostUserNamespaceDefaulting"
2019-05-31 09:45:11 +00:00
// owner: @jiayingz
// beta: v1.10
//
// Enables support for Device Plugins
2019-06-24 09:08:09 +00:00
DevicePlugins featuregate . Feature = "DevicePlugins"
2019-05-31 09:45:11 +00:00
2020-01-14 10:38:55 +00:00
// owner: @dxist
// alpha: v1.16
//
// Enables support of HPA scaling to zero pods when an object or custom metric is configured.
HPAScaleToZero featuregate . Feature = "HPAScaleToZero"
2019-05-31 09:45:11 +00:00
// owner: @mikedanese
// alpha: v1.7
// beta: v1.12
//
// Gets a server certificate for the kubelet from the Certificate Signing
// Request API instead of generating one self signed and auto rotates the
// certificate as expiration approaches.
2019-06-24 09:08:09 +00:00
RotateKubeletServerCertificate featuregate . Feature = "RotateKubeletServerCertificate"
2019-05-31 09:45:11 +00:00
// owner: @jinxu
// beta: v1.10
//
// New local storage types to support local storage capacity isolation
2019-06-24 09:08:09 +00:00
LocalStorageCapacityIsolation featuregate . Feature = "LocalStorageCapacityIsolation"
2019-05-31 09:45:11 +00:00
// owner: @gnufied
// beta: v1.11
2022-05-05 02:47:06 +00:00
// GA: 1.24
2019-05-31 09:45:11 +00:00
// Ability to Expand persistent volumes
2019-06-24 09:08:09 +00:00
ExpandPersistentVolumes featuregate . Feature = "ExpandPersistentVolumes"
2019-05-31 09:45:11 +00:00
2022-05-05 02:47:06 +00:00
// owner: @mlmhl @gnufied
2019-06-24 09:08:09 +00:00
// beta: v1.15
2022-05-05 02:47:06 +00:00
// GA: 1.24
2019-05-31 09:45:11 +00:00
// Ability to expand persistent volumes' file system without unmounting volumes.
2019-06-24 09:08:09 +00:00
ExpandInUsePersistentVolumes featuregate . Feature = "ExpandInUsePersistentVolumes"
2019-05-31 09:45:11 +00:00
// owner: @gnufied
// alpha: v1.14
2020-01-14 10:38:55 +00:00
// beta: v1.16
2022-05-05 02:47:06 +00:00
// GA: 1.24
2019-05-31 09:45:11 +00:00
// Ability to expand CSI volumes
2019-06-24 09:08:09 +00:00
ExpandCSIVolumes featuregate . Feature = "ExpandCSIVolumes"
2019-05-31 09:45:11 +00:00
// owner: @verb
2020-01-14 10:38:55 +00:00
// alpha: v1.16
2021-12-08 13:50:47 +00:00
// beta: v1.23
2019-05-31 09:45:11 +00:00
//
2020-01-14 10:38:55 +00:00
// Allows running an ephemeral container in pod namespaces to troubleshoot a running pod.
EphemeralContainers featuregate . Feature = "EphemeralContainers"
2019-05-31 09:45:11 +00:00
// owner: @sjenning
// alpha: v1.11
//
// 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)
2019-06-24 09:08:09 +00:00
QOSReserved featuregate . Feature = "QOSReserved"
2019-05-31 09:45:11 +00:00
// owner: @ConnorDoyle
// alpha: v1.8
// beta: v1.10
//
// Alternative container-level CPU affinity policies.
2019-06-24 09:08:09 +00:00
CPUManager featuregate . Feature = "CPUManager"
2019-05-31 09:45:11 +00:00
// owner: @szuecs
// alpha: v1.12
//
// Enable nodes to change CPUCFSQuotaPeriod
2019-06-24 09:08:09 +00:00
CPUCFSQuotaPeriod featuregate . Feature = "CustomCPUCFSQuotaPeriod"
2019-05-31 09:45:11 +00:00
2020-01-14 10:38:55 +00:00
// owner: @lmdaly
// alpha: v1.16
2020-04-14 07:04:33 +00:00
// beta: v1.18
2019-05-31 09:45:11 +00:00
//
2020-01-14 10:38:55 +00:00
// Enable resource managers to make NUMA aligned decisions
TopologyManager featuregate . Feature = "TopologyManager"
2019-05-31 09:45:11 +00:00
2021-06-25 04:59:51 +00:00
// owner: @cynepco3hahue(alukiano) @cezaryzukowski @k-wiatrzyk
2021-08-09 07:19:24 +00:00
// alpha: v1.21
// beta: v1.22
2021-06-25 04:59:51 +00:00
// Allows setting memory affinity for a container based on NUMA topology
MemoryManager featuregate . Feature = "MemoryManager"
2019-05-31 09:45:11 +00:00
// owner: @pospispa
// GA: v1.11
//
// Postpone deletion of a PV or a PVC when they are being used
2019-06-24 09:08:09 +00:00
StorageObjectInUseProtection featuregate . Feature = "StorageObjectInUseProtection"
2019-05-31 09:45:11 +00:00
// owner: @saad-ali
2021-06-25 04:59:51 +00:00
// ga: v1.10
2019-05-31 09:45:11 +00:00
//
// Allow mounting a subpath of a volume in a container
2021-12-08 13:50:47 +00:00
// NOTE: This feature gate has been deprecated and is no longer enforced.
// It will be completely removed in 1.25. Until then, it's still visible in `kubelet --help`
2019-06-24 09:08:09 +00:00
VolumeSubpath featuregate . Feature = "VolumeSubpath"
2019-05-31 09:45:11 +00:00
2020-12-17 12:28:29 +00:00
// owner: @pohly
2019-05-31 09:45:11 +00:00
// alpha: v1.14
2020-01-14 10:38:55 +00:00
// beta: v1.16
2019-05-31 09:45:11 +00:00
//
// Enables CSI Inline volumes support for pods
2019-06-24 09:08:09 +00:00
CSIInlineVolume featuregate . Feature = "CSIInlineVolume"
2019-05-31 09:45:11 +00:00
2020-12-17 12:28:29 +00:00
// owner: @pohly
// alpha: v1.19
2021-06-25 04:59:51 +00:00
// beta: v1.21
2022-05-05 02:47:06 +00:00
// GA: v1.24
2020-12-17 12:28:29 +00:00
//
// Enables tracking of available storage capacity that CSI drivers provide.
CSIStorageCapacity featuregate . Feature = "CSIStorageCapacity"
// owner: @alculquicondor
2022-05-05 02:47:06 +00:00
// alpha: v1.19
2020-12-17 12:28:29 +00:00
// beta: v1.20
2022-05-05 02:47:06 +00:00
// GA: v1.24
2020-12-17 12:28:29 +00:00
//
// Enables the use of PodTopologySpread scheduling plugin to do default
// spreading and disables legacy SelectorSpread plugin.
DefaultPodTopologySpread featuregate . Feature = "DefaultPodTopologySpread"
// owner: @pohly
// alpha: v1.19
2021-06-25 04:59:51 +00:00
// beta: v1.21
2021-12-08 13:50:47 +00:00
// GA: v1.23
2020-12-17 12:28:29 +00:00
//
// Enables generic ephemeral inline volume support for pods
GenericEphemeralVolume featuregate . Feature = "GenericEphemeralVolume"
2021-06-25 04:59:51 +00:00
// owner: @chendave
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2022-05-05 02:47:06 +00:00
// GA: v1.24
2021-06-25 04:59:51 +00:00
//
// PreferNominatedNode tells scheduler whether the nominated node will be checked first before looping
// all the rest of nodes in the cluster.
// Enabling this feature also implies the preemptor pod might not be dispatched to the best candidate in
// some corner case, e.g. another node releases enough resources after the nominated node has been set
// and hence is the best candidate instead.
PreferNominatedNode featuregate . Feature = "PreferNominatedNode"
// owner: @rikatz
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/2079
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2021-06-25 04:59:51 +00:00
//
// Enables the endPort field in NetworkPolicy to enable a Port Range behavior in Network Policies.
NetworkPolicyEndPort featuregate . Feature = "NetworkPolicyEndPort"
2019-05-31 09:45:11 +00:00
// owner: @jessfraz
// alpha: v1.12
//
// Enables control over ProcMountType for containers.
2019-06-24 09:08:09 +00:00
ProcMountType featuregate . Feature = "ProcMountType"
2019-05-31 09:45:11 +00:00
// owner: @janetkuo
// alpha: v1.12
2021-12-08 13:50:47 +00:00
// beta: v1.21
2019-05-31 09:45:11 +00:00
//
// Allow TTL controller to clean up Pods and Jobs after they finish.
2019-06-24 09:08:09 +00:00
TTLAfterFinished featuregate . Feature = "TTLAfterFinished"
2019-05-31 09:45:11 +00:00
2021-06-25 04:59:51 +00:00
// owner: @alculquicondor
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2022-05-05 02:47:06 +00:00
// stable: v1.24
2021-06-25 04:59:51 +00:00
//
// Allows Job controller to manage Pod completions per completion index.
IndexedJob featuregate . Feature = "IndexedJob"
2021-08-09 07:19:24 +00:00
// owner: @alculquicondor
// alpha: v1.22
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-08-09 07:19:24 +00:00
//
// Track Job completion without relying on Pod remaining in the cluster
// indefinitely. Pod finalizers, in addition to a field in the Job status
// allow the Job controller to keep track of Pods that it didn't account for
// yet.
JobTrackingWithFinalizers featuregate . Feature = "JobTrackingWithFinalizers"
2021-12-08 13:50:47 +00:00
// owner: @alculquicondor
// alpha: v1.23
2022-05-05 02:47:06 +00:00
// beta: v1.24
2021-12-08 13:50:47 +00:00
//
// Track the number of pods with Ready condition in the Job status.
JobReadyPods featuregate . Feature = "JobReadyPods"
2019-05-31 09:45:11 +00:00
// owner: @dashpole
// alpha: v1.13
2019-06-24 09:08:09 +00:00
// beta: v1.15
2019-05-31 09:45:11 +00:00
//
// Enables the kubelet's pod resources grpc endpoint
2019-06-24 09:08:09 +00:00
KubeletPodResources featuregate . Feature = "KubeletPodResources"
2019-05-31 09:45:11 +00:00
// owner: @davidz627
// alpha: v1.14
2020-01-14 10:38:55 +00:00
// beta: v1.17
2019-05-31 09:45:11 +00:00
//
// Enables the in-tree storage to CSI Plugin migration feature.
2019-06-24 09:08:09 +00:00
CSIMigration featuregate . Feature = "CSIMigration"
2019-05-31 09:45:11 +00:00
// owner: @davidz627
// alpha: v1.14
2020-01-14 10:38:55 +00:00
// beta: v1.17
2019-05-31 09:45:11 +00:00
//
// Enables the GCE PD in-tree driver to GCE CSI Driver migration feature.
2019-06-24 09:08:09 +00:00
CSIMigrationGCE featuregate . Feature = "CSIMigrationGCE"
2019-05-31 09:45:11 +00:00
2021-06-25 04:59:51 +00:00
// owner: @Jiawei0227
// alpha: v1.21
2020-01-14 10:38:55 +00:00
//
// Disables the GCE PD in-tree driver.
2021-06-25 04:59:51 +00:00
InTreePluginGCEUnregister featuregate . Feature = "InTreePluginGCEUnregister"
2020-01-14 10:38:55 +00:00
2019-05-31 09:45:11 +00:00
// owner: @leakingtapan
// alpha: v1.14
2020-01-14 10:38:55 +00:00
// beta: v1.17
2019-05-31 09:45:11 +00:00
//
// Enables the AWS EBS in-tree driver to AWS EBS CSI Driver migration feature.
2019-06-24 09:08:09 +00:00
CSIMigrationAWS featuregate . Feature = "CSIMigrationAWS"
2020-01-14 10:38:55 +00:00
// owner: @leakingtapan
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2020-01-14 10:38:55 +00:00
//
// Disables the AWS EBS in-tree driver.
2021-06-25 04:59:51 +00:00
InTreePluginAWSUnregister featuregate . Feature = "InTreePluginAWSUnregister"
2020-01-14 10:38:55 +00:00
2019-06-24 09:08:09 +00:00
// owner: @andyzhangx
// alpha: v1.15
2020-12-17 12:28:29 +00:00
// beta: v1.19
2022-05-05 02:47:06 +00:00
// GA: v1.24
2019-06-24 09:08:09 +00:00
//
// Enables the Azure Disk in-tree driver to Azure Disk Driver migration feature.
CSIMigrationAzureDisk featuregate . Feature = "CSIMigrationAzureDisk"
2020-01-14 10:38:55 +00:00
// owner: @andyzhangx
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2020-01-14 10:38:55 +00:00
//
// Disables the Azure Disk in-tree driver.
2021-06-25 04:59:51 +00:00
InTreePluginAzureDiskUnregister featuregate . Feature = "InTreePluginAzureDiskUnregister"
2020-01-14 10:38:55 +00:00
2019-06-24 09:08:09 +00:00
// owner: @andyzhangx
// alpha: v1.15
2021-06-25 04:59:51 +00:00
// beta: v1.21
2019-06-24 09:08:09 +00:00
//
// Enables the Azure File in-tree driver to Azure File Driver migration feature.
CSIMigrationAzureFile featuregate . Feature = "CSIMigrationAzureFile"
2019-05-31 09:45:11 +00:00
2020-01-14 10:38:55 +00:00
// owner: @andyzhangx
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2020-01-14 10:38:55 +00:00
//
// Disables the Azure File in-tree driver.
2021-06-25 04:59:51 +00:00
InTreePluginAzureFileUnregister featuregate . Feature = "InTreePluginAzureFileUnregister"
2020-01-14 10:38:55 +00:00
2020-12-17 12:28:29 +00:00
// owner: @divyenpatel
2022-05-05 02:47:06 +00:00
// beta: v1.19 (requires: vSphere vCenter/ESXi Version: 7.0u2, HW Version: VM version 15)
2020-12-17 12:28:29 +00:00
//
// Enables the vSphere in-tree driver to vSphere CSI Driver migration feature.
CSIMigrationvSphere featuregate . Feature = "CSIMigrationvSphere"
2021-06-25 04:59:51 +00:00
// owner: @divyenpatel
// alpha: v1.21
//
// Disables the vSphere in-tree driver.
InTreePluginvSphereUnregister featuregate . Feature = "InTreePluginvSphereUnregister"
// owner: @adisky
// alpha: v1.14
// beta: v1.18
//
// Enables the OpenStack Cinder in-tree driver to OpenStack Cinder CSI Driver migration feature.
CSIMigrationOpenStack featuregate . Feature = "CSIMigrationOpenStack"
// owner: @adisky
// alpha: v1.21
//
// Disables the OpenStack Cinder in-tree driver.
InTreePluginOpenStackUnregister featuregate . Feature = "InTreePluginOpenStackUnregister"
2021-12-08 13:50:47 +00:00
// owner: @trierra
// alpha: v1.23
//
// Enables the Portworx in-tree driver to Portworx migration feature.
CSIMigrationPortworx featuregate . Feature = "CSIMigrationPortworx"
// owner: @trierra
// alpha: v1.23
//
// Disables the Portworx in-tree driver.
InTreePluginPortworxUnregister featuregate . Feature = "InTreePluginPortworxUnregister"
// owner: @humblec
// alpha: v1.23
//
// Enables the RBD in-tree driver to RBD CSI Driver migration feature.
2022-05-05 02:47:06 +00:00
CSIMigrationRBD featuregate . Feature = "CSIMigrationRBD"
2021-12-08 13:50:47 +00:00
// owner: @humblec
// alpha: v1.23
//
// Disables the RBD in-tree driver.
InTreePluginRBDUnregister featuregate . Feature = "InTreePluginRBDUnregister"
// owner: @huffmanca, @dobsonj
2020-12-17 12:28:29 +00:00
// alpha: v1.19
// beta: v1.20
2021-12-08 13:50:47 +00:00
// GA: v1.23
2020-12-17 12:28:29 +00:00
//
// Determines if a CSI Driver supports applying fsGroup.
CSIVolumeFSGroupPolicy featuregate . Feature = "CSIVolumeFSGroupPolicy"
2020-04-14 07:04:33 +00:00
// owner: @gnufied
// alpha: v1.18
2020-12-17 12:28:29 +00:00
// beta: v1.20
2021-12-08 13:50:47 +00:00
// GA: v1.23
2020-04-14 07:04:33 +00:00
// Allows user to configure volume permission change policy for fsGroups when mounting
// a volume in a Pod.
ConfigurableFSGroupPolicy featuregate . Feature = "ConfigurableFSGroupPolicy"
2021-08-09 07:19:24 +00:00
// owner: @gnufied, @verult
// alpha: v1.22
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-08-09 07:19:24 +00:00
// If supported by the CSI driver, delegates the role of applying FSGroup to
// the driver by passing FSGroup through the NodeStageVolume and
// NodePublishVolume calls.
DelegateFSGroupToCSIDriver featuregate . Feature = "DelegateFSGroupToCSIDriver"
2019-06-24 09:08:09 +00:00
// owner: @RobertKrawitz
// alpha: v1.15
//
// Allow use of filesystems for ephemeral storage monitoring.
// Only applies if LocalStorageCapacityIsolation is set.
LocalStorageCapacityIsolationFSQuotaMonitoring featuregate . Feature = "LocalStorageCapacityIsolationFSQuotaMonitoring"
// owner: @denkensk
// alpha: v1.15
2020-12-17 12:28:29 +00:00
// beta: v1.19
2022-05-05 02:47:06 +00:00
// ga: v1.24
2019-06-24 09:08:09 +00:00
//
// Enables NonPreempting option for priorityClass and pod.
NonPreemptingPriority featuregate . Feature = "NonPreemptingPriority"
2020-01-14 10:38:55 +00:00
// owner: @egernst
// alpha: v1.16
2020-04-14 07:04:33 +00:00
// beta: v1.18
2022-05-05 02:47:06 +00:00
// ga: v1.24
2020-01-14 10:38:55 +00:00
//
// Enables PodOverhead, for accounting pod overheads which are specific to a given RuntimeClass
PodOverhead featuregate . Feature = "PodOverhead"
// owner: @khenidak
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/563
2020-01-14 10:38:55 +00:00
// alpha: v1.15
2021-06-25 04:59:51 +00:00
// beta: v1.21
2022-05-05 02:47:06 +00:00
// ga: v1.23
2020-01-14 10:38:55 +00:00
//
// Enables ipv6 dual stack
IPv6DualStack featuregate . Feature = "IPv6DualStack"
// owner: @robscott @freehan
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/752
2020-01-14 10:38:55 +00:00
// alpha: v1.16
2021-06-25 04:59:51 +00:00
// beta: v1.18
// ga: v1.21
2020-01-14 10:38:55 +00:00
//
// Enable Endpoint Slices for more scalable Service endpoints.
EndpointSlice featuregate . Feature = "EndpointSlice"
2020-04-14 07:04:33 +00:00
// owner: @robscott @freehan
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/752
2020-04-14 07:04:33 +00:00
// alpha: v1.18
2020-12-17 12:28:29 +00:00
// beta: v1.19
2021-08-09 07:19:24 +00:00
// ga: v1.22
2020-04-14 07:04:33 +00:00
//
// Enable Endpoint Slice consumption by kube-proxy for improved scalability.
EndpointSliceProxying featuregate . Feature = "EndpointSliceProxying"
2020-12-17 12:28:29 +00:00
// owner: @robscott @kumarvin123
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/752
2020-12-17 12:28:29 +00:00
// alpha: v1.19
2021-06-25 04:59:51 +00:00
// beta: v1.21
2021-08-09 07:19:24 +00:00
// ga: v1.22
2020-12-17 12:28:29 +00:00
//
// Enable Endpoint Slice consumption by kube-proxy in Windows for improved scalability.
WindowsEndpointSliceProxying featuregate . Feature = "WindowsEndpointSliceProxying"
2020-01-14 10:38:55 +00:00
// owner: @mortent
// alpha: v1.3
// beta: v1.5
//
// Enable all logic related to the PodDisruptionBudget API object in policy
PodDisruptionBudget featuregate . Feature = "PodDisruptionBudget"
2021-06-25 04:59:51 +00:00
// owner: @smarterclayton
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2021-06-25 04:59:51 +00:00
// DaemonSets allow workloads to maintain availability during update per node
DaemonSetUpdateSurge featuregate . Feature = "DaemonSetUpdateSurge"
2020-12-17 12:28:29 +00:00
// owner: @derekwaynecarr
// alpha: v1.20
2021-06-25 04:59:51 +00:00
// beta: v1.21 (off by default until 1.22)
2020-12-17 12:28:29 +00:00
//
// Enables usage of hugepages-<size> in downward API.
DownwardAPIHugePages featuregate . Feature = "DownwardAPIHugePages"
2020-04-14 07:04:33 +00:00
// owner: @bswartz
// alpha: v1.18
2022-05-05 02:47:06 +00:00
// beta: v1.24
2020-04-14 07:04:33 +00:00
//
// Enables usage of any object for volume data source in PVCs
AnyVolumeDataSource featuregate . Feature = "AnyVolumeDataSource"
2020-12-17 12:28:29 +00:00
// owner: @ksubrmnn
// alpha: v1.14
// beta: v1.20
//
// Allows kube-proxy to run in Overlay mode for Windows
WinOverlay featuregate . Feature = "WinOverlay"
// owner: @ksubrmnn
// alpha: v1.14
//
// Allows kube-proxy to create DSR loadbalancers for Windows
WinDSR featuregate . Feature = "WinDSR"
// owner: @RenaudWasTaken @dashpole
// alpha: v1.19
// beta: v1.20
//
// Disables Accelerator Metrics Collected by Kubelet
DisableAcceleratorUsageMetrics featuregate . Feature = "DisableAcceleratorUsageMetrics"
// owner: @arjunrn @mwielgus @josephburnett
// alpha: v1.20
//
// Add support for the HPA to scale based on metrics from individual containers
// in target pods
HPAContainerMetrics featuregate . Feature = "HPAContainerMetrics"
// owner: @andrewsykim
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/1672
2020-12-17 12:28:29 +00:00
// alpha: v1.20
2021-08-09 07:19:24 +00:00
// beta: v1.22
2020-12-17 12:28:29 +00:00
//
// Enable Terminating condition in Endpoint Slices.
EndpointSliceTerminatingCondition featuregate . Feature = "EndpointSliceTerminatingCondition"
2021-08-09 07:19:24 +00:00
// owner: @andrewsykim
// kep: http://kep.k8s.io/1669
// alpha: v1.22
//
// Enable kube-proxy to handle terminating ednpoints when externalTrafficPolicy=Local
ProxyTerminatingEndpoints featuregate . Feature = "ProxyTerminatingEndpoints"
2020-12-17 12:28:29 +00:00
// owner: @robscott
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/752
2020-12-17 12:28:29 +00:00
// alpha: v1.20
//
// Enable NodeName field on Endpoint Slices.
EndpointSliceNodeName featuregate . Feature = "EndpointSliceNodeName"
// owner: @derekwaynecarr
// alpha: v1.20
2021-08-09 07:19:24 +00:00
// beta: v1.22
2020-12-17 12:28:29 +00:00
//
// Enables kubelet support to size memory backed volumes
SizeMemoryBackedVolumes featuregate . Feature = "SizeMemoryBackedVolumes"
// owner: @andrewsykim @SergeyKanzhelev
// GA: v1.20
//
// Ensure kubelet respects exec probe timeouts. Feature gate exists in-case existing workloads
// may depend on old behavior where exec probe timeouts were ignored.
2021-06-25 04:59:51 +00:00
// Lock to default and remove after v1.22 based on user feedback that should be reflected in KEP #1972 update
2020-12-17 12:28:29 +00:00
ExecProbeTimeout featuregate . Feature = "ExecProbeTimeout"
2022-05-05 02:47:06 +00:00
// owner: @andrewsykim @adisky
2020-12-17 12:28:29 +00:00
// alpha: v1.20
2022-05-05 02:47:06 +00:00
// beta: v1.24
2020-12-17 12:28:29 +00:00
//
// Enable kubelet exec plugins for image pull credentials.
KubeletCredentialProviders featuregate . Feature = "KubeletCredentialProviders"
2021-08-09 07:19:24 +00:00
// owner: @andrewsykim
// alpha: v1.22
//
// Disable any functionality in kube-apiserver, kube-controller-manager and kubelet related to the `--cloud-provider` component flag.
DisableCloudProviders featuregate . Feature = "DisableCloudProviders"
2021-12-08 13:50:47 +00:00
// owner: @andrewsykim
// alpha: v1.23
//
// Disable in-tree functionality in kubelet to authenticate to cloud provider container registries for image pull credentials.
DisableKubeletCloudCredentialProviders featuregate . Feature = "DisableKubeletCloudCredentialProviders"
2020-12-17 12:28:29 +00:00
// owner: @zshihang
// alpha: v1.20
2021-06-25 04:59:51 +00:00
// beta: v1.21
2021-08-09 07:19:24 +00:00
// ga: v1.22
2020-12-17 12:28:29 +00:00
//
// Enable kubelet to pass pod's service account token to NodePublishVolume
// call of CSI driver which is mounting volumes for that pod.
CSIServiceAccountToken featuregate . Feature = "CSIServiceAccountToken"
// owner: @bobbypage
// alpha: v1.20
2021-06-25 04:59:51 +00:00
// beta: v1.21
2020-12-17 12:28:29 +00:00
// Adds support for kubelet to detect node shutdown and gracefully terminate pods prior to the node being shutdown.
GracefulNodeShutdown featuregate . Feature = "GracefulNodeShutdown"
2021-12-08 13:50:47 +00:00
// owner: @wzshiming
// alpha: v1.23
2022-05-05 02:47:06 +00:00
// beta: v1.24
2021-12-08 13:50:47 +00:00
// Make the kubelet use shutdown configuration based on pod priority values for graceful shutdown.
GracefulNodeShutdownBasedOnPodPriority featuregate . Feature = "GracefulNodeShutdownBasedOnPodPriority"
2020-12-17 12:28:29 +00:00
// owner: @andrewsykim @uablrek
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/1864
2020-12-17 12:28:29 +00:00
// alpha: v1.20
2021-08-09 07:19:24 +00:00
// beta: v1.22
2022-05-05 02:47:06 +00:00
// ga: v1.24
2020-12-17 12:28:29 +00:00
//
// Allows control if NodePorts shall be created for services with "type: LoadBalancer" by defining the spec.AllocateLoadBalancerNodePorts field (bool)
ServiceLBNodePortControl featuregate . Feature = "ServiceLBNodePortControl"
2022-05-05 02:47:06 +00:00
// owner: @janosi @bridgetkromhout
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/1435
2020-12-17 12:28:29 +00:00
// alpha: v1.20
2022-05-05 02:47:06 +00:00
// beta: v1.24
2020-12-17 12:28:29 +00:00
//
// Enables the usage of different protocols in the same Service with type=LoadBalancer
MixedProtocolLBService featuregate . Feature = "MixedProtocolLBService"
2021-06-25 04:59:51 +00:00
// owner: @cofyc
// alpha: v1.21
VolumeCapacityPriority featuregate . Feature = "VolumeCapacityPriority"
2021-12-08 13:50:47 +00:00
// owner: @mattcary
// alpha: v1.22
//
// Enables policies controlling deletion of PVCs created by a StatefulSet.
StatefulSetAutoDeletePVC featuregate . Feature = "StatefulSetAutoDeletePVC"
2021-06-25 04:59:51 +00:00
// owner: @ahg-g
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2021-06-25 04:59:51 +00:00
//
// Enables controlling pod ranking on replicaset scale-down.
PodDeletionCost featuregate . Feature = "PodDeletionCost"
// owner: @robscott
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/2433
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-06-25 04:59:51 +00:00
//
// Enables topology aware hints for EndpointSlices
TopologyAwareHints featuregate . Feature = "TopologyAwareHints"
// owner: @ehashman
// alpha: v1.21
//
// Allows user to override pod-level terminationGracePeriod for probes
ProbeTerminationGracePeriod featuregate . Feature = "ProbeTerminationGracePeriod"
2021-08-09 07:19:24 +00:00
// owner: @ehashman
// alpha: v1.22
//
// Permits kubelet to run with swap enabled
NodeSwap featuregate . Feature = "NodeSwap"
2021-06-25 04:59:51 +00:00
// owner: @ahg-g
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2022-05-05 02:47:06 +00:00
// GA: v1.24
2021-06-25 04:59:51 +00:00
//
// Allow specifying NamespaceSelector in PodAffinityTerm.
PodAffinityNamespaceSelector featuregate . Feature = "PodAffinityNamespaceSelector"
2021-08-09 07:19:24 +00:00
// owner: @andrewsykim @XudongLiuHarold
// kep: http://kep.k8s.io/1959
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2022-05-05 02:47:06 +00:00
// GA: v1.24
2021-06-25 04:59:51 +00:00
//
// Enable support multiple Service "type: LoadBalancer" implementations in a cluster by specifying LoadBalancerClass
ServiceLoadBalancerClass featuregate . Feature = "ServiceLoadBalancerClass"
// owner: @damemi
2021-08-09 07:19:24 +00:00
// alpha: v1.21
// beta: v1.22
2021-06-25 04:59:51 +00:00
//
// Enables scaling down replicas via logarithmic comparison of creation/ready timestamps
LogarithmicScaleDown featuregate . Feature = "LogarithmicScaleDown"
// owner: @hbagdi
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/2365
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2021-12-08 13:50:47 +00:00
// GA: v1.23
2021-06-25 04:59:51 +00:00
//
// Enable Scope and Namespace fields on IngressClassParametersReference.
IngressClassNamespacedParams featuregate . Feature = "IngressClassNamespacedParams"
// owner: @maplain @andrewsykim
2021-08-09 07:19:24 +00:00
// kep: http://kep.k8s.io/2086
2021-06-25 04:59:51 +00:00
// alpha: v1.21
2021-12-08 13:50:47 +00:00
// beta: v1.22
2021-06-25 04:59:51 +00:00
//
// Enables node-local routing for Service internal traffic
ServiceInternalTrafficPolicy featuregate . Feature = "ServiceInternalTrafficPolicy"
// owner: @adtac
// alpha: v1.21
2021-08-09 07:19:24 +00:00
// beta: v1.22
2022-05-05 02:47:06 +00:00
// GA: v1.24
2021-06-25 04:59:51 +00:00
//
// Allows jobs to be created in the suspended state.
SuspendJob featuregate . Feature = "SuspendJob"
// owner: @fromanirh
// alpha: v1.21
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-06-25 04:59:51 +00:00
// Enable POD resources API to return allocatable resources
KubeletPodResourcesGetAllocatable featuregate . Feature = "KubeletPodResourcesGetAllocatable"
// owner: @fengzixu
// alpha: v1.21
//
// Enables kubelet to detect CSI volume condition and send the event of the abnormal volume to the corresponding pod that is using it.
CSIVolumeHealth featuregate . Feature = "CSIVolumeHealth"
2021-08-09 07:19:24 +00:00
// owner: @marosset
// alpha: v1.22
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-08-09 07:19:24 +00:00
//
// Enables support for 'HostProcess' containers on Windows nodes.
WindowsHostProcessContainers featuregate . Feature = "WindowsHostProcessContainers"
// owner: @ravig
2021-12-08 13:50:47 +00:00
// kep: https://kep.k8s.io/2607
2021-08-09 07:19:24 +00:00
// alpha: v1.22
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-08-09 07:19:24 +00:00
// StatefulSetMinReadySeconds allows minReadySeconds to be respected by StatefulSet controller
StatefulSetMinReadySeconds featuregate . Feature = "StatefulSetMinReadySeconds"
2021-12-08 13:50:47 +00:00
// owner: @ravig
// alpha: v1.23
2022-05-05 02:47:06 +00:00
// beta: v1.24
2021-12-08 13:50:47 +00:00
// IdentifyPodOS allows user to specify OS on which they'd like the Pod run. The user should still set the nodeSelector
// with appropriate `kubernetes.io/os` label for scheduler to identify appropriate node for the pod to run.
IdentifyPodOS featuregate . Feature = "IdentifyPodOS"
2021-08-09 07:19:24 +00:00
// owner: @gjkim42
// kep: http://kep.k8s.io/2595
// alpha: v1.22
//
// Enables apiserver and kubelet to allow up to 32 DNSSearchPaths and up to 2048 DNSSearchListChars.
ExpandedDNSConfig featuregate . Feature = "ExpandedDNSConfig"
// owner: @saschagrunert
// alpha: v1.22
//
// Enables the use of `RuntimeDefault` as the default seccomp profile for all workloads.
SeccompDefault featuregate . Feature = "SeccompDefault"
// owner: @liggitt, @tallclair, sig-auth
// alpha: v1.22
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-08-09 07:19:24 +00:00
//
// Enables the PodSecurity admission plugin
PodSecurity featuregate . Feature = "PodSecurity"
// owner: @chrishenzie
// alpha: v1.22
//
// Enables usage of the ReadWriteOncePod PersistentVolume access mode.
ReadWriteOncePod featuregate . Feature = "ReadWriteOncePod"
// owner: @enj
// beta: v1.22
2022-05-05 02:47:06 +00:00
// ga: v1.24
2021-08-09 07:19:24 +00:00
//
// Allows clients to request a duration for certificates issued via the Kubernetes CSR API.
CSRDuration featuregate . Feature = "CSRDuration"
// owner: @AkihiroSuda
// alpha: v1.22
//
// Enables support for running kubelet in a user namespace.
// The user namespace has to be created before running kubelet.
// All the node components such as CRI need to be running in the same user namespace.
KubeletInUserNamespace featuregate . Feature = "KubeletInUserNamespace"
// owner: @xiaoxubeii
// kep: http://kep.k8s.io/2570
// alpha: v1.22
//
// Enables kubelet to support memory QoS with cgroups v2.
MemoryQoS featuregate . Feature = "MemoryQoS"
// owner: @fromanirh
// alpha: v1.22
2021-12-08 13:50:47 +00:00
// beta: v1.23
2021-08-09 07:19:24 +00:00
//
2021-12-08 13:50:47 +00:00
// Allow the usage of options to fine-tune the cpumanager policies.
2021-08-09 07:19:24 +00:00
CPUManagerPolicyOptions featuregate . Feature = "CPUManagerPolicyOptions"
// owner: @jiahuif
// alpha: v1.21
// beta: v1.22
2022-05-05 02:47:06 +00:00
// GA: v1.24
2021-08-09 07:19:24 +00:00
//
// Enables Leader Migration for kube-controller-manager and cloud-controller-manager
ControllerManagerLeaderMigration featuregate . Feature = "ControllerManagerLeaderMigration"
2021-12-08 13:50:47 +00:00
// owner: @fromanirh
// alpha: v1.23
// beta: see below.
//
// Allow fine-tuning of cpumanager policies, experimental, alpha-quality options
// Per https://groups.google.com/g/kubernetes-sig-architecture/c/Nxsc7pfe5rw/m/vF2djJh0BAAJ
// We want to avoid a proliferation of feature gates. This feature gate:
// - will guard *a group* of cpumanager options whose quality level is alpha.
// - will never graduate to beta or stable.
// See https://groups.google.com/g/kubernetes-sig-architecture/c/Nxsc7pfe5rw/m/vF2djJh0BAAJ
// for details about the removal of this feature gate.
CPUManagerPolicyAlphaOptions featuregate . Feature = "CPUManagerPolicyAlphaOptions"
// owner: @fromanirh
// beta: v1.23
// beta: see below.
//
// Allow fine-tuning of cpumanager policies, experimental, beta-quality options
// Per https://groups.google.com/g/kubernetes-sig-architecture/c/Nxsc7pfe5rw/m/vF2djJh0BAAJ
// We want to avoid a proliferation of feature gates. This feature gate:
// - will guard *a group* of cpumanager options whose quality level is beta.
// - is thus *introduced* as beta
// - will never graduate to stable.
// See https://groups.google.com/g/kubernetes-sig-architecture/c/Nxsc7pfe5rw/m/vF2djJh0BAAJ
// for details about the removal of this feature gate.
CPUManagerPolicyBetaOptions featuregate . Feature = "CPUManagerPolicyBetaOptions"
// owner: @ahg
// beta: v1.23
//
// Allow updating node scheduling directives in the pod template of jobs. Specifically,
// node affinity, selector and tolerations. This is allowed only for suspended jobs
// that have never been unsuspended before.
JobMutableNodeSchedulingDirectives featuregate . Feature = "JobMutableNodeSchedulingDirectives"
// owner: @haircommander
// kep: http://kep.k8s.io/2364
// alpha: v1.23
//
// Configures the Kubelet to use the CRI to populate pod and container stats, instead of supplimenting with stats from cAdvisor.
// Requires the CRI implementation supports supplying the required stats.
PodAndContainerStatsFromCRI featuregate . Feature = "PodAndContainerStatsFromCRI"
// owner: @deepakkinni @xing-yang
// kep: http://kep.k8s.io/2680
// alpha: v1.23
//
// Honor Persistent Volume Reclaim Policy when it is "Delete" irrespective of PV-PVC
// deletion ordering.
HonorPVReclaimPolicy featuregate . Feature = "HonorPVReclaimPolicy"
// owner: @gnufied
// kep: http://kep.k8s.io/1790
// alpha: v1.23
//
// Allow users to recover from volume expansion failure
RecoverVolumeExpansionFailure featuregate . Feature = "RecoverVolumeExpansionFailure"
2022-05-05 02:47:06 +00:00
// owner: @yuzhiquan, @bowei, @PxyUp, @SergeyKanzhelev
2021-12-08 13:50:47 +00:00
// kep: http://kep.k8s.io/2727
// alpha: v1.23
2022-05-05 02:47:06 +00:00
// beta: v1.24
2021-12-08 13:50:47 +00:00
//
// Enables GRPC probe method for {Liveness,Readiness,Startup}Probe.
GRPCContainerProbe featuregate . Feature = "GRPCContainerProbe"
2022-05-05 02:47:06 +00:00
// owner: @zshihang
// kep: http://kep.k8s.io/2800
// beta: v1.24
//
// Stop auto-generation of secret-based service account tokens.
LegacyServiceAccountTokenNoAutoGeneration featuregate . Feature = "LegacyServiceAccountTokenNoAutoGeneration"
// owner: @sanposhiho
// kep: http://kep.k8s.io/3022
// alpha: v1.24
//
// Enable MinDomains in Pod Topology Spread.
MinDomainsInPodTopologySpread featuregate . Feature = "MinDomainsInPodTopologySpread"
// owner: @aojea
// kep: http://kep.k8s.io/3070
// alpha: v1.24
//
// Subdivide the ClusterIP range for dynamic and static IP allocation.
ServiceIPStaticSubrange featuregate . Feature = "ServiceIPStaticSubrange"
// owner: @xing-yang @sonasingh46
// kep: http://kep.k8s.io/2268
// alpha: v1.24
//
// Allow pods to failover to a different node in case of non graceful node shutdown
NodeOutOfServiceVolumeDetach featuregate . Feature = "NodeOutOfServiceVolumeDetach"
// owner: @krmayankk
// alpha: v1.24
//
// Enables maxUnavailable for StatefulSet
MaxUnavailableStatefulSet featuregate . Feature = "MaxUnavailableStatefulSet"
// owner: @rikatz
// kep: http://kep.k8s.io/2943
// alpha: v1.24
//
// Enables NetworkPolicy status subresource
NetworkPolicyStatus featuregate . Feature = "NetworkPolicyStatus"
// owner: @deejross
// kep: http://kep.k8s.io/3140
// alpha: v1.24
//
// Enables support for time zones in CronJobs.
CronJobTimeZone featuregate . Feature = "CronJobTimeZone"
2019-05-31 09:45:11 +00:00
)
func init ( ) {
2019-06-24 09:08:09 +00:00
runtime . Must ( utilfeature . DefaultMutableFeatureGate . Add ( defaultKubernetesFeatureGates ) )
2019-05-31 09:45:11 +00:00
}
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
// To add a new feature, define a key for it above and add it here. The features will be
// available throughout Kubernetes binaries.
2019-06-24 09:08:09 +00:00
var defaultKubernetesFeatureGates = map [ featuregate . Feature ] featuregate . FeatureSpec {
AppArmor : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
DynamicKubeletConfig : { Default : false , PreRelease : featuregate . Deprecated } , // feature gate is deprecated in 1.22, kubelet logic is removed in 1.24, api server logic can be removed in 1.26
2019-06-24 09:08:09 +00:00
ExperimentalHostUserNamespaceDefaultingGate : { Default : false , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
DevicePlugins : { Default : true , PreRelease : featuregate . Beta } ,
RotateKubeletServerCertificate : { Default : true , PreRelease : featuregate . Beta } ,
LocalStorageCapacityIsolation : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
EphemeralContainers : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
QOSReserved : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
ExpandPersistentVolumes : { Default : true , PreRelease : featuregate . GA } , // remove in 1.25
ExpandInUsePersistentVolumes : { Default : true , PreRelease : featuregate . GA } , // remove in 1.25
ExpandCSIVolumes : { Default : true , PreRelease : featuregate . GA } , // remove in 1.25
2021-06-25 04:59:51 +00:00
CPUManager : { Default : true , PreRelease : featuregate . Beta } ,
2021-08-09 07:19:24 +00:00
MemoryManager : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
CPUCFSQuotaPeriod : { Default : false , PreRelease : featuregate . Alpha } ,
TopologyManager : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
StorageObjectInUseProtection : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-06-25 04:59:51 +00:00
CSIMigration : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
CSIMigrationGCE : { Default : true , PreRelease : featuregate . Beta } , // On by default in 1.23 (requires GCE PD CSI Driver)
2021-06-25 04:59:51 +00:00
InTreePluginGCEUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
CSIMigrationAWS : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
InTreePluginAWSUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
CSIMigrationAzureDisk : { Default : true , PreRelease : featuregate . GA } , // On by default in 1.23 (requires Azure Disk CSI driver)
2021-06-25 04:59:51 +00:00
InTreePluginAzureDiskUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
CSIMigrationAzureFile : { Default : true , PreRelease : featuregate . Beta } , // On by default in 1.24 (requires Azure File CSI driver)
2021-06-25 04:59:51 +00:00
InTreePluginAzureFileUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
CSIMigrationvSphere : { Default : false , PreRelease : featuregate . Beta } , // Off by default (requires vSphere CSI driver)
InTreePluginvSphereUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
CSIMigrationOpenStack : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2021-06-25 04:59:51 +00:00
InTreePluginOpenStackUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
CSIMigrationRBD : { Default : false , PreRelease : featuregate . Alpha } , // Off by default (requires RBD CSI driver)
InTreePluginRBDUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
ConfigurableFSGroupPolicy : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
CSIMigrationPortworx : { Default : false , PreRelease : featuregate . Alpha } , // Off by default (requires Portworx CSI driver)
InTreePluginPortworxUnregister : { Default : false , PreRelease : featuregate . Alpha } ,
2021-06-25 04:59:51 +00:00
CSIInlineVolume : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
CSIStorageCapacity : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2021-08-09 07:19:24 +00:00
CSIServiceAccountToken : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.23
2021-12-08 13:50:47 +00:00
GenericEphemeralVolume : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
CSIVolumeFSGroupPolicy : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
VolumeSubpath : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-08-09 07:19:24 +00:00
NetworkPolicyEndPort : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
ProcMountType : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
TTLAfterFinished : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2022-05-05 02:47:06 +00:00
IndexedJob : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
JobTrackingWithFinalizers : { Default : false , PreRelease : featuregate . Beta } , // Disabled due to #109485
JobReadyPods : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
KubeletPodResources : { Default : true , PreRelease : featuregate . Beta } ,
2019-06-24 09:08:09 +00:00
LocalStorageCapacityIsolationFSQuotaMonitoring : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
NonPreemptingPriority : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
PodOverhead : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2021-12-08 13:50:47 +00:00
IPv6DualStack : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-06-25 04:59:51 +00:00
EndpointSlice : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-08-09 07:19:24 +00:00
EndpointSliceProxying : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
EndpointSliceTerminatingCondition : { Default : true , PreRelease : featuregate . Beta } ,
ProxyTerminatingEndpoints : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
EndpointSliceNodeName : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-08-09 07:19:24 +00:00
WindowsEndpointSliceProxying : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-06-25 04:59:51 +00:00
PodDisruptionBudget : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-08-09 07:19:24 +00:00
DaemonSetUpdateSurge : { Default : true , PreRelease : featuregate . Beta } , // on by default in 1.22
2021-12-08 13:50:47 +00:00
DownwardAPIHugePages : { Default : true , PreRelease : featuregate . Beta } , // on by default in 1.22
2022-05-05 02:47:06 +00:00
AnyVolumeDataSource : { Default : true , PreRelease : featuregate . Beta } , // on by default in 1.24
DefaultPodTopologySpread : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2020-12-17 12:28:29 +00:00
WinOverlay : { Default : true , PreRelease : featuregate . Beta } ,
WinDSR : { Default : false , PreRelease : featuregate . Alpha } ,
DisableAcceleratorUsageMetrics : { Default : true , PreRelease : featuregate . Beta } ,
HPAContainerMetrics : { Default : false , PreRelease : featuregate . Alpha } ,
2021-08-09 07:19:24 +00:00
SizeMemoryBackedVolumes : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
ExecProbeTimeout : { Default : true , PreRelease : featuregate . GA } , // lock to default and remove after v1.22 based on KEP #1972 update
2022-05-05 02:47:06 +00:00
KubeletCredentialProviders : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
GracefulNodeShutdown : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
GracefulNodeShutdownBasedOnPodPriority : { Default : true , PreRelease : featuregate . Beta } ,
ServiceLBNodePortControl : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
MixedProtocolLBService : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
VolumeCapacityPriority : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
PreferNominatedNode : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
ProbeTerminationGracePeriod : { Default : false , PreRelease : featuregate . Beta } , // Default to false in beta 1.22, set to true in 1.24
2021-08-09 07:19:24 +00:00
NodeSwap : { Default : false , PreRelease : featuregate . Alpha } ,
PodDeletionCost : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
StatefulSetAutoDeletePVC : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
TopologyAwareHints : { Default : true , PreRelease : featuregate . Beta } ,
PodAffinityNamespaceSelector : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
ServiceLoadBalancerClass : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
IngressClassNamespacedParams : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.25
2021-08-09 07:19:24 +00:00
ServiceInternalTrafficPolicy : { Default : true , PreRelease : featuregate . Beta } ,
LogarithmicScaleDown : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
SuspendJob : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2021-12-08 13:50:47 +00:00
KubeletPodResourcesGetAllocatable : { Default : true , PreRelease : featuregate . Beta } ,
2021-06-25 04:59:51 +00:00
CSIVolumeHealth : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
WindowsHostProcessContainers : { Default : true , PreRelease : featuregate . Beta } ,
2021-08-09 07:19:24 +00:00
DisableCloudProviders : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
DisableKubeletCloudCredentialProviders : { Default : false , PreRelease : featuregate . Alpha } ,
StatefulSetMinReadySeconds : { Default : true , PreRelease : featuregate . Beta } ,
2021-08-09 07:19:24 +00:00
ExpandedDNSConfig : { Default : false , PreRelease : featuregate . Alpha } ,
SeccompDefault : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
PodSecurity : { Default : true , PreRelease : featuregate . Beta } ,
2021-08-09 07:19:24 +00:00
ReadWriteOncePod : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
CSRDuration : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2021-12-08 13:50:47 +00:00
DelegateFSGroupToCSIDriver : { Default : true , PreRelease : featuregate . Beta } ,
2021-08-09 07:19:24 +00:00
KubeletInUserNamespace : { Default : false , PreRelease : featuregate . Alpha } ,
MemoryQoS : { Default : false , PreRelease : featuregate . Alpha } ,
2021-12-08 13:50:47 +00:00
CPUManagerPolicyOptions : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
ControllerManagerLeaderMigration : { Default : true , PreRelease : featuregate . GA , LockToDefault : true } , // remove in 1.26
2021-12-08 13:50:47 +00:00
CPUManagerPolicyAlphaOptions : { Default : false , PreRelease : featuregate . Alpha } ,
CPUManagerPolicyBetaOptions : { Default : true , PreRelease : featuregate . Beta } ,
JobMutableNodeSchedulingDirectives : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
IdentifyPodOS : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
PodAndContainerStatsFromCRI : { Default : false , PreRelease : featuregate . Alpha } ,
HonorPVReclaimPolicy : { Default : false , PreRelease : featuregate . Alpha } ,
RecoverVolumeExpansionFailure : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
GRPCContainerProbe : { Default : true , PreRelease : featuregate . Beta } ,
LegacyServiceAccountTokenNoAutoGeneration : { Default : true , PreRelease : featuregate . Beta } ,
MinDomainsInPodTopologySpread : { Default : false , PreRelease : featuregate . Alpha } ,
ServiceIPStaticSubrange : { Default : false , PreRelease : featuregate . Alpha } ,
NodeOutOfServiceVolumeDetach : { Default : false , PreRelease : featuregate . Alpha } ,
MaxUnavailableStatefulSet : { Default : false , PreRelease : featuregate . Alpha } ,
NetworkPolicyStatus : { Default : false , PreRelease : featuregate . Alpha } ,
CronJobTimeZone : { Default : false , PreRelease : featuregate . Alpha } ,
2019-05-31 09:45:11 +00:00
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
// unintentionally on either side:
2021-12-08 13:50:47 +00:00
genericfeatures . AdvancedAuditing : { Default : true , PreRelease : featuregate . GA } ,
genericfeatures . APIResponseCompression : { Default : true , PreRelease : featuregate . Beta } ,
genericfeatures . APIListChunking : { Default : true , PreRelease : featuregate . Beta } ,
genericfeatures . DryRun : { Default : true , PreRelease : featuregate . GA } ,
genericfeatures . ServerSideApply : { Default : true , PreRelease : featuregate . GA } ,
genericfeatures . APIPriorityAndFairness : { Default : true , PreRelease : featuregate . Beta } ,
2022-05-05 02:47:06 +00:00
genericfeatures . OpenAPIEnums : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
genericfeatures . CustomResourceValidationExpressions : { Default : false , PreRelease : featuregate . Alpha } ,
2022-05-05 02:47:06 +00:00
genericfeatures . OpenAPIV3 : { Default : true , PreRelease : featuregate . Beta } ,
2021-12-08 13:50:47 +00:00
genericfeatures . ServerSideFieldValidation : { Default : false , PreRelease : featuregate . Alpha } ,
2019-05-31 09:45:11 +00:00
// features that enable backwards compatibility but are scheduled to be removed
// ...
2021-08-09 07:19:24 +00:00
HPAScaleToZero : { Default : false , PreRelease : featuregate . Alpha } ,
2019-05-31 09:45:11 +00:00
}