mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Do not attempt to truncate revision history if revisionHistoryLimit is negative
This commit is contained in:
parent
2413b97219
commit
60c9a5ecbd
@ -194,7 +194,7 @@ func (ssc *defaultStatefulSetControl) truncateHistory(
|
||||
}
|
||||
historyLen := len(history)
|
||||
historyLimit := int(*set.Spec.RevisionHistoryLimit)
|
||||
if historyLen <= historyLimit {
|
||||
if historyLimit < 0 || historyLen <= historyLimit {
|
||||
return nil
|
||||
}
|
||||
// delete any non-live history to maintain the revision limit.
|
||||
|
@ -53,6 +53,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/controller/history"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
"k8s.io/utils/ptr"
|
||||
)
|
||||
|
||||
type invariantFunc func(set *apps.StatefulSet, om *fakeObjectManager) error
|
||||
@ -2031,6 +2032,13 @@ func TestStatefulSetControlLimitsHistory(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("%s: %s", test.name, err)
|
||||
}
|
||||
|
||||
if *set.Spec.RevisionHistoryLimit < 0 {
|
||||
// If the revisionHistoryLimit is negative value, we don't truncate
|
||||
// the revision history and it is incremental.
|
||||
continue
|
||||
}
|
||||
|
||||
if len(revisions) > int(*set.Spec.RevisionHistoryLimit)+2 {
|
||||
t.Fatalf("%s: %d greater than limit %d", test.name, len(revisions), *set.Spec.RevisionHistoryLimit)
|
||||
}
|
||||
@ -2052,6 +2060,33 @@ func TestStatefulSetControlLimitsHistory(t *testing.T) {
|
||||
return burst(newStatefulSet(3))
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "zero revisionHistoryLimit",
|
||||
invariants: assertMonotonicInvariants,
|
||||
initial: func() *apps.StatefulSet {
|
||||
sts := newStatefulSet(3)
|
||||
sts.Spec.RevisionHistoryLimit = ptr.To(int32(0))
|
||||
return sts
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "negative revisionHistoryLimit",
|
||||
invariants: assertMonotonicInvariants,
|
||||
initial: func() *apps.StatefulSet {
|
||||
sts := newStatefulSet(3)
|
||||
sts.Spec.RevisionHistoryLimit = ptr.To(int32(-2))
|
||||
return sts
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "positive revisionHistoryLimit",
|
||||
invariants: assertMonotonicInvariants,
|
||||
initial: func() *apps.StatefulSet {
|
||||
sts := newStatefulSet(3)
|
||||
sts.Spec.RevisionHistoryLimit = ptr.To(int32(5))
|
||||
return sts
|
||||
},
|
||||
},
|
||||
}
|
||||
for i := range tests {
|
||||
testFn(t, &tests[i])
|
||||
|
Loading…
Reference in New Issue
Block a user