Repository: kubernetes/kubernetes (language: go)

Issue:
Remove alpha/beta/ga comments in kube_features.go
We already have detailed version transition information in https://github.com/kubernetes/kubernetes/blob/master/pkg/features/versioned_kube_features.go and the comments in [kube_features.go](https://github.com/kubernetes/kubernetes/blob/master/pkg/features/kube_features.go) are unnecessary and could drift from the ones documented in code. The versions in `versioned_kube_features.go` are programmatically verified thanks to a utility by @liggitt: https://github.com/kubernetes/kubernetes/pull/127200#discussion_r1768722135 and should be used as the source of truth compared to the comments.

Eg: The alpha and beta lines should be removed.

```
	// owner: @bswartz
	// alpha: v1.18
	// beta: v1.24
	//
	// Enables usage of any object for volume data source in PVCs
	AnyVolumeDataSource featuregate.Feature = "AnyVolumeDataSource"
```

cc @jpbetz @liggitt @aaron-prindle 
/sig architecture



Discussion / hints:
This issue is currently awaiting triage.

If a SIG or subproject determines this is a relevant issue, they will accept it by applying the `triage/accepted` label and provide further guidance.

The `triage/accepted` label can be added by org members by writing `/triage accepted` in a comment.


<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
</details>
could I work on it @Jefftree ?
Of course, thank you! 

Fix patch:
diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go
index f3d90e7949345..d7fd604e1ddf2 100644
--- a/pkg/features/kube_features.go
+++ b/pkg/features/kube_features.go
@@ -28,7 +28,6 @@ const (
 	//
 	// // owner: @username
 	// // kep: https://kep.k8s.io/NNN
-	// // alpha: v1.X
 	// MyFeature featuregate.Feature = "MyFeature"
 	//
 	// Feature gates should be listed in alphabetical, case-sensitive
@@ -50,58 +49,44 @@ const (
 	AllowOverwriteTerminationGracePeriodSeconds featuregate.Feature = "AllowOverwriteTerminationGracePeriodSeconds"
 
 	// owner: @bswartz
-	// alpha: v1.18
-	// beta: v1.24
 	//
 	// Enables usage of any object for volume data source in PVCs
 	AnyVolumeDataSource featuregate.Feature = "AnyVolumeDataSource"
 
 	// owner: @tallclair
-	// beta: v1.4
-	// GA: v1.31
 	AppArmor featuregate.Feature = "AppArmor"
 
 	// owner: @tallclair
-	// beta: v1.30
-	// GA: v1.31
 	AppArmorFields featuregate.Feature = "AppArmorFields"
 
 	// owner: @liggitt
 	// kep:
-	// alpha: v1.31
 	//
 	// Make the Node authorizer use fine-grained selector authorization.
 	// Requires AuthorizeWithSelectors to be enabled.
 	AuthorizeNodeWithSelectors featuregate.Feature = "AuthorizeNodeWithSelectors"
 
 	// owner: @ahmedtd
-	// alpha: v1.27
 	//
 	// Enable ClusterTrustBundle objects and Kubelet integration.
 	ClusterTrustBundle featuregate.Feature = "ClusterTrustBundle"
 
 	// owner: @ahmedtd
-	// alpha: v1.29
 	//
 	// Enable ClusterTrustBundle Kubelet projected volumes.  Depends on ClusterTrustBundle.
 	ClusterTrustBundleProjection featuregate.Feature = "ClusterTrustBundleProjection"
 
 	// owner: @szuecs
-	// alpha: v1.12
 	//
 	// Enable nodes to change CPUCFSQuotaPeriod
 	CPUCFSQuotaPeriod featuregate.Feature = "CustomCPUCFSQuotaPeriod"
 
 	// owner: @ConnorDoyle, @fromanirh (only for GA graduation)
-	// alpha: v1.8
-	// beta: v1.10
-	// GA: v1.26
 	//
 	// Alternative container-level CPU affinity policies.
 	CPUManager featuregate.Feature = "CPUManager"
 
 	// owner: @fromanirh
-	// alpha: v1.23
 	// beta: see below.
 	//
 	// Allow fine-tuning of cpumanager policies, experimental, alpha-quality options
@@ -114,7 +99,6 @@ const (
 	CPUManagerPolicyAlphaOptions featuregate.Feature = "CPUManagerPolicyAlphaOptions"
 
 	// owner: @fromanirh
-	// beta: v1.23
 	// beta: see below.
 	//
 	// Allow fine-tuning of cpumanager policies, experimental, beta-quality options
@@ -128,65 +112,50 @@ const (
 	CPUManagerPolicyBetaOptions featuregate.Feature = "CPUManagerPolicyBetaOptions"
 
 	// owner: @fromanirh
-	// alpha: v1.22
-	// beta: v1.23
 	//
 	// Allow the usage of options to fine-tune the cpumanager policies.
 	CPUManagerPolicyOptions featuregate.Feature = "CPUManagerPolicyOptions"
 
 	// owner: @jefftree
 	// kep: https://kep.k8s.io/4355
-	// alpha: v1.31
 	//
 	// Enables coordinated leader election in the API server
 	CoordinatedLeaderElection featuregate.Feature = "CoordinatedLeaderElection"
 
 	// owner: @trierra
 	// kep:  http://kep.k8s.io/2589
-	// alpha: v1.23
-	// beta: v1.25 (off by default)
-	// beta: v1.31 (on by default)
 	//
 	// Enables the Portworx in-tree driver to Portworx migration feature.
 	CSIMigrationPortworx featuregate.Feature = "CSIMigrationPortworx"
 
 	// 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"
 
 	// owner: @adrianreber
 	// kep: https://kep.k8s.io/2008
-	// alpha: v1.25
-	// beta: v1.30
 	//
 	// Enables container Checkpoint support in the kubelet
 	ContainerCheckpoint featuregate.Feature = "ContainerCheckpoint"
 
 	// owner: @helayoty
-	// beta: v1.28
 	// Set the scheduled time as an annotation in the job.
 	CronJobsScheduledAnnotation featuregate.Feature = "CronJobsScheduledAnnotation"
 
 	// owner: @ttakahashi21 @mkimuram
 	// kep: https://kep.k8s.io/3294
-	// alpha: v1.26
 	//
 	// Enable usage of Provision of PVCs from snapshots in other namespaces
 	CrossNamespaceVolumeDataSource featuregate.Feature = "CrossNamespaceVolumeDataSource"
 
 	// owner: @elezar
 	// kep: http://kep.k8s.io/4009
-	// alpha: v1.28
-	// beta: v1.29
-	// GA: v1.31
 	//
 	// Add support for CDI Device IDs in the Device Plugin API.
 	DevicePluginCDIDevices featuregate.Feature = "DevicePluginCDIDevices"
 
 	// owner: @aojea
-	// alpha: v1.31
 	//
 	// The apiservers with the MultiCIDRServiceAllocator feature enable, in order to support live migration from the old bitmap ClusterIP
 	// allocators to the new IPAddress allocators introduced by the MultiCIDRServiceAllocator feature, performs a dual-write on
@@ -194,17 +163,11 @@ const (
 	DisableAllocatorDualWrite featuregate.Feature = "DisableAllocatorDualWrite"
 
 	// owner: @andrewsykim
-	// alpha: v1.22
-	// beta: v1.29
-	// GA: v1.31
 	//
 	// Disable any functionality in kube-apiserver, kube-controller-manager and kubelet related to the `--cloud-provider` component flag.
 	DisableCloudProviders featuregate.Feature = "DisableCloudProviders"
 
 	// owner: @andrewsykim
-	// alpha: v1.23
-	// beta: v1.29
-	// GA: v1.31
 	//
 	// Disable in-tree functionality in kubelet to authenticate to cloud provider container registries for image pull credentials.
 	DisableKubeletCloudCredentialProviders featuregate.Feature = "DisableKubeletCloudCredentialProviders"
@@ -226,7 +189,6 @@ const (
 
 	// owner: @HirazawaUi
 	// kep: http://kep.k8s.io/4004
-	// alpha: v1.29
 	// Deprecated: v1.31 (default off)
 	//
 	// DisableNodeKubeProxyVersion disable the status.nodeInfo.kubeProxyVersion field of v1.Node
@@ -234,7 +196,6 @@ const (
 
 	// owner: @pohly
 	// kep: http://kep.k8s.io/3063
-	// alpha: v1.26
 	//
 	// Enables support for resources with custom parameters and a lifecycle
 	// that is independent of a Pod. Resource allocation is done by a DRA driver's
@@ -243,7 +204,6 @@ const (
 
 	// owner: @pohly
 	// kep: http://kep.k8s.io/4381
-	// alpha: v1.29
 	//
 	// Enables support for resources with custom parameters and a lifecycle
 	// that is independent of a Pod. Resource allocation is done by the scheduler
@@ -252,14 +212,12 @@ const (
 
 	// owner: @harche
 	// kep: http://kep.k8s.io/3386
-	// alpha: v1.25
 	//
 	// Allows using event-driven PLEG (pod lifecycle event generator) through kubelet
 	// which avoids frequent relisting of containers which helps optimize performance.
 	EventedPLEG featuregate.Feature = "EventedPLEG"
 
 	// 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.
@@ -267,68 +225,51 @@ const (
 	ExecProbeTimeout featuregate.Feature = "ExecProbeTimeout"
 
 	// owner: @bobbypage
-	// alpha: v1.20
-	// beta:  v1.21
 	// Adds support for kubelet to detect node shutdown and gracefully terminate pods prior to the node being shutdown.
 	GracefulNodeShutdown featuregate.Feature = "GracefulNodeShutdown"
 
 	// owner: @wzshiming
-	// alpha: v1.23
-	// beta:  v1.24
 	// Make the kubelet use shutdown configuration based on pod priority values for graceful shutdown.
 	GracefulNodeShutdownBasedOnPodPriority featuregate.Feature = "GracefulNodeShutdownBasedOnPodPriority"
 
 	// owner: @arjunrn @mwielgus @josephburnett @sanposhiho
 	// kep: https://kep.k8s.io/1610
-	// alpha: v1.20
-	// beta:  v1.27
-	// GA:  v1.30
 	//
 	// Add support for the HPA to scale based on metrics from individual containers
 	// in target pods
 	HPAContainerMetrics featuregate.Feature = "HPAContainerMetrics"
 
 	// 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"
 
 	// owner: @deepakkinni @xing-yang
 	// kep: https://kep.k8s.io/2644
-	// alpha: v1.23
-	// beta: v1.31
 	//
 	// Honor Persistent Volume Reclaim Policy when it is "Delete" irrespective of PV-PVC
 	// deletion ordering.
 	HonorPVReclaimPolicy featuregate.Feature = "HonorPVReclaimPolicy"
 
 	// owner: @trierra
-	// alpha: v1.23
 	//
 	// Disables the Portworx in-tree driver.
 	InTreePluginPortworxUnregister featuregate.Feature = "InTreePluginPortworxUnregister"
 
 	// owner: @mimowo
 	// kep: https://kep.k8s.io/3850
-	// alpha: v1.28
-	// beta: v1.29
 	//
 	// Allows users to specify counting of failed pods per index.
 	JobBackoffLimitPerIndex featuregate.Feature = "JobBackoffLimitPerIndex"
 
 	// owner: @mimowo
 	// kep: https://kep.k8s.io/4368
-	// alpha: v1.30
 	//
 	// Allows to delegate reconciliation of a Job object to an external controller.
 	JobManagedBy featuregate.Feature = "JobManagedBy"
 
 	// owner: @mimowo
 	// kep: https://kep.k8s.io/3329
-	// alpha: v1.25
-	// beta: v1.26
-	// GA: v1.31
 	//
 	// Allow users to specify handling of pod failures based on container exit codes
 	// and pod conditions.
@@ -336,8 +277,6 @@ const (
 
 	// owner: @kannon92
 	// kep : https://kep.k8s.io/3939
-	// alpha: v1.28
-	// beta: v1.29
 	//
 	// Allow users to specify recreating pods of a job only when
 	// pods have fully terminated.
@@ -345,8 +284,6 @@ const (
 
 	// owner: @tenzen-y
 	// kep: https://kep.k8s.io/3998
-	// alpha: v1.30
-	// beta: v1.31
 	//
 	// Allow users to specify when a Job can be declared as succeeded
 	// based on the set of succeeded pods.
@@ -354,8 +291,6 @@ const (
 
 	// owner: @marquiz
 	// kep: http://kep.k8s.io/4033
-	// alpha: v1.28
-	// beta: v1.31
 	//
 	// Enable detection of the kubelet cgroup driver configuration option from
 	// the CRI.  The CRI runtime also needs to support this feature in which
@@ -365,7 +300,6 @@ const (
 	KubeletCgroupDriverFromCRI featuregate.Feature = "KubeletCgroupDriverFromCRI"
 
 	// owner: @AkihiroSuda
-	// alpha: v1.22
 	//
 	// Enables support for running kubelet in a user namespace.
 	// The user namespace has to be created before running kubelet.
@@ -373,21 +307,17 @@ const (
 	KubeletInUserNamespace featuregate.Feature = "KubeletInUserNamespace"
 
 	// owner: @moshe010
-	// alpha: v1.27
 	//
 	// Enable POD resources API to return resources allocated by Dynamic Resource Allocation
 	KubeletPodResourcesDynamicResources featuregate.Feature = "KubeletPodResourcesDynamicResources"
 
 	// owner: @moshe010
-	// alpha: v1.27
 	//
 	// Enable POD resources API with Get method
 	KubeletPodResourcesGet featuregate.Feature = "KubeletPodResourcesGet"
 
 	// owner: @kannon92
 	// kep: https://kep.k8s.io/4191
-	// alpha: v1.29
-	// beta: v1.31
 	//
 	// The split image filesystem feature enables kubelet to perform garbage collection
 	// of images (read-only layers) and/or containers (writeable layers) deployed on
@@ -396,25 +326,18 @@ const (
 
 	// owner: @sallyom
 	// kep: https://kep.k8s.io/2832
-	// alpha: v1.25
-	// beta: v1.27
 	//
 	// Add support for distributed tracing in the kubelet
 	KubeletTracing featuregate.Feature = "KubeletTracing"
 
 	// owner: @alexanderConstantinescu
 	// kep: http://kep.k8s.io/3836
-	// alpha: v1.28
-	// beta: v1.30
-	// GA: v1.31
 	//
 	// Implement connection draining for terminating nodes for
 	// `externalTrafficPolicy: Cluster` services.
 	KubeProxyDrainingTerminatingNodes featuregate.Feature = "KubeProxyDrainingTerminatingNodes"
 
 	// owner: @RobertKrawitz
-	// alpha: v1.15
-	// beta: v1.31
 	//
 	// Allow use of filesystems for ephemeral storage monitoring.
 	// Only applies if LocalStorageCapacityIsolation is set.
@@ -422,119 +345,87 @@ const (
 	LocalStorageCapacityIsolationFSQuotaMonitoring featuregate.Feature = "LocalStorageCapacityIsolationFSQuotaMonitoring"
 
 	// owner: @damemi
-	// alpha: v1.21
-	// beta: v1.22
-	// GA: v1.31
 	//
 	// Enables scaling down replicas via logarithmic comparison of creation/ready timestamps
 	LogarithmicScaleDown featuregate.Feature = "LogarithmicScaleDown"
 
 	// owner: @sanposhiho
 	// kep: https://kep.k8s.io/3633
-	// alpha: v1.29
-	// beta: v1.31
 	//
 	// Enables the MatchLabelKeys and MismatchLabelKeys in PodAffinity and PodAntiAffinity.
 	MatchLabelKeysInPodAffinity featuregate.Feature = "MatchLabelKeysInPodAffinity"
 
 	// owner: @denkensk
 	// kep: https://kep.k8s.io/3243
-	// alpha: v1.25
-	// beta: v1.27
 	//
 	// Enable MatchLabelKeys in PodTopologySpread.
 	MatchLabelKeysInPodTopologySpread featuregate.Feature = "MatchLabelKeysInPodTopologySpread"
 
 	// owner: @krmayankk
-	// alpha: v1.24
 	//
 	// Enables maxUnavailable for StatefulSet
 	MaxUnavailableStatefulSet featuregate.Feature = "MaxUnavailableStatefulSet"
 
 	// owner: @cynepco3hahue(alukiano) @cezaryzukowski @k-wiatrzyk
-	// alpha: v1.21
-	// beta: v1.22
 	// Allows setting memory affinity for a container based on NUMA topology
 	MemoryManager featuregate.Feature = "MemoryManager"
 
 	// owner: @xiaoxubeii
 	// kep: https://kep.k8s.io/2570
-	// alpha: v1.22
 	//
 	// Enables kubelet to support memory QoS with cgroups v2.
 	MemoryQoS featuregate.Feature = "MemoryQoS"
 
 	// owner: @aojea
 	// kep: https://kep.k8s.io/1880
-	// alpha: v1.27
-	// beta: v1.31
 	//
 	// Enables the dynamic configuration of Service IP ranges
 	MultiCIDRServiceAllocator featuregate.Feature = "MultiCIDRServiceAllocator"
 
 	// owner: @danwinship
 	// kep: https://kep.k8s.io/3866
-	// alpha: v1.29
-	// beta: v1.31
 	//
 	// Allows running kube-proxy with `--mode nftables`.
 	NFTablesProxyMode featuregate.Feature = "NFTablesProxyMode"
 
 	// owner: @aravindhp @LorbusChris
 	// kep: http://kep.k8s.io/2271
-	// alpha: v1.27
-	// beta: v1.30
 	//
 	// Enables querying logs of node services using the /logs endpoint
 	NodeLogQuery featuregate.Feature = "NodeLogQuery"
 
 	// owner: @iholder101 @kannon92
 	// kep: https://kep.k8s.io/2400
-	// alpha: v1.22
-	// beta1: v1.28 (default=false)
-	// beta2: v.1.30 (default=true)
 
 	// Permits kubelet to run with swap enabled.
 	NodeSwap featuregate.Feature = "NodeSwap"
 
 	// owner: @mortent, @atiratree, @ravig
 	// kep: http://kep.k8s.io/3018
-	// alpha: v1.26
-	// beta: v1.27
-	// GA: v1.31
 	//
 	// Enables PDBUnhealthyPodEvictionPolicy for PodDisruptionBudgets
 	PDBUnhealthyPodEvictionPolicy featuregate.Feature = "PDBUnhealthyPodEvictionPolicy"
 
 	// owner: @RomanBednar
 	// kep: https://kep.k8s.io/3762
-	// alpha: v1.28
-	// beta: v1.29
-	// GA: v1.31
 	//
 	// Adds a new field to persistent volumes which holds a timestamp of when the volume last transitioned its phase.
 	PersistentVolumeLastPhaseTransitionTime featuregate.Feature = "PersistentVolumeLastPhaseTransitionTime"
 
 	// owner: @haircommander
 	// kep: https://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: @ahg-g
-	// alpha: v1.21
-	// beta: v1.22
 	//
 	// Enables controlling pod ranking on replicaset scale-down.
 	PodDeletionCost featuregate.Feature = "PodDeletionCost"
 
 	// owner: @mimowo
 	// kep: https://kep.k8s.io/3329
-	// alpha: v1.25
-	// beta: v1.26
-	// GA: v1.31
 	//
 	// Enables support for appending a dedicated pod condition indicating that
 	// the pod is being deleted due to a disruption.
@@ -542,14 +433,11 @@ const (
 
 	// owner: @danielvegamyhre
 	// kep: https://kep.k8s.io/4017
-	// beta: v1.28
 	//
 	// Set pod completion index as a pod label for Indexed Jobs.
 	PodIndexLabel featuregate.Feature = "PodIndexLabel"
 
 	// owner: @ddebroy, @kannon92
-	// alpha: v1.28
-	// beta: v1.29
 	//
 	// Enables reporting of PodReadyToStartContainersCondition condition in pod status after pod
 	// sandbox creation and network configuration completes successfully
@@ -557,47 +445,34 @@ const (
 
 	// owner: @wzshiming
 	// kep: http://kep.k8s.io/2681
-	// alpha: v1.28
-	// beta: v1.29
-	// GA: v1.30
 	//
 	// Adds pod.status.hostIPs and downward API
 	PodHostIPs featuregate.Feature = "PodHostIPs"
 
 	// owner: @AxeZhan
 	// kep: http://kep.k8s.io/3960
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Enables SleepAction in container lifecycle hooks
 	PodLifecycleSleepAction featuregate.Feature = "PodLifecycleSleepAction"
 
 	// owner: @Huang-Wei
 	// kep: https://kep.k8s.io/3521
-	// alpha: v1.26
-	// beta: v1.27
-	// GA: v1.30
 	//
 	// Enable users to specify when a Pod is ready for scheduling.
 	PodSchedulingReadiness featuregate.Feature = "PodSchedulingReadiness"
 
 	// owner: @seans3
 	// kep: http://kep.k8s.io/4006
-	// alpha: v1.30
-	// beta: v1.31
 	//
 	// Enables PortForward to be proxied with a websocket client
 	PortForwardWebsockets featuregate.Feature = "PortForwardWebsockets"
 
 	// owner: @jessfraz
-	// alpha: v1.12
-	// beta: v1.31
 	//
 	// Enables control over ProcMountType for containers.
 	ProcMountType featuregate.Feature = "ProcMountType"
 
 	// 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)
@@ -605,35 +480,29 @@ const (
 
 	// owner: @gnufied
 	// kep: https://kep.k8s.io/1790
-	// alpha: v1.23
 	//
 	// Allow users to recover from volume expansion failure
 	RecoverVolumeExpansionFailure featuregate.Feature = "RecoverVolumeExpansionFailure"
 
 	// owner: @AkihiroSuda
 	// kep: https://kep.k8s.io/3857
-	// alpha: v1.30
-	// beta: v1.31
 	//
 	// Allows recursive read-only mounts.
 	RecursiveReadOnlyMounts featuregate.Feature = "RecursiveReadOnlyMounts"
 
 	// owner: @adrianmoisey
 	// kep: https://kep.k8s.io/4427
-	// alpha: v1.32
 	//
 	// Relaxed DNS search string validation.
 	RelaxedDNSSearchValidation featuregate.Feature = "RelaxedDNSSearchValidation"
 
 	// owner: @HirazawaUi
 	// kep: https://kep.k8s.io/4369
-	// alpha: v1.30
 	//
 	// Allow almost all printable ASCII characters in environment variables
 	RelaxedEnvironmentVariableValidation featuregate.Feature = "RelaxedEnvironmentVariableValidation"
 
 	// owner: @zhangweikop
-	// beta: v1.31
 	//
 	// Enable kubelet tls server to update certificate if the specified certificate files are changed.
 	// This feature is useful when specifying tlsCertFile & tlsPrivateKeyFile in kubelet Configuration.
@@ -642,14 +511,11 @@ const (
 
 	// owner: @SergeyKanzhelev
 	// kep: https://kep.k8s.io/4680
-	// alpha: v1.31
 	//
 	// Adds the AllocatedResourcesStatus to the container status.
 	ResourceHealthStatus featuregate.Feature = "ResourceHealthStatus"
 
 	// 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
@@ -658,15 +524,12 @@ const (
 
 	// owner: @kiashok
 	// kep: https://kep.k8s.io/4216
-	// alpha: v1.29
 	//
 	// Adds support to pull images based on the runtime class specified.
 	RuntimeClassInImageCriAPI featuregate.Feature = "RuntimeClassInImageCriApi"
 
 	// owner: @danielvegamyhre
 	// kep: https://kep.k8s.io/2413
-	// beta: v1.27
-	// GA: v1.31
 	//
 	// Allows mutating spec.completions for Indexed job when done in tandem with
 	// spec.parallelism. Specifically, spec.completions is mutable iff spec.completions
@@ -675,7 +538,6 @@ const (
 
 	// owner: @sanposhiho
 	// kep: http://kep.k8s.io/4247
-	// beta: v1.28
 	//
 	// Enables the scheduler's enhancement called QueueingHints,
 	// which benefits to reduce the useless requeueing.
@@ -683,15 +545,12 @@ const (
 
 	// owner: @atosatto @yuanchen8911
 	// kep: http://kep.k8s.io/3902
-	// beta: v1.29
 	//
 	// Decouples Taint Eviction Controller, performing taint-based Pod eviction, from Node Lifecycle Controller.
 	SeparateTaintEvictionController featuregate.Feature = "SeparateTaintEvictionController"
 
 	// owner: @munnerz
 	// kep: http://kep.k8s.io/4193
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Controls whether JTIs (UUIDs) are embedded into generated service account tokens, and whether these JTIs are
 	// recorded into the audit log for future requests made by these tokens.
@@ -699,24 +558,18 @@ const (
 
 	// owner: @munnerz
 	// kep: http://kep.k8s.io/4193
-	// alpha: v1.29
-	// beta: v1.31
 	//
 	// Controls whether the apiserver supports binding service account tokens to Node objects.
 	ServiceAccountTokenNodeBinding featuregate.Feature = "ServiceAccountTokenNodeBinding"
 
 	// owner: @munnerz
 	// kep: http://kep.k8s.io/4193
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Controls whether the apiserver will validate Node claims in service account tokens.
 	ServiceAccountTokenNodeBindingValidation featuregate.Feature = "ServiceAccountTokenNodeBindingValidation"
 
 	// owner: @munnerz
 	// kep: http://kep.k8s.io/4193
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Controls whether the apiserver embeds the node name and uid for the associated node when issuing
 	// service account tokens bound to Pod objects.
@@ -724,16 +577,12 @@ const (
 
 	// owner: @gauravkghildiyal @robscott
 	// kep: https://kep.k8s.io/4444
-	// alpha: v1.30
-	// beta: v1.31
 	//
 	// Enables trafficDistribution field on Services.
 	ServiceTrafficDistribution featuregate.Feature = "ServiceTrafficDistribution"
 
 	// owner: @gjkim42 @SergeyKanzhelev @matthyx @tzneal
 	// kep: http://kep.k8s.io/753
-	// alpha: v1.28
-	// beta: v1.29
 	//
 	// Introduces sidecar containers, a new type of init container that starts
 	// before other containers but remains running for the full duration of the
@@ -741,51 +590,39 @@ const (
 	SidecarContainers featuregate.Feature = "SidecarContainers"
 
 	// owner: @derekwaynecarr
-	// alpha: v1.20
-	// beta: v1.22
 	//
 	// Enables kubelet support to size memory backed volumes
 	SizeMemoryBackedVolumes featuregate.Feature = "SizeMemoryBackedVolumes"
 
 	// owner: @mattcary
-	// alpha: v1.23
-	// beta: v1.27
 	//
 	// Enables policies controlling deletion of PVCs created by a StatefulSet.
 	StatefulSetAutoDeletePVC featuregate.Feature = "StatefulSetAutoDeletePVC"
 
 	// owner: @psch
-	// alpha: v1.26
-	// beta: v1.27
-	// GA: v1.31
 	//
 	// Enables a StatefulSet to start from an arbitrary non zero ordinal
 	StatefulSetStartOrdinal featuregate.Feature = "StatefulSetStartOrdinal"
 
 	// owner: @ahutsunshine
-	// beta: v1.30
 	//
 	// Allows namespace indexer for namespace scope resources in apiserver cache to accelerate list operations.
 	StorageNamespaceIndex featuregate.Feature = "StorageNamespaceIndex"
 
 	// owner: @nilekhc
 	// kep: https://kep.k8s.io/4192
-	// alpha: v1.30
 
 	// Enables support for the StorageVersionMigrator controller.
 	StorageVersionMigrator featuregate.Feature = "StorageVersionMigrator"
 
 	// owner: @robscott
 	// kep: https://kep.k8s.io/2433
-	// alpha: v1.21
-	// beta: v1.23
 	//
 	// Enables topology aware hints for EndpointSlices
 	TopologyAwareHints featuregate.Feature = "TopologyAwareHints"
 
 	// owner: @PiotrProkop
 	// kep: https://kep.k8s.io/3545
-	// alpha: v1.26
 	//
 	// Allow fine-tuning of topology manager policies with alpha options.
 	// This feature gate:
@@ -795,7 +632,6 @@ const (
 
 	// owner: @PiotrProkop
 	// kep: https://kep.k8s.io/3545
-	// alpha: v1.26
 	//
 	// Allow fine-tuning of topology manager policies with beta options.
 	// This feature gate:
@@ -806,70 +642,55 @@ const (
 
 	// owner: @PiotrProkop
 	// kep: https://kep.k8s.io/3545
-	// alpha: v1.26
 	//
 	// Allow the usage of options to fine-tune the topology manager policies.
 	TopologyManagerPolicyOptions featuregate.Feature = "TopologyManagerPolicyOptions"
 
 	// owner: @seans3
 	// kep: http://kep.k8s.io/4006
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Enables StreamTranslator proxy to handle WebSockets upgrade requests for the
 	// version of the RemoteCommand subprotocol that supports the "close" signal.
 	TranslateStreamCloseWebsocketRequests featuregate.Feature = "TranslateStreamCloseWebsocketRequests"
 
 	// owner: @richabanker
-	// alpha: v1.28
 	//
 	// Proxies client to an apiserver capable of serving the request in the event of version skew.
 	UnknownVersionInteroperabilityProxy featuregate.Feature = "UnknownVersionInteroperabilityProxy"
 
 	// owner: @rata, @giuseppe
 	// kep: https://kep.k8s.io/127
-	// alpha: v1.25
-	// beta: v1.30
 	//
 	// Enables user namespace support for stateless pods.
 	UserNamespacesSupport featuregate.Feature = "UserNamespacesSupport"
 
 	// owner: @mattcarry, @sunnylovestiramisu
 	// kep: https://kep.k8s.io/3751
-	// alpha: v1.29
-	// beta: v1.31 (off by default)
 	//
 	// Enables user specified volume attributes for persistent volumes, like iops and throughput.
 	VolumeAttributesClass featuregate.Feature = "VolumeAttributesClass"
 
 	// owner: @cofyc
-	// alpha: v1.21
 	VolumeCapacityPriority featuregate.Feature = "VolumeCapacityPriority"
 
 	// owner: @ksubrmnn
-	// alpha: v1.14
 	//
 	// Allows kube-proxy to create DSR loadbalancers for Windows
 	WinDSR featuregate.Feature = "WinDSR"
 
 	// owner: @ksubrmnn
-	// alpha: v1.14
-	// beta: v1.20
 	//
 	// Allows kube-proxy to run in Overlay mode for Windows
 	WinOverlay featuregate.Feature = "WinOverlay"
 
 	// owner: @marosset
 	// kep: https://kep.k8s.io/3503
-	// alpha: v1.26
 	//
 	// Enables support for joining Windows containers to a hosts' network namespace.
 	WindowsHostNetwork featuregate.Feature = "WindowsHostNetwork"
 
 	// owner: @kerthcet
 	// kep: https://kep.k8s.io/3094
-	// alpha: v1.25
-	// beta: v1.26
 	//
 	// Allow users to specify whether to take nodeAffinity/nodeTaint into consideration when
 	// calculating pod topology spread skew.
@@ -877,8 +698,6 @@ const (
 
 	// owner: @jsafrane
 	// kep: https://kep.k8s.io/1710
-	// alpha: v1.25
-	// beta: v1.27
 	// Speed up container startup by mounting volumes with the correct SELinux label
 	// instead of changing each file on the volumes recursively.
 	// Initial implementation focused on ReadWriteOncePod volumes.
@@ -886,29 +705,22 @@ const (
 
 	// owner: @vinaykul
 	// kep: http://kep.k8s.io/1287
-	// alpha: v1.27
 	//
 	// Enables In-Place Pod Vertical Scaling
 	InPlacePodVerticalScaling featuregate.Feature = "InPlacePodVerticalScaling"
 
 	// owner: @Sh4d1,@RyanAoh,@rikatz
 	// kep: http://kep.k8s.io/1860
-	// alpha: v1.29
-	// beta: v1.30
-	// GA: v1.32
 	// LoadBalancerIPMode enables the IPMode field in the LoadBalancerIngress status of a Service
 	LoadBalancerIPMode featuregate.Feature = "LoadBalancerIPMode"
 
 	// owner: @haircommander
 	// kep: http://kep.k8s.io/4210
-	// alpha: v1.29
-	// beta: v1.30
 	// ImageMaximumGCAge enables the Kubelet configuration field of the same name, allowing an admin
 	// to specify the age after which an image will be garbage collected.
 	ImageMaximumGCAge featuregate.Feature = "ImageMaximumGCAge"
 
 	// owner: @saschagrunert
-	// alpha: v1.29
 	//
 	// Enables user namespace support for Pod Security Standards. Enabling this
 	// feature will modify all Pod Security Standard rules to allow setting:
@@ -921,21 +733,18 @@ const (
 
 	// owner: @jsafrane
 	// kep: https://kep.k8s.io/1710
-	// alpha: v1.30
 	// Speed up container startup by mounting volumes with the correct SELinux label
 	// instead of changing each file on the volumes recursively.
 	SELinuxMount featuregate.Feature = "SELinuxMount"
 
 	// owner: @everpeace
 	// kep: https://kep.k8s.io/3619
-	// alpha: v1.31
 	//
 	// Enable SupplementalGroupsPolicy feature in PodSecurityContext
 	SupplementalGroupsPolicy featuregate.Feature = "SupplementalGroupsPolicy"
 
 	// owner: @saschagrunert
 	// kep: https://kep.k8s.io/4639
-	// alpha: v1.31
 	//
 	// Enables the image volume source.
 	ImageVolume featuregate.Feature = "ImageVolume"
diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go
index 8a8387a250877..c562263f32cd4 100644
--- a/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go
+++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/features/kube_features.go
@@ -27,21 +27,15 @@ const (
 	// Every feature gate should add method here following this template:
 	//
 	// // owner: @username
-	// // alpha: v1.4
 	// MyFeature() bool
 
 	// owner: @alexzielenski
-	// alpha: v1.28
-	// beta: v1.30
 	//
 	// Ignores errors raised on unchanged fields of Custom Resources
 	// across UPDATE/PATCH requests.
 	CRDValidationRatcheting featuregate.Feature = "CRDValidationRatcheting"
 
 	// owner: @jpbetz
-	// alpha: v1.30
-	// beta: v1.31
-	// ga: v1.32
 	//
 	// CustomResourceDefinitions may include SelectableFields to declare which fields
 	// may be used as field selectors.
diff --git a/staging/src/k8s.io/apiserver/pkg/features/kube_features.go b/staging/src/k8s.io/apiserver/pkg/features/kube_features.go
index 0c951076b322d..f576e5254f057 100644
--- a/staging/src/k8s.io/apiserver/pkg/features/kube_features.go
+++ b/staging/src/k8s.io/apiserver/pkg/features/kube_features.go
@@ -27,7 +27,6 @@ const (
 	// Every feature gate should add method here following this template:
 	//
 	// // owner: @username
-	// // alpha: v1.4
 	// MyFeature featuregate.Feature = "MyFeature"
 	//
 	// Feature gates should be listed in alphabetical, case-sensitive
@@ -36,8 +35,6 @@ const (
 	// across the file.
 
 	// owner: @ivelichkovich, @tallclair
-	// alpha: v1.27
-	// beta: v1.28
 	// stable: v1.30
 	// kep: https://kep.k8s.io/3716
 	//
@@ -45,8 +42,6 @@ const (
 	AdmissionWebhookMatchConditions featuregate.Feature = "AdmissionWebhookMatchConditions"
 
 	// owner: @jefftree @alexzielenski
-	// alpha: v1.26
-	// beta: v1.27
 	// stable: v1.30
 	//
 	// Enables an single HTTP endpoint /discovery/<version> which supports native HTTP
@@ -55,15 +50,11 @@ const (
 
 	// owner: @vinayakankugoyal
 	// kep: https://kep.k8s.io/4633
-	// alpha: v1.31
-	// beta: v1.32
 	//
 	// Allows us to enable anonymous auth for only certain apiserver endpoints.
 	AnonymousAuthConfigurableEndpoints featuregate.Feature = "AnonymousAuthConfigurableEndpoints"
 
 	// owner: @smarterclayton
-	// alpha: v1.8
-	// beta: v1.9
 	// stable: 1.29
 	//
 	// Allow API clients to retrieve resource lists in chunks rather than
@@ -71,53 +62,41 @@ const (
 	APIListChunking featuregate.Feature = "APIListChunking"
 
 	// owner: @ilackams
-	// alpha: v1.7
-	// beta: v1.16
 	//
 	// Enables compression of REST responses (GET and LIST only)
 	APIResponseCompression featuregate.Feature = "APIResponseCompression"
 
 	// owner: @roycaihw
-	// alpha: v1.20
 	//
 	// Assigns each kube-apiserver an ID in a cluster.
 	APIServerIdentity featuregate.Feature = "APIServerIdentity"
 
 	// owner: @dashpole
-	// alpha: v1.22
-	// beta: v1.27
 	//
 	// Add support for distributed tracing in the API Server
 	APIServerTracing featuregate.Feature = "APIServerTracing"
 
 	// owner: @linxiulei
-	// alpha: v1.30
 	//
 	// Enables serving watch requests in separate goroutines.
 	APIServingWithRoutine featuregate.Feature = "APIServingWithRoutine"
 
 	// owner: @deads2k
 	// kep: https://kep.k8s.io/4601
-	// alpha: v1.31
 	//
 	// Allows authorization to use field and label selectors.
 	AuthorizeWithSelectors featuregate.Feature = "AuthorizeWithSelectors"
 
 	// owner: @serathius
-	// beta: v1.31
 	// Enables concurrent watch object decoding to avoid starving watch cache when conversion webhook is installed.
 	ConcurrentWatchObjectDecode featuregate.Feature = "ConcurrentWatchObjectDecode"
 
 	// owner: @jefftree
 	// kep: https://kep.k8s.io/4355
-	// alpha: v1.31
 	//
 	// Enables coordinated leader election in the API server
 	CoordinatedLeaderElection featuregate.Feature = "CoordinatedLeaderElection"
 
-	// alpha: v1.20
-	// beta: v1.21
-	// GA: v1.24
 	//
 	// Allows for updating watchcache resource version with progress notify events.
 	EfficientWatchResumption featuregate.Feature = "EfficientWatchResumption"
@@ -131,23 +110,18 @@ const (
 
 	// owner: @alexzielenski, @cici37, @jiahuif
 	// kep: https://kep.k8s.io/3962
-	// alpha: v1.30
 	//
 	// Enables the MutatingAdmissionPolicy in Admission Chain
 	MutatingAdmissionPolicy featuregate.Feature = "MutatingAdmissionPolicy"
 
 	// owner: @jiahuif
 	// kep: https://kep.k8s.io/2887
-	// alpha: v1.23
-	// beta: v1.24
 	//
 	// Enables populating "enum" field of OpenAPI schemas
 	// in the spec returned from kube-apiserver.
 	OpenAPIEnums featuregate.Feature = "OpenAPIEnums"
 
 	// owner: @caesarxuchao
-	// alpha: v1.15
-	// beta: v1.16
 	// stable: 1.29
 	//
 	// Allow apiservers to show a count of remaining items in the response
@@ -155,21 +129,18 @@ const (
 	RemainingItemCount featuregate.Feature = "RemainingItemCount"
 
 	// owner: @wojtek-t
-	// beta: v1.31
 	//
 	// Enables resilient watchcache initialization to avoid controlplane
 	// overload.
 	ResilientWatchCacheInitialization featuregate.Feature = "ResilientWatchCacheInitialization"
 
 	// owner: @serathius
-	// beta: v1.30
 	//
 	// Allow watch cache to create a watch on a dedicated RPC.
 	// This prevents watch cache from being starved by other watches.
 	SeparateCacheWatchRPC featuregate.Feature = "SeparateCacheWatchRPC"
 
 	// owner: @enj
-	// beta: v1.29
 	//
 	// Enables http2 DOS mitigations for unauthenticated clients.
 	//
@@ -187,15 +158,11 @@ const (
 	UnauthenticatedHTTP2DOSMitigation featuregate.Feature = "UnauthenticatedHTTP2DOSMitigation"
 
 	// owner: @jpbetz
-	// alpha: v1.30
-	// beta: v1.31
-	// ga: v1.32
 	// Resource create requests using generateName are retried automatically by the apiserver
 	// if the generated name conflicts with an existing resource name, up to a maximum number of 7 retries.
 	RetryGenerateName featuregate.Feature = "RetryGenerateName"
 
 	// owner: @cici37
-	// alpha: v1.30
 	//
 	// StrictCostEnforcementForVAP is used to apply strict CEL cost validation for ValidatingAdmissionPolicy.
 	// It will be set to off by default for certain time of period to prevent the impact on the existing users.
@@ -204,7 +171,6 @@ const (
 	StrictCostEnforcementForVAP featuregate.Feature = "StrictCostEnforcementForVAP"
 
 	// owner: @cici37
-	// alpha: v1.30
 	//
 	// StrictCostEnforcementForWebhooks is used to apply strict CEL cost validation for matchConditions in Webhooks.
 	// It will be set to off by default for certain time of period to prevent the impact on the existing users.
@@ -213,14 +179,11 @@ const (
 	StrictCostEnforcementForWebhooks featuregate.Feature = "StrictCostEnforcementForWebhooks"
 
 	// owner: @caesarxuchao @roycaihw
-	// alpha: v1.20
 	//
 	// Enable the storage version API.
 	StorageVersionAPI featuregate.Feature = "StorageVersionAPI"
 
 	// owner: @caesarxuchao
-	// alpha: v1.14
-	// beta: v1.15
 	//
 	// Allow apiservers to expose the storage version hash in the discovery
 	// document.
@@ -228,57 +191,43 @@ const (
 
 	// owner: @aramase, @enj, @nabokihms
 	// kep: https://kep.k8s.io/3331
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Enables Structured Authentication Configuration
 	StructuredAuthenticationConfiguration featuregate.Feature = "StructuredAuthenticationConfiguration"
 
 	// owner: @palnabarun
 	// kep: https://kep.k8s.io/3221
-	// alpha: v1.29
-	// beta: v1.30
 	//
 	// Enables Structured Authorization Configuration
 	StructuredAuthorizationConfiguration featuregate.Feature = "StructuredAuthorizationConfiguration"
 
 	// owner: @wojtek-t
-	// alpha: v1.15
-	// beta: v1.16
-	// GA: v1.17
 	//
 	// Enables support for watch bookmark events.
 	WatchBookmark featuregate.Feature = "WatchBookmark"
 
 	// owner: @wojtek-t
-	// beta: v1.31
 	//
 	// Enables post-start-hook for storage readiness
 	WatchCacheInitializationPostStartHook featuregate.Feature = "WatchCacheInitializationPostStartHook"
 
 	// owner: @serathius
-	// beta: 1.30
 	// Enables watches without resourceVersion to be served from storage.
 	// Used to prevent https://github.com/kubernetes/kubernetes/issues/123072 until etcd fixes the issue.
 	WatchFromStorageWithoutResourceVersion featuregate.Feature = "WatchFromStorageWithoutResourceVersion"
 
 	// owner: @p0lyn0mial
-	// alpha: v1.27
 	//
 	// Allow the API server to stream individual items instead of chunking
 	WatchList featuregate.Feature = "WatchList"
 
 	// owner: @serathius
 	// kep: http://kep.k8s.io/2340
-	// alpha: v1.28
-	// beta: v1.31
 	//
 	// Allow the API server to serve consistent lists from cache
 	ConsistentListFromCache featuregate.Feature = "ConsistentListFromCache"
 
 	// owner: @tkashem
-	// beta: v1.29
-	// GA: v1.30
 	//
 	// Allow Priority & Fairness in the API server to use a zero value for
 	// the 'nominalConcurrencyShares' field of the 'limited' section of a
diff --git a/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go b/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go
index a28256d47e6ac..4170450753b31 100644
--- a/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go
+++ b/staging/src/k8s.io/controller-manager/pkg/features/kube_features.go
@@ -25,7 +25,6 @@ const (
 	// Every feature gate should add method here following this template:
 	//
 	// // owner: @username
-	// // alpha: v1.4
 	// MyFeature featuregate.Feature = "MyFeature"
 	//
 	// Feature gates should be listed in alphabetical, case-sensitive
@@ -35,7 +34,6 @@ const (
 
 	// owner: @nckturner
 	// kep:  http://kep.k8s.io/2699
-	// alpha: v1.27
 	// Enable webhook in cloud controller manager
 	CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook"
 )


Test patch: