Chore: add min ready seconds tweak function

This commit is contained in:
Qirui 2023-03-20 11:43:47 +08:00
parent 2161d095fa
commit 3eb34d8b6c

View File

@ -92,6 +92,12 @@ func tweakTemplateRestartPolicy(rp api.RestartPolicy) statefulSetTweak {
} }
} }
func tweakMinReadySeconds(t int32) statefulSetTweak {
return func(ss *apps.StatefulSet) {
ss.Spec.MinReadySeconds = t
}
}
func TestValidateStatefulSet(t *testing.T) { func TestValidateStatefulSet(t *testing.T) {
validLabels := map[string]string{"a": "b"} validLabels := map[string]string{"a": "b"}
validPodTemplate := api.PodTemplate{ validPodTemplate := api.PodTemplate{
@ -986,49 +992,14 @@ func TestValidateStatefulSetUpdate(t *testing.T) {
}, },
}, },
{ {
name: "update min ready seconds 1", name: "update min ready seconds 1",
old: apps.StatefulSet{ old: mkStatefulSet(&validPodTemplate),
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, update: mkStatefulSet(&validPodTemplate, tweakMinReadySeconds(10)),
Spec: apps.StatefulSetSpec{
PodManagementPolicy: apps.OrderedReadyPodManagement,
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
},
},
update: apps.StatefulSet{
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
Spec: apps.StatefulSetSpec{
PodManagementPolicy: apps.OrderedReadyPodManagement,
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
MinReadySeconds: 10,
},
},
}, },
{ {
name: "update min ready seconds 2", name: "update min ready seconds 2",
old: apps.StatefulSet{ old: mkStatefulSet(&validPodTemplate, tweakMinReadySeconds(5)),
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, update: mkStatefulSet(&validPodTemplate, tweakMinReadySeconds(10)),
Spec: apps.StatefulSetSpec{
PodManagementPolicy: apps.OrderedReadyPodManagement,
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
MinReadySeconds: 5,
},
},
update: apps.StatefulSet{
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
Spec: apps.StatefulSetSpec{
PodManagementPolicy: apps.OrderedReadyPodManagement,
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
MinReadySeconds: 10,
},
},
}, },
{ {
name: "update existing instance with now-invalid name", name: "update existing instance with now-invalid name",