mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 03:57:41 +00:00
Merge pull request #127093 from jpbetz/retry-generate-name-ga
Promote RetryGenerateName to GA
This commit is contained in:
commit
1137a6a0cc
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user