1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-28 14:41:10 +01:00

removepodsviolatingtopologyspreadconstraint: implement explicit constraints

This commit is contained in:
Amir Alavi
2023-06-03 18:58:18 -04:00
parent 5f0edb5f93
commit 7f2f6f2b16
14 changed files with 254 additions and 27 deletions

View File

@@ -17,6 +17,7 @@ import (
"testing"
"github.com/google/go-cmp/cmp"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@@ -46,21 +47,21 @@ func TestSetDefaults_RemovePodsViolatingTopologySpreadConstraintArgs(t *testing.
want: &RemovePodsViolatingTopologySpreadConstraintArgs{
Namespaces: nil,
LabelSelector: nil,
IncludeSoftConstraints: false,
Constraints: []v1.UnsatisfiableConstraintAction{v1.DoNotSchedule},
TopologyBalanceNodeFit: utilpointer.Bool(true),
},
},
{
name: "RemovePodsViolatingTopologySpreadConstraintArgs with value",
in: &RemovePodsViolatingTopologySpreadConstraintArgs{
Namespaces: &api.Namespaces{},
LabelSelector: &metav1.LabelSelector{},
IncludeSoftConstraints: true,
Namespaces: &api.Namespaces{},
LabelSelector: &metav1.LabelSelector{},
Constraints: []v1.UnsatisfiableConstraintAction{v1.DoNotSchedule, v1.ScheduleAnyway},
},
want: &RemovePodsViolatingTopologySpreadConstraintArgs{
Namespaces: &api.Namespaces{},
LabelSelector: &metav1.LabelSelector{},
IncludeSoftConstraints: true,
Constraints: []v1.UnsatisfiableConstraintAction{v1.DoNotSchedule, v1.ScheduleAnyway},
TopologyBalanceNodeFit: utilpointer.Bool(true),
},
},
@@ -68,6 +69,7 @@ func TestSetDefaults_RemovePodsViolatingTopologySpreadConstraintArgs(t *testing.
name: "RemovePodsViolatingTopologySpreadConstraintArgs without TopologyBalanceNodeFit",
in: &RemovePodsViolatingTopologySpreadConstraintArgs{},
want: &RemovePodsViolatingTopologySpreadConstraintArgs{
Constraints: []v1.UnsatisfiableConstraintAction{v1.DoNotSchedule},
TopologyBalanceNodeFit: utilpointer.Bool(true),
},
},
@@ -78,6 +80,17 @@ func TestSetDefaults_RemovePodsViolatingTopologySpreadConstraintArgs(t *testing.
},
want: &RemovePodsViolatingTopologySpreadConstraintArgs{
TopologyBalanceNodeFit: utilpointer.Bool(false),
Constraints: []v1.UnsatisfiableConstraintAction{v1.DoNotSchedule},
},
},
{
name: "RemovePodsViolatingTopologySpreadConstraintArgs with nil constraints",
in: &RemovePodsViolatingTopologySpreadConstraintArgs{
Constraints: nil,
},
want: &RemovePodsViolatingTopologySpreadConstraintArgs{
Constraints: []v1.UnsatisfiableConstraintAction{v1.DoNotSchedule},
TopologyBalanceNodeFit: utilpointer.Bool(true),
},
},
}