mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Merge pull request #127093 from jpbetz/retry-generate-name-ga
Promote RetryGenerateName to GA
This commit is contained in:
		@@ -1003,8 +1003,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	genericfeatures.ResilientWatchCacheInitialization: {Default: true, PreRelease: featuregate.Beta},
 | 
						genericfeatures.ResilientWatchCacheInitialization: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericfeatures.RetryGenerateName: {Default: true, PreRelease: featuregate.Beta},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	genericfeatures.SeparateCacheWatchRPC: {Default: true, PreRelease: featuregate.Beta},
 | 
						genericfeatures.SeparateCacheWatchRPC: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	genericfeatures.StorageVersionAPI: {Default: false, PreRelease: featuregate.Alpha},
 | 
						genericfeatures.StorageVersionAPI: {Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -438,4 +438,9 @@ var defaultVersionedKubernetesFeatureGates = map[featuregate.Feature]featuregate
 | 
				
			|||||||
	KubeletRegistrationGetOnExistsOnly: {
 | 
						KubeletRegistrationGetOnExistsOnly: {
 | 
				
			||||||
		{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Deprecated},
 | 
							{Version: version.MustParse("1.32"), Default: false, PreRelease: featuregate.Deprecated},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						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},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -189,6 +189,7 @@ const (
 | 
				
			|||||||
	// owner: @jpbetz
 | 
						// owner: @jpbetz
 | 
				
			||||||
	// alpha: v1.30
 | 
						// alpha: v1.30
 | 
				
			||||||
	// beta: v1.31
 | 
						// beta: v1.31
 | 
				
			||||||
 | 
						// ga: v1.32
 | 
				
			||||||
	// Resource create requests using generateName are retried automatically by the apiserver
 | 
						// 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.
 | 
						// if the generated name conflicts with an existing resource name, up to a maximum number of 7 retries.
 | 
				
			||||||
	RetryGenerateName featuregate.Feature = "RetryGenerateName"
 | 
						RetryGenerateName featuregate.Feature = "RetryGenerateName"
 | 
				
			||||||
@@ -300,6 +301,11 @@ 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},
 | 
				
			||||||
		{Version: version.MustParse("1.32"), Default: true, PreRelease: featuregate.Beta},
 | 
							{Version: version.MustParse("1.32"), Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
						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},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
 | 
					// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
 | 
				
			||||||
@@ -337,8 +343,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	ResilientWatchCacheInitialization: {Default: true, PreRelease: featuregate.Beta},
 | 
						ResilientWatchCacheInitialization: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	RetryGenerateName: {Default: true, PreRelease: featuregate.Beta},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SeparateCacheWatchRPC: {Default: true, PreRelease: featuregate.Beta},
 | 
						SeparateCacheWatchRPC: {Default: true, PreRelease: featuregate.Beta},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	StorageVersionAPI: {Default: false, PreRelease: featuregate.Alpha},
 | 
						StorageVersionAPI: {Default: false, PreRelease: featuregate.Alpha},
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/selection"
 | 
						"k8s.io/apimachinery/pkg/selection"
 | 
				
			||||||
	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
						utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/validation/field"
 | 
						"k8s.io/apimachinery/pkg/util/validation/field"
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/util/version"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/util/wait"
 | 
						"k8s.io/apimachinery/pkg/util/wait"
 | 
				
			||||||
	"k8s.io/apiserver/pkg/apis/example"
 | 
						"k8s.io/apiserver/pkg/apis/example"
 | 
				
			||||||
	examplev1 "k8s.io/apiserver/pkg/apis/example/v1"
 | 
						examplev1 "k8s.io/apiserver/pkg/apis/example/v1"
 | 
				
			||||||
@@ -447,6 +448,8 @@ func TestStoreCreateWithRetryNameGenerate(t *testing.T) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestStoreCreateWithRetryNameGenerateFeatureDisabled(t *testing.T) {
 | 
					func TestStoreCreateWithRetryNameGenerateFeatureDisabled(t *testing.T) {
 | 
				
			||||||
 | 
						// Preserve testing of disabled RetryGenerateName feature gate since it can still be disabled when emulation version is set.
 | 
				
			||||||
 | 
						featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, utilfeature.DefaultFeatureGate, version.MustParse("1.31"))
 | 
				
			||||||
	featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.RetryGenerateName, false)
 | 
						featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.RetryGenerateName, false)
 | 
				
			||||||
	namedObj := func(id int) *example.Pod {
 | 
						namedObj := func(id int) *example.Pod {
 | 
				
			||||||
		return &example.Pod{
 | 
							return &example.Pod{
 | 
				
			||||||
@@ -2981,6 +2984,8 @@ func (p *predictableNameGenerator) GenerateName(base string) string {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestStoreCreateGenerateNameConflict(t *testing.T) {
 | 
					func TestStoreCreateGenerateNameConflict(t *testing.T) {
 | 
				
			||||||
 | 
						// Preserve testing of disabled RetryGenerateName feature gate since it can still be disabled when emulation version is set.
 | 
				
			||||||
 | 
						featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, utilfeature.DefaultFeatureGate, version.MustParse("1.31"))
 | 
				
			||||||
	featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.RetryGenerateName, false)
 | 
						featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.RetryGenerateName, false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// podA will be stored with name foo12345
 | 
						// podA will be stored with name foo12345
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -178,12 +178,6 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Beta
 | 
					    preRelease: Beta
 | 
				
			||||||
    version: ""
 | 
					    version: ""
 | 
				
			||||||
- name: RetryGenerateName
 | 
					 | 
				
			||||||
  versionedSpecs:
 | 
					 | 
				
			||||||
  - default: true
 | 
					 | 
				
			||||||
    lockToDefault: false
 | 
					 | 
				
			||||||
    preRelease: Beta
 | 
					 | 
				
			||||||
    version: ""
 | 
					 | 
				
			||||||
- name: SeparateCacheWatchRPC
 | 
					- name: SeparateCacheWatchRPC
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: true
 | 
					  - default: true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -706,6 +706,20 @@
 | 
				
			|||||||
    lockToDefault: false
 | 
					    lockToDefault: false
 | 
				
			||||||
    preRelease: Alpha
 | 
					    preRelease: Alpha
 | 
				
			||||||
    version: "1.31"
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					- name: RetryGenerateName
 | 
				
			||||||
 | 
					  versionedSpecs:
 | 
				
			||||||
 | 
					  - default: false
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Alpha
 | 
				
			||||||
 | 
					    version: "1.30"
 | 
				
			||||||
 | 
					  - default: true
 | 
				
			||||||
 | 
					    lockToDefault: false
 | 
				
			||||||
 | 
					    preRelease: Beta
 | 
				
			||||||
 | 
					    version: "1.31"
 | 
				
			||||||
 | 
					  - default: true
 | 
				
			||||||
 | 
					    lockToDefault: true
 | 
				
			||||||
 | 
					    preRelease: GA
 | 
				
			||||||
 | 
					    version: "1.32"
 | 
				
			||||||
- name: RotateKubeletServerCertificate
 | 
					- name: RotateKubeletServerCertificate
 | 
				
			||||||
  versionedSpecs:
 | 
					  versionedSpecs:
 | 
				
			||||||
  - default: false
 | 
					  - default: false
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user