mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #127670 from Jefftree/port-kcm-feature
Port all remaining features to versioned
This commit is contained in:
		@@ -43,7 +43,7 @@ fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# ensure all generic features are added in alphabetic order
 | 
					# ensure all generic features are added in alphabetic order
 | 
				
			||||||
lines=$(git grep 'genericfeatures[.].*:' -- pkg/features/kube_features.go)
 | 
					lines=$(git grep 'genericfeatures[.].*:' -- pkg/features/versioned_kube_features.go)
 | 
				
			||||||
sorted_lines=$(echo "$lines" | sort -f)
 | 
					sorted_lines=$(echo "$lines" | sort -f)
 | 
				
			||||||
if [[ "$lines" != "$sorted_lines" ]]; then
 | 
					if [[ "$lines" != "$sorted_lines" ]]; then
 | 
				
			||||||
  echo "Generic features in pkg/features/kube_features.go not sorted" >&2
 | 
					  echo "Generic features in pkg/features/kube_features.go not sorted" >&2
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,6 @@ package features
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/runtime"
 | 
						"k8s.io/apimachinery/pkg/util/runtime"
 | 
				
			||||||
	genericfeatures "k8s.io/apiserver/pkg/features"
 | 
					 | 
				
			||||||
	utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
						utilfeature "k8s.io/apiserver/pkg/util/feature"
 | 
				
			||||||
	clientfeatures "k8s.io/client-go/features"
 | 
						clientfeatures "k8s.io/client-go/features"
 | 
				
			||||||
	"k8s.io/component-base/featuregate"
 | 
						"k8s.io/component-base/featuregate"
 | 
				
			||||||
@@ -157,12 +156,6 @@ const (
 | 
				
			|||||||
	// Enables kubelet to detect CSI volume condition and send the event of the abnormal volume to the corresponding pod that is using it.
 | 
						// 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"
 | 
						CSIVolumeHealth featuregate.Feature = "CSIVolumeHealth"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// owner: @nckturner
 | 
					 | 
				
			||||||
	// kep:  http://kep.k8s.io/2699
 | 
					 | 
				
			||||||
	// alpha: v1.27
 | 
					 | 
				
			||||||
	// Enable webhooks in cloud controller manager
 | 
					 | 
				
			||||||
	CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// owner: @adrianreber
 | 
						// owner: @adrianreber
 | 
				
			||||||
	// kep: https://kep.k8s.io/2008
 | 
						// kep: https://kep.k8s.io/2008
 | 
				
			||||||
	// alpha: v1.25
 | 
						// alpha: v1.25
 | 
				
			||||||
@@ -233,7 +226,9 @@ const (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// owner: @HirazawaUi
 | 
						// owner: @HirazawaUi
 | 
				
			||||||
	// kep: http://kep.k8s.io/4004
 | 
						// kep: http://kep.k8s.io/4004
 | 
				
			||||||
	// Deprecated: v1.29 (default off)
 | 
						// alpha: v1.29
 | 
				
			||||||
 | 
						// Deprecated: v1.31 (default off)
 | 
				
			||||||
 | 
						//
 | 
				
			||||||
	// DisableNodeKubeProxyVersion disable the status.nodeInfo.kubeProxyVersion field of v1.Node
 | 
						// DisableNodeKubeProxyVersion disable the status.nodeInfo.kubeProxyVersion field of v1.Node
 | 
				
			||||||
	DisableNodeKubeProxyVersion featuregate.Feature = "DisableNodeKubeProxyVersion"
 | 
						DisableNodeKubeProxyVersion featuregate.Feature = "DisableNodeKubeProxyVersion"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -615,6 +610,14 @@ const (
 | 
				
			|||||||
	// Allow users to recover from volume expansion failure
 | 
						// Allow users to recover from volume expansion failure
 | 
				
			||||||
	RecoverVolumeExpansionFailure featuregate.Feature = "RecoverVolumeExpansionFailure"
 | 
						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
 | 
						// owner: @adrianmoisey
 | 
				
			||||||
	// kep: https://kep.k8s.io/4427
 | 
						// kep: https://kep.k8s.io/4427
 | 
				
			||||||
	// alpha: v1.32
 | 
						// alpha: v1.32
 | 
				
			||||||
@@ -759,6 +762,12 @@ const (
 | 
				
			|||||||
	// Enables a StatefulSet to start from an arbitrary non zero ordinal
 | 
						// Enables a StatefulSet to start from an arbitrary non zero ordinal
 | 
				
			||||||
	StatefulSetStartOrdinal featuregate.Feature = "StatefulSetStartOrdinal"
 | 
						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
 | 
						// owner: @nilekhc
 | 
				
			||||||
	// kep: https://kep.k8s.io/4192
 | 
						// kep: https://kep.k8s.io/4192
 | 
				
			||||||
	// alpha: v1.30
 | 
						// alpha: v1.30
 | 
				
			||||||
@@ -909,12 +918,6 @@ const (
 | 
				
			|||||||
	// releases.
 | 
						// releases.
 | 
				
			||||||
	UserNamespacesPodSecurityStandards featuregate.Feature = "UserNamespacesPodSecurityStandards"
 | 
						UserNamespacesPodSecurityStandards featuregate.Feature = "UserNamespacesPodSecurityStandards"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// owner: @ahutsunshine
 | 
					 | 
				
			||||||
	// beta: v1.30
 | 
					 | 
				
			||||||
	//
 | 
					 | 
				
			||||||
	// Allows namespace indexer for namespace scope resources in apiserver cache to accelerate list operations.
 | 
					 | 
				
			||||||
	StorageNamespaceIndex featuregate.Feature = "StorageNamespaceIndex"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// owner: @jsafrane
 | 
						// owner: @jsafrane
 | 
				
			||||||
	// kep: https://kep.k8s.io/1710
 | 
						// kep: https://kep.k8s.io/1710
 | 
				
			||||||
	// alpha: v1.30
 | 
						// alpha: v1.30
 | 
				
			||||||
@@ -922,14 +925,6 @@ const (
 | 
				
			|||||||
	// instead of changing each file on the volumes recursively.
 | 
						// instead of changing each file on the volumes recursively.
 | 
				
			||||||
	SELinuxMount featuregate.Feature = "SELinuxMount"
 | 
						SELinuxMount featuregate.Feature = "SELinuxMount"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// owner: @AkihiroSuda
 | 
					 | 
				
			||||||
	// kep: https://kep.k8s.io/3857
 | 
					 | 
				
			||||||
	// alpha: v1.30
 | 
					 | 
				
			||||||
	// beta: v1.31
 | 
					 | 
				
			||||||
	//
 | 
					 | 
				
			||||||
	// Allows recursive read-only mounts.
 | 
					 | 
				
			||||||
	RecursiveReadOnlyMounts featuregate.Feature = "RecursiveReadOnlyMounts"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// owner: @everpeace
 | 
						// owner: @everpeace
 | 
				
			||||||
	// kep: https://kep.k8s.io/3619
 | 
						// kep: https://kep.k8s.io/3619
 | 
				
			||||||
	// alpha: v1.31
 | 
						// alpha: v1.31
 | 
				
			||||||
@@ -964,29 +959,4 @@ func init() {
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
// Entries are separated from each other with blank lines to avoid sweeping gofmt changes
 | 
					// Entries are separated from each other with blank lines to avoid sweeping gofmt changes
 | 
				
			||||||
// when adding or removing one entry.
 | 
					// when adding or removing one entry.
 | 
				
			||||||
var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
 | 
					var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{}
 | 
				
			||||||
	// inherited features from generic apiserver, relisted here to get a conflict if it is changed
 | 
					 | 
				
			||||||
	// unintentionally on either side:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	genericfeatures.KMSv1: {Default: false, PreRelease: featuregate.Deprecated},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// features with duplicate definition in apiserver/controller-manager
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	InPlacePodVerticalScaling: {Default: false, PreRelease: featuregate.Alpha},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// features that enable backwards compatibility but are scheduled to be removed
 | 
					 | 
				
			||||||
	// ...
 | 
					 | 
				
			||||||
	HPAScaleToZero: {Default: false, PreRelease: featuregate.Alpha},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	AllowDNSOnlyNodeCSR: {Default: false, PreRelease: featuregate.Deprecated}, // remove after 1.33
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	AllowInsecureKubeletCertificateSigningRequests: {Default: false, PreRelease: featuregate.Deprecated}, // remove in 1.33
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	DisableNodeKubeProxyVersion: {Default: false, PreRelease: featuregate.Deprecated}, // default on in 1.33
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	StorageNamespaceIndex: {Default: true, PreRelease: featuregate.Beta},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	RecursiveReadOnlyMounts: {Default: true, PreRelease: featuregate.Beta},
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,6 +21,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/util/version"
 | 
						"k8s.io/apimachinery/pkg/util/version"
 | 
				
			||||||
	genericfeatures "k8s.io/apiserver/pkg/features"
 | 
						genericfeatures "k8s.io/apiserver/pkg/features"
 | 
				
			||||||
	"k8s.io/component-base/featuregate"
 | 
						"k8s.io/component-base/featuregate"
 | 
				
			||||||
 | 
						kcmfeatures "k8s.io/controller-manager/pkg/features"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// defaultVersionedKubernetesFeatureGates consists of all known Kubernetes-specific feature keys with VersionedSpecs.
 | 
					// defaultVersionedKubernetesFeatureGates consists of all known Kubernetes-specific feature keys with VersionedSpecs.
 | 
				
			||||||
@@ -34,6 +35,14 @@ import (
 | 
				
			|||||||
//
 | 
					//
 | 
				
			||||||
// Entries are alphabetized.
 | 
					// Entries are alphabetized.
 | 
				
			||||||
var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{
 | 
					var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{
 | 
				
			||||||
 | 
						AllowDNSOnlyNodeCSR: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						AllowInsecureKubeletCertificateSigningRequests: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	AllowOverwriteTerminationGracePeriodSeconds: {
 | 
						AllowOverwriteTerminationGracePeriodSeconds: {
 | 
				
			||||||
		{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Deprecated},
 | 
							{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -56,6 +65,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						kcmfeatures.CloudControllerManagerWebhook: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ClusterTrustBundle: {
 | 
						ClusterTrustBundle: {
 | 
				
			||||||
		{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -146,6 +159,11 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
							{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						DisableNodeKubeProxyVersion: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	DRAControlPlaneController: {
 | 
						DRAControlPlaneController: {
 | 
				
			||||||
		{Version: version.MustParse("1.26"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.26"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -232,6 +250,11 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
							{Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						genericfeatures.KMSv1: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericfeatures.MutatingAdmissionPolicy: {
 | 
						genericfeatures.MutatingAdmissionPolicy: {
 | 
				
			||||||
		{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -251,6 +274,12 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
 | 
							{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						genericfeatures.RetryGenerateName: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.32"), Default: true, LockToDefault: true, PreRelease: featuregate.GA},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericfeatures.SeparateCacheWatchRPC: {
 | 
						genericfeatures.SeparateCacheWatchRPC: {
 | 
				
			||||||
		{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
 | 
							{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -331,6 +360,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
 | 
							{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.32
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						HPAScaleToZero: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.16"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ImageMaximumGCAge: {
 | 
						ImageMaximumGCAge: {
 | 
				
			||||||
		{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
		{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
 | 
							{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
@@ -340,6 +373,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						InPlacePodVerticalScaling: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	InTreePluginPortworxUnregister: {
 | 
						InTreePluginPortworxUnregister: {
 | 
				
			||||||
		{Version: version.MustParse("1.23"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.23"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -541,6 +578,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
	RecoverVolumeExpansionFailure: {
 | 
						RecoverVolumeExpansionFailure: {
 | 
				
			||||||
		{Version: version.MustParse("1.23"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.23"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						RecursiveReadOnlyMounts: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RelaxedDNSSearchValidation: {
 | 
						RelaxedDNSSearchValidation: {
 | 
				
			||||||
		{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
@@ -585,6 +626,10 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.29"), Default: true, PreRelease: featuregate.Beta},
 | 
							{Version: version.MustParse("1.29"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						StorageNamespaceIndex: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ServiceAccountTokenJTI: {
 | 
						ServiceAccountTokenJTI: {
 | 
				
			||||||
		{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
		{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
 | 
							{Version: version.MustParse("1.30"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
@@ -698,9 +743,4 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
	WindowsHostNetwork: {
 | 
						WindowsHostNetwork: {
 | 
				
			||||||
		{Version: version.MustParse("1.26"), Default: true, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.26"), Default: true, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	genericfeatures.RetryGenerateName: {
 | 
					 | 
				
			||||||
		{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
					 | 
				
			||||||
		{Version: version.MustParse("1.31"), Default: true, PreRelease: featuregate.Beta},
 | 
					 | 
				
			||||||
		{Version: version.MustParse("1.32"), Default: true, LockToDefault: true, PreRelease: featuregate.GA},
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -363,6 +363,11 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
		{Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
							{Version: version.MustParse("1.24"), Default: true, PreRelease: featuregate.GA, LockToDefault: true},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						KMSv1: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.28"), Default: true, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.29"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	MutatingAdmissionPolicy: {
 | 
						MutatingAdmissionPolicy: {
 | 
				
			||||||
		{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
							{Version: version.MustParse("1.30"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
@@ -448,9 +453,6 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
	},
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
 | 
					// defaultKubernetesFeatureGates consists of legacy unversioned Kubernetes-specific feature keys.
 | 
				
			||||||
// To add a new feature, define a key for it above and add it here. The features will be
 | 
					// Please do not add to this struct and use defaultVersionedKubernetesFeatureGates instead.
 | 
				
			||||||
// available throughout Kubernetes binaries.
 | 
					var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{}
 | 
				
			||||||
var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
 | 
					 | 
				
			||||||
	KMSv1: {Default: false, PreRelease: featuregate.Deprecated},
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,7 @@ limitations under the License.
 | 
				
			|||||||
package features
 | 
					package features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/util/version"
 | 
				
			||||||
	"k8s.io/component-base/featuregate"
 | 
						"k8s.io/component-base/featuregate"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -39,12 +40,14 @@ const (
 | 
				
			|||||||
	CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook"
 | 
						CloudControllerManagerWebhook featuregate.Feature = "CloudControllerManagerWebhook"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableFeatureGate) error {
 | 
					func SetupCurrentKubernetesSpecificFeatureGates(featuregates featuregate.MutableVersionedFeatureGate) error {
 | 
				
			||||||
	return featuregates.Add(cloudPublicFeatureGates)
 | 
						return featuregates.AddVersioned(versionedCloudPublicFeatureGates)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// cloudPublicFeatureGates consists of cloud-specific feature keys.
 | 
					// versionedCloudPublicFeatureGates consists of versioned cloud-specific feature keys.
 | 
				
			||||||
// To add a new feature, define a key for it at k8s.io/api/pkg/features and add it here.
 | 
					// To add a new feature, define a key for it above and add it here.
 | 
				
			||||||
var cloudPublicFeatureGates = map[featuregate.Feature]featuregate.FeatureSpec{
 | 
					var versionedCloudPublicFeatureGates = map[featuregate.Feature]featuregate.VersionedSpecs{
 | 
				
			||||||
	CloudControllerManagerWebhook: {Default: false, PreRelease: featuregate.Alpha},
 | 
						CloudControllerManagerWebhook: {
 | 
				
			||||||
 | 
							{Version: version.MustParse("1.27"), Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,3 @@
 | 
				
			|||||||
- name: AllowDNSOnlyNodeCSR
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Deprecated
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: AllowInsecureKubeletCertificateSigningRequests
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Deprecated
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: CloudControllerManagerWebhook
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Alpha
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: ComponentSLIs
 | 
					- name: ComponentSLIs
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: true
 | 
					  - default: true
 | 
				
			||||||
@@ -28,30 +10,6 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Beta
 | 
					    preRelease: Beta
 | 
				
			||||||
    version: ""
 | 
					    version: ""
 | 
				
			||||||
- name: DisableNodeKubeProxyVersion
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Deprecated
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: HPAScaleToZero
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Alpha
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: InPlacePodVerticalScaling
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Alpha
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: KMSv1
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: false
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Deprecated
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: LoggingAlphaOptions
 | 
					- name: LoggingAlphaOptions
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -64,15 +22,3 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Beta
 | 
					    preRelease: Beta
 | 
				
			||||||
    version: ""
 | 
					    version: ""
 | 
				
			||||||
- name: RecursiveReadOnlyMounts
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: true
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Beta
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: StorageNamespaceIndex
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: true
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Beta
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,6 +26,18 @@
 | 
				
			|||||||
    lockToDefault: true
 | 
					    lockToDefault: true
 | 
				
			||||||
    preRelease: GA
 | 
					    preRelease: GA
 | 
				
			||||||
    version: "1.30"
 | 
					    version: "1.30"
 | 
				
			||||||
 | 
					- name: AllowDNSOnlyNodeCSR
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Deprecated
 | 
				
			||||||
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: AllowInsecureKubeletCertificateSigningRequests
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Deprecated
 | 
				
			||||||
 | 
					    version: "1.31"
 | 
				
			||||||
- name: AllowOverwriteTerminationGracePeriodSeconds
 | 
					- name: AllowOverwriteTerminationGracePeriodSeconds
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -134,6 +146,12 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Alpha
 | 
					    preRelease: Alpha
 | 
				
			||||||
    version: "1.31"
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: CloudControllerManagerWebhook
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Alpha
 | 
				
			||||||
 | 
					    version: "1.27"
 | 
				
			||||||
- name: ClusterTrustBundle
 | 
					- name: ClusterTrustBundle
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -320,6 +338,16 @@
 | 
				
			|||||||
    lockToDefault: true
 | 
					    lockToDefault: true
 | 
				
			||||||
    preRelease: GA
 | 
					    preRelease: GA
 | 
				
			||||||
    version: "1.31"
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: DisableNodeKubeProxyVersion
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Alpha
 | 
				
			||||||
 | 
					    version: "1.29"
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Deprecated
 | 
				
			||||||
 | 
					    version: "1.31"
 | 
				
			||||||
- name: DRAControlPlaneController
 | 
					- name: DRAControlPlaneController
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -412,6 +440,12 @@
 | 
				
			|||||||
    lockToDefault: true
 | 
					    lockToDefault: true
 | 
				
			||||||
    preRelease: GA
 | 
					    preRelease: GA
 | 
				
			||||||
    version: "1.30"
 | 
					    version: "1.30"
 | 
				
			||||||
 | 
					- name: HPAScaleToZero
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Alpha
 | 
				
			||||||
 | 
					    version: "1.16"
 | 
				
			||||||
- name: ImageMaximumGCAge
 | 
					- name: ImageMaximumGCAge
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -428,6 +462,12 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Alpha
 | 
					    preRelease: Alpha
 | 
				
			||||||
    version: "1.31"
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: InPlacePodVerticalScaling
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Alpha
 | 
				
			||||||
 | 
					    version: "1.27"
 | 
				
			||||||
- name: InTreePluginPortworxUnregister
 | 
					- name: InTreePluginPortworxUnregister
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -484,6 +524,16 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Beta
 | 
					    preRelease: Beta
 | 
				
			||||||
    version: "1.31"
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: KMSv1
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: true
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Deprecated
 | 
				
			||||||
 | 
					    version: "1.28"
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Deprecated
 | 
				
			||||||
 | 
					    version: "1.29"
 | 
				
			||||||
- name: KubeletCgroupDriverFromCRI
 | 
					- name: KubeletCgroupDriverFromCRI
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -842,6 +892,16 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Alpha
 | 
					    preRelease: Alpha
 | 
				
			||||||
    version: "1.23"
 | 
					    version: "1.23"
 | 
				
			||||||
 | 
					- name: RecursiveReadOnlyMounts
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Alpha
 | 
				
			||||||
 | 
					    version: "1.30"
 | 
				
			||||||
 | 
					  - default: true
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Beta
 | 
				
			||||||
 | 
					    version: "1.31"
 | 
				
			||||||
- name: RelaxedDNSSearchValidation
 | 
					- name: RelaxedDNSSearchValidation
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
@@ -1048,6 +1108,12 @@
 | 
				
			|||||||
    lockToDefault: true
 | 
					    lockToDefault: true
 | 
				
			||||||
    preRelease: GA
 | 
					    preRelease: GA
 | 
				
			||||||
    version: "1.31"
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: StorageNamespaceIndex
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: true
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Beta
 | 
				
			||||||
 | 
					    version: "1.30"
 | 
				
			||||||
- name: StorageVersionAPI
 | 
					- name: StorageVersionAPI
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user