mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 19:31:44 +00:00
Merge pull request #108230 from sanposhiho/fake-extender-name
Support ExtenderName in FakeExtender
This commit is contained in:
commit
296bf4f016
@ -22,7 +22,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
@ -58,9 +58,11 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.ErrorPredicateExtender},
|
||||
},
|
||||
},
|
||||
@ -76,9 +78,11 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.FalsePredicateExtender},
|
||||
},
|
||||
},
|
||||
@ -94,9 +98,11 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
},
|
||||
},
|
||||
@ -116,9 +122,11 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.Node2PredicateExtender},
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
},
|
||||
},
|
||||
@ -134,6 +142,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
Prioritizers: []st.PriorityConfig{{Function: st.ErrorPrioritizerExtender, Weight: 10}},
|
||||
Weight: 1,
|
||||
@ -155,11 +164,13 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
Prioritizers: []st.PriorityConfig{{Function: st.Node1PrioritizerExtender, Weight: 10}},
|
||||
Weight: 1,
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
Prioritizers: []st.PriorityConfig{{Function: st.Node2PrioritizerExtender, Weight: 10}},
|
||||
Weight: 5,
|
||||
@ -182,6 +193,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
Prioritizers: []st.PriorityConfig{{Function: st.Node1PrioritizerExtender, Weight: 10}},
|
||||
Weight: 1,
|
||||
@ -211,6 +223,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.ErrorPredicateExtender},
|
||||
Prioritizers: []st.PriorityConfig{{Function: st.ErrorPrioritizerExtender, Weight: 10}},
|
||||
UnInterested: true,
|
||||
@ -238,10 +251,12 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
},
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.ErrorPredicateExtender},
|
||||
Ignorable: true,
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
},
|
||||
},
|
||||
|
@ -227,7 +227,10 @@ func TestPostFilter(t *testing.T) {
|
||||
"node1": framework.NewStatus(framework.Unschedulable),
|
||||
"node2": framework.NewStatus(framework.Unschedulable),
|
||||
},
|
||||
extender: &st.FakeExtender{Predicates: []st.FitPredicate{st.Node1PredicateExtender}},
|
||||
extender: &st.FakeExtender{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
},
|
||||
wantResult: framework.NewPostFilterResultWithNominatedNode("node1"),
|
||||
wantStatus: framework.NewStatus(framework.Success),
|
||||
},
|
||||
@ -1506,8 +1509,14 @@ func TestPreempt(t *testing.T) {
|
||||
},
|
||||
nodeNames: []string{"node1", "node2", "node3"},
|
||||
extenders: []*st.FakeExtender{
|
||||
{Predicates: []st.FitPredicate{st.TruePredicateExtender}},
|
||||
{Predicates: []st.FitPredicate{st.Node1PredicateExtender}},
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
},
|
||||
},
|
||||
registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"),
|
||||
want: framework.NewPostFilterResultWithNominatedNode("node1"),
|
||||
@ -1523,7 +1532,10 @@ func TestPreempt(t *testing.T) {
|
||||
},
|
||||
nodeNames: []string{"node1", "node2", "node3"},
|
||||
extenders: []*st.FakeExtender{
|
||||
{Predicates: []st.FitPredicate{st.FalsePredicateExtender}},
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.FalsePredicateExtender},
|
||||
},
|
||||
},
|
||||
registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"),
|
||||
want: nil,
|
||||
@ -1539,8 +1551,15 @@ func TestPreempt(t *testing.T) {
|
||||
},
|
||||
nodeNames: []string{"node1", "node2", "node3"},
|
||||
extenders: []*st.FakeExtender{
|
||||
{Predicates: []st.FitPredicate{st.ErrorPredicateExtender}, Ignorable: true},
|
||||
{Predicates: []st.FitPredicate{st.Node1PredicateExtender}},
|
||||
{
|
||||
Predicates: []st.FitPredicate{st.ErrorPredicateExtender},
|
||||
Ignorable: true,
|
||||
ExtenderName: "FakeExtender1",
|
||||
},
|
||||
{
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
ExtenderName: "FakeExtender2",
|
||||
},
|
||||
},
|
||||
registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"),
|
||||
want: framework.NewPostFilterResultWithNominatedNode("node1"),
|
||||
@ -1556,8 +1575,15 @@ func TestPreempt(t *testing.T) {
|
||||
},
|
||||
nodeNames: []string{"node1", "node2"},
|
||||
extenders: []*st.FakeExtender{
|
||||
{Predicates: []st.FitPredicate{st.Node1PredicateExtender}, UnInterested: true},
|
||||
{Predicates: []st.FitPredicate{st.TruePredicateExtender}},
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.Node1PredicateExtender},
|
||||
UnInterested: true,
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender2",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
},
|
||||
},
|
||||
registerPlugin: st.RegisterPluginAsExtensions(noderesources.Name, nodeResourcesFitFunc, "Filter", "PreFilter"),
|
||||
// sum of priorities of all victims on node1 is larger than node2, node2 is chosen.
|
||||
|
@ -285,6 +285,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
name: "error",
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.ErrorPredicateExtender},
|
||||
},
|
||||
},
|
||||
@ -296,6 +297,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
name: "success",
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{st.TruePredicateExtender},
|
||||
},
|
||||
},
|
||||
@ -309,6 +311,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
name: "unschedulable",
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status {
|
||||
if node.Name == "a" {
|
||||
return framework.NewStatus(framework.Success)
|
||||
@ -329,6 +332,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
name: "unschedulable and unresolvable",
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status {
|
||||
if node.Name == "a" {
|
||||
return framework.NewStatus(framework.Success)
|
||||
@ -353,6 +357,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
name: "extender may overwrite the statuses",
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status {
|
||||
if node.Name == "a" {
|
||||
return framework.NewStatus(framework.Success)
|
||||
@ -379,6 +384,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
name: "multiple extenders",
|
||||
extenders: []st.FakeExtender{
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status {
|
||||
if node.Name == "a" {
|
||||
return framework.NewStatus(framework.Success)
|
||||
@ -390,6 +396,7 @@ func TestFindNodesThatPassExtenders(t *testing.T) {
|
||||
}},
|
||||
},
|
||||
{
|
||||
ExtenderName: "FakeExtender1",
|
||||
Predicates: []st.FitPredicate{func(pod *v1.Pod, node *v1.Node) *framework.Status {
|
||||
if node.Name == "a" {
|
||||
return framework.NewStatus(framework.Success)
|
||||
|
@ -143,6 +143,9 @@ func (pl *node2PrioritizerPlugin) ScoreExtensions() framework.ScoreExtensions {
|
||||
|
||||
// FakeExtender is a data struct which implements the Extender interface.
|
||||
type FakeExtender struct {
|
||||
// ExtenderName indicates this fake extender's name.
|
||||
// Note that extender name should be unique.
|
||||
ExtenderName string
|
||||
Predicates []FitPredicate
|
||||
Prioritizers []PriorityConfig
|
||||
Weight int64
|
||||
@ -155,9 +158,15 @@ type FakeExtender struct {
|
||||
CachedNodeNameToInfo map[string]*framework.NodeInfo
|
||||
}
|
||||
|
||||
const defaultFakeExtenderName = "defaultFakeExtender"
|
||||
|
||||
// Name returns name of the extender.
|
||||
func (f *FakeExtender) Name() string {
|
||||
return "FakeExtender"
|
||||
if f.ExtenderName == "" {
|
||||
// If ExtenderName is unset, use default name.
|
||||
return defaultFakeExtenderName
|
||||
}
|
||||
return f.ExtenderName
|
||||
}
|
||||
|
||||
// IsIgnorable returns a bool value indicating whether internal errors can be ignored.
|
||||
|
Loading…
Reference in New Issue
Block a user