mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 20:17:41 +00:00
Chore: add replicas tweak function
This commit is contained in:
parent
7fc08e0ce7
commit
4418a9f590
@ -80,6 +80,12 @@ func tweakPodManagementPolicy(policy apps.PodManagementPolicyType) statefulSetTw
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func tweakReplicas(replicas int32) statefulSetTweak {
|
||||||
|
return func(ss *apps.StatefulSet) {
|
||||||
|
ss.Spec.Replicas = replicas
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
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{
|
||||||
@ -276,16 +282,7 @@ func TestValidateStatefulSet(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "negative_replicas",
|
name: "negative_replicas",
|
||||||
set: apps.StatefulSet{
|
set: mkStatefulSet(&validPodTemplate, tweakReplicas(-1)),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Replicas: -1,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Invalid(field.NewPath("spec", "replicas"), nil, ""),
|
field.Invalid(field.NewPath("spec", "replicas"), nil, ""),
|
||||||
},
|
},
|
||||||
@ -507,48 +504,24 @@ func TestValidateStatefulSet(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "empty pod management policy",
|
name: "empty pod management policy",
|
||||||
set: apps.StatefulSet{
|
set: mkStatefulSet(&validPodTemplate,
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault},
|
tweakPodManagementPolicy(""),
|
||||||
Spec: apps.StatefulSetSpec{
|
tweakReplicas(3),
|
||||||
PodManagementPolicy: "",
|
),
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
Replicas: 3,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Required(field.NewPath("spec", "podManagementPolicy"), ""),
|
field.Required(field.NewPath("spec", "podManagementPolicy"), ""),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "invalid pod management policy",
|
name: "invalid pod management policy",
|
||||||
set: apps.StatefulSet{
|
set: mkStatefulSet(&validPodTemplate, tweakPodManagementPolicy("foo")),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: "foo",
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
Replicas: 3,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Invalid(field.NewPath("spec", "podManagementPolicy"), nil, ""),
|
field.Invalid(field.NewPath("spec", "podManagementPolicy"), nil, ""),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "set active deadline seconds",
|
name: "set active deadline seconds",
|
||||||
set: apps.StatefulSet{
|
set: mkStatefulSet(&invalidPodTemplate2, tweakReplicas(3)),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc-123", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: invalidPodTemplate2.Template,
|
|
||||||
Replicas: 3,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Forbidden(field.NewPath("spec", "template", "spec", "activeDeadlineSeconds"), ""),
|
field.Forbidden(field.NewPath("spec", "template", "spec", "activeDeadlineSeconds"), ""),
|
||||||
},
|
},
|
||||||
@ -982,25 +955,8 @@ func TestValidateStatefulSetUpdate(t *testing.T) {
|
|||||||
successCases := []testCase{
|
successCases := []testCase{
|
||||||
{
|
{
|
||||||
name: "update replica count",
|
name: "update replica count",
|
||||||
old: apps.StatefulSet{
|
old: mkStatefulSet(&validPodTemplate),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
update: mkStatefulSet(&validPodTemplate, tweakReplicas(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", Namespace: metav1.NamespaceDefault},
|
|
||||||
Spec: apps.StatefulSetSpec{
|
|
||||||
PodManagementPolicy: apps.OrderedReadyPodManagement,
|
|
||||||
Replicas: 3,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "update containers 1",
|
name: "update containers 1",
|
||||||
@ -1233,25 +1189,8 @@ func TestValidateStatefulSetUpdate(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "update to negative replicas",
|
name: "update to negative replicas",
|
||||||
old: apps.StatefulSet{
|
old: mkStatefulSet(&validPodTemplate),
|
||||||
ObjectMeta: metav1.ObjectMeta{Name: "abc", Namespace: metav1.NamespaceDefault},
|
update: mkStatefulSet(&validPodTemplate, tweakReplicas(-1)),
|
||||||
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,
|
|
||||||
Replicas: -1,
|
|
||||||
Selector: &metav1.LabelSelector{MatchLabels: validLabels},
|
|
||||||
Template: validPodTemplate.Template,
|
|
||||||
UpdateStrategy: apps.StatefulSetUpdateStrategy{Type: apps.RollingUpdateStatefulSetStrategyType},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
errs: field.ErrorList{
|
errs: field.ErrorList{
|
||||||
field.Invalid(field.NewPath("spec", "replicas"), nil, ""),
|
field.Invalid(field.NewPath("spec", "replicas"), nil, ""),
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user