Chore: add update strategy type tweak function

This commit is contained in:
Qirui 2023-03-20 13:13:15 +08:00
parent 5e0161b3de
commit f3ffeae426

View File

@ -128,6 +128,12 @@ func tweakOrdinalsStart(s int32) statefulSetTweak {
} }
} }
func tweakUpdateStrategyType(t apps.StatefulSetUpdateStrategyType) statefulSetTweak {
return func(ss *apps.StatefulSet) {
ss.Spec.UpdateStrategy.Type = 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{
@ -386,32 +392,20 @@ func TestValidateStatefulSet(t *testing.T) {
}, },
{ {
name: "invalid update strategy", name: "invalid update strategy",
set: apps.StatefulSet{ set: mkStatefulSet(&validPodTemplate,
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault}, tweakReplicas(3),
Spec: apps.StatefulSetSpec{ tweakUpdateStrategyType("foo"),
PodManagementPolicy: apps.OrderedReadyPodManagement, ),
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
Replicas: 3,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: "foo"},
},
},
errs: field.ErrorList{ errs: field.ErrorList{
field.Invalid(field.NewPath("spec", "updateStrategy"), nil, ""), field.Invalid(field.NewPath("spec", "updateStrategy"), nil, ""),
}, },
}, },
{ {
name: "empty update strategy", name: "empty update strategy",
set: apps.StatefulSet{ set: mkStatefulSet(&validPodTemplate,
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault}, tweakReplicas(3),
Spec: apps.StatefulSetSpec{ tweakUpdateStrategyType(""),
PodManagementPolicy: apps.OrderedReadyPodManagement, ),
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
Replicas: 3,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: ""},
},
},
errs: field.ErrorList{ errs: field.ErrorList{
field.Required(field.NewPath("spec", "updateStrategy"), ""), field.Required(field.NewPath("spec", "updateStrategy"), ""),
}, },
@ -964,24 +958,10 @@ func TestValidateStatefulSetUpdate(t *testing.T) {
}, },
{ {
name: "update update strategy", name: "update update strategy",
old: apps.StatefulSet{ old: mkStatefulSet(&validPodTemplate),
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault}, update: mkStatefulSet(&validPodTemplate,
Spec: apps.StatefulSetSpec{ tweakUpdateStrategyType(apps.OnDeleteStatefulSetStrategyType),
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.OnDeleteStatefulSetStrategyType},
},
},
}, },
{ {
name: "update min ready seconds 1", name: "update min ready seconds 1",