Merge pull request #127093 from jpbetz/retry-generate-name-ga
Promote RetryGenerateName to GA Kubernetes-commit: 1137a6a0cc98c49d2076461ce3d741a619a129e8
This commit is contained in:
commit
11af6bbc46
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue