Chore: add ordinal start tweak function

This commit is contained in:
Qirui 2023-03-20 11:49:41 +08:00
parent 3eb34d8b6c
commit 18ba7c0e43

View File

@ -98,6 +98,12 @@ func tweakMinReadySeconds(t int32) statefulSetTweak {
} }
} }
func tweakOrdinalsStart(s int32) statefulSetTweak {
return func(ss *apps.StatefulSet) {
ss.Spec.Ordinals = &apps.StatefulSetOrdinals{Start: s}
}
}
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{
@ -219,17 +225,10 @@ func TestValidateStatefulSet(t *testing.T) {
}, },
{ {
name: "ordinals.start positive value", name: "ordinals.start positive value",
set: apps.StatefulSet{ set: mkStatefulSet(&validPodTemplate,
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault}, tweakReplicas(3),
Spec: apps.StatefulSetSpec{ tweakOrdinalsStart(2),
PodManagementPolicy: apps.ParallelPodManagement, ),
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
Replicas: 3,
Ordinals: &apps.StatefulSetOrdinals{Start: 2},
},
},
}, },
} }
@ -580,18 +579,11 @@ func TestValidateStatefulSet(t *testing.T) {
}, },
}, },
{ {
name: "invalid ordinals.start ", name: "invalid ordinals.start",
set: apps.StatefulSet{ set: mkStatefulSet(&validPodTemplate,
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault}, tweakReplicas(3),
Spec: apps.StatefulSetSpec{ tweakOrdinalsStart(-2),
PodManagementPolicy: apps.ParallelPodManagement, ),
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
Replicas: 3,
Ordinals: &apps.StatefulSetOrdinals{Start: -2},
},
},
errs: field.ErrorList{ errs: field.ErrorList{
field.Invalid(field.NewPath("spec", "ordinals.start"), nil, ""), field.Invalid(field.NewPath("spec", "ordinals.start"), nil, ""),
}, },
@ -1023,28 +1015,9 @@ func TestValidateStatefulSetUpdate(t *testing.T) {
}, },
}, },
{ {
name: "update existing instance with .spec.ordinals.start", name: "update existing instance with .spec.ordinals.start",
old: apps.StatefulSet{ old: mkStatefulSet(&validPodTemplate),
ObjectMeta: metav1.ObjectMeta{Name: "abc.123.example", Namespace: metav1.NamespaceDefault}, update: mkStatefulSet(&validPodTemplate, tweakOrdinalsStart(3)),
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.123.example", Namespace: metav1.NamespaceDefault},
Spec: apps.StatefulSetSpec{
PodManagementPolicy: apps.OrderedReadyPodManagement,
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
Template: validPodTemplate.Template,
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
Ordinals: &apps.StatefulSetOrdinals{
Start: 3,
},
},
},
}, },
} }