mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-18 17:33:39 +00:00
Graduate StatefulSetAutoDelete to beta
Change-Id: Iee385580d313c69fbb8a893eb5c165aa0b75725d
This commit is contained in:
parent
ead7d66ee1
commit
1d6df8233c
@ -230,7 +230,7 @@ type StatefulSetSpec struct {
|
||||
|
||||
// PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from
|
||||
// the StatefulSet VolumeClaimTemplates. This requires the
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is alpha.
|
||||
// StatefulSetAutoDeletePVC feature gate to be enabled, which is beta and default on from 1.27.
|
||||
// +optional
|
||||
PersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy
|
||||
|
||||
|
@ -209,6 +209,7 @@ func TestSetDefaultStatefulSet(t *testing.T) {
|
||||
original *appsv1beta2.StatefulSet
|
||||
expected *appsv1beta2.StatefulSet
|
||||
enableMaxUnavailablePolicy bool
|
||||
enableStatefulSetAutoDelete bool
|
||||
}{
|
||||
{
|
||||
name: "labels and default update strategy",
|
||||
@ -441,12 +442,43 @@ func TestSetDefaultStatefulSet(t *testing.T) {
|
||||
},
|
||||
enableMaxUnavailablePolicy: true,
|
||||
},
|
||||
{
|
||||
name: "StatefulSetAutoDeletePVC enabled",
|
||||
original: &appsv1beta2.StatefulSet{
|
||||
Spec: appsv1beta2.StatefulSetSpec{
|
||||
Template: defaultTemplate,
|
||||
},
|
||||
},
|
||||
expected: &appsv1beta2.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Labels: defaultLabels,
|
||||
},
|
||||
Spec: appsv1beta2.StatefulSetSpec{
|
||||
Replicas: &defaultReplicas,
|
||||
Template: defaultTemplate,
|
||||
PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement,
|
||||
UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{
|
||||
Type: appsv1beta2.RollingUpdateStatefulSetStrategyType,
|
||||
RollingUpdate: &appsv1beta2.RollingUpdateStatefulSetStrategy{
|
||||
Partition: &defaultPartition,
|
||||
},
|
||||
},
|
||||
RevisionHistoryLimit: utilpointer.Int32(10),
|
||||
PersistentVolumeClaimRetentionPolicy: &appsv1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy{
|
||||
WhenDeleted: appsv1beta2.RetainPersistentVolumeClaimRetentionPolicyType,
|
||||
WhenScaled: appsv1beta2.RetainPersistentVolumeClaimRetentionPolicyType,
|
||||
},
|
||||
},
|
||||
},
|
||||
enableStatefulSetAutoDelete: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
test := test
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.MaxUnavailableStatefulSet, test.enableMaxUnavailablePolicy)()
|
||||
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.StatefulSetAutoDeletePVC, test.enableStatefulSetAutoDelete)()
|
||||
obj2 := roundTrip(t, runtime.Object(test.original))
|
||||
got, ok := obj2.(*appsv1beta2.StatefulSet)
|
||||
if !ok {
|
||||
|
@ -750,6 +750,7 @@ const (
|
||||
|
||||
// owner: @mattcary
|
||||
// alpha: v1.22
|
||||
// beta: v1.27
|
||||
//
|
||||
// Enables policies controlling deletion of PVCs created by a StatefulSet.
|
||||
StatefulSetAutoDeletePVC featuregate.Feature = "StatefulSetAutoDeletePVC"
|
||||
@ -1068,7 +1069,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
||||
|
||||
StableLoadBalancerNodeSet: {Default: true, PreRelease: featuregate.Beta},
|
||||
|
||||
StatefulSetAutoDeletePVC: {Default: false, PreRelease: featuregate.Alpha},
|
||||
StatefulSetAutoDeletePVC: {Default: true, PreRelease: featuregate.Beta},
|
||||
|
||||
StatefulSetStartOrdinal: {Default: true, PreRelease: featuregate.Beta},
|
||||
|
||||
|
@ -1463,6 +1463,13 @@ items:
|
||||
- create
|
||||
- patch
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- persistentvolumeclaims
|
||||
verbs:
|
||||
- delete
|
||||
- update
|
||||
- apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
|
@ -1214,7 +1214,7 @@ var _ = SIGDescribe("StatefulSet", func() {
|
||||
}
|
||||
})
|
||||
|
||||
ginkgo.Describe("Non-retain StatefulSetPersistentVolumeClaimPolicy [Feature:StatefulSetAutoDeletePVC]", func() {
|
||||
ginkgo.Describe("Non-retain StatefulSetPersistentVolumeClaimPolicy", func() {
|
||||
ssName := "ss"
|
||||
labels := map[string]string{
|
||||
"foo": "bar",
|
||||
@ -1320,7 +1320,7 @@ var _ = SIGDescribe("StatefulSet", func() {
|
||||
framework.ExpectNoError(err)
|
||||
})
|
||||
|
||||
ginkgo.It("should delete PVCs after adopting pod (WhenScaled) [Feature:StatefulSetAutoDeletePVC]", func(ctx context.Context) {
|
||||
ginkgo.It("should delete PVCs after adopting pod (WhenScaled)", func(ctx context.Context) {
|
||||
e2epv.SkipIfNoDefaultStorageClass(ctx, c)
|
||||
ginkgo.By("Creating statefulset " + ssName + " in namespace " + ns)
|
||||
*(ss.Spec.Replicas) = 3
|
||||
|
Loading…
Reference in New Issue
Block a user