mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Break nodelabel Filter plugins dependency on predicates package
This commit is contained in:
parent
8b8f2aa4a5
commit
4ef31f81c7
@ -49,8 +49,6 @@ var (
|
|||||||
ErrPodNotMatchHostName = NewPredicateFailureError("HostName", "node(s) didn't match the requested hostname")
|
ErrPodNotMatchHostName = NewPredicateFailureError("HostName", "node(s) didn't match the requested hostname")
|
||||||
// ErrPodNotFitsHostPorts is used for PodFitsHostPorts predicate error.
|
// ErrPodNotFitsHostPorts is used for PodFitsHostPorts predicate error.
|
||||||
ErrPodNotFitsHostPorts = NewPredicateFailureError("PodFitsHostPorts", "node(s) didn't have free ports for the requested pod ports")
|
ErrPodNotFitsHostPorts = NewPredicateFailureError("PodFitsHostPorts", "node(s) didn't have free ports for the requested pod ports")
|
||||||
// ErrNodeLabelPresenceViolated is used for CheckNodeLabelPresence predicate error.
|
|
||||||
ErrNodeLabelPresenceViolated = NewPredicateFailureError("CheckNodeLabelPresence", "node(s) didn't have the requested labels")
|
|
||||||
// ErrServiceAffinityViolated is used for CheckServiceAffinity predicate error.
|
// ErrServiceAffinityViolated is used for CheckServiceAffinity predicate error.
|
||||||
ErrServiceAffinityViolated = NewPredicateFailureError("CheckServiceAffinity", "node(s) didn't match service affinity")
|
ErrServiceAffinityViolated = NewPredicateFailureError("CheckServiceAffinity", "node(s) didn't match service affinity")
|
||||||
// ErrMaxVolumeCountExceeded is used for MaxVolumeCount predicate error.
|
// ErrMaxVolumeCountExceeded is used for MaxVolumeCount predicate error.
|
||||||
@ -81,7 +79,6 @@ var unresolvablePredicateFailureErrors = map[PredicateFailureReason]struct{}{
|
|||||||
ErrPodAffinityRulesNotMatch: {},
|
ErrPodAffinityRulesNotMatch: {},
|
||||||
ErrPodNotMatchHostName: {},
|
ErrPodNotMatchHostName: {},
|
||||||
ErrTaintsTolerationsNotMatch: {},
|
ErrTaintsTolerationsNotMatch: {},
|
||||||
ErrNodeLabelPresenceViolated: {},
|
|
||||||
// Node conditions won't change when scheduler simulates removal of preemption victims.
|
// Node conditions won't change when scheduler simulates removal of preemption victims.
|
||||||
// So, it is pointless to try nodes that have not been able to host the pod due to node
|
// So, it is pointless to try nodes that have not been able to host the pod due to node
|
||||||
// conditions. These include ErrNodeNotReady, ErrNodeUnderPIDPressure, ErrNodeUnderMemoryPressure, ....
|
// conditions. These include ErrNodeNotReady, ErrNodeUnderPIDPressure, ErrNodeUnderMemoryPressure, ....
|
||||||
|
@ -55,6 +55,7 @@ go_test(
|
|||||||
"//pkg/scheduler/apis/extender/v1:go_default_library",
|
"//pkg/scheduler/apis/extender/v1:go_default_library",
|
||||||
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library",
|
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library",
|
||||||
"//pkg/scheduler/framework/plugins/interpodaffinity:go_default_library",
|
"//pkg/scheduler/framework/plugins/interpodaffinity:go_default_library",
|
||||||
|
"//pkg/scheduler/framework/plugins/nodelabel:go_default_library",
|
||||||
"//pkg/scheduler/framework/plugins/noderesources:go_default_library",
|
"//pkg/scheduler/framework/plugins/noderesources:go_default_library",
|
||||||
"//pkg/scheduler/framework/plugins/podtopologyspread:go_default_library",
|
"//pkg/scheduler/framework/plugins/podtopologyspread:go_default_library",
|
||||||
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
|
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodelabel"
|
||||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
|
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
|
||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
@ -1872,7 +1873,7 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
|
|||||||
"machine1": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeSelectorNotMatch.GetReason()),
|
"machine1": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeSelectorNotMatch.GetReason()),
|
||||||
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrPodNotMatchHostName.GetReason()),
|
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrPodNotMatchHostName.GetReason()),
|
||||||
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrTaintsTolerationsNotMatch.GetReason()),
|
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrTaintsTolerationsNotMatch.GetReason()),
|
||||||
"machine4": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeLabelPresenceViolated.GetReason()),
|
"machine4": framework.NewStatus(framework.UnschedulableAndUnresolvable, nodelabel.ErrReasonPresenceViolated),
|
||||||
},
|
},
|
||||||
expected: map[string]bool{},
|
expected: map[string]bool{},
|
||||||
},
|
},
|
||||||
|
@ -6,8 +6,6 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodelabel",
|
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodelabel",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/scheduler/algorithm/predicates:go_default_library",
|
|
||||||
"//pkg/scheduler/framework/plugins/migration:go_default_library",
|
|
||||||
"//pkg/scheduler/framework/v1alpha1:go_default_library",
|
"//pkg/scheduler/framework/v1alpha1:go_default_library",
|
||||||
"//pkg/scheduler/nodeinfo:go_default_library",
|
"//pkg/scheduler/nodeinfo:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
|
@ -23,8 +23,6 @@ import (
|
|||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/labels"
|
"k8s.io/apimachinery/pkg/labels"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
|
|
||||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/migration"
|
|
||||||
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
|
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
|
||||||
"k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
"k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
||||||
)
|
)
|
||||||
@ -32,6 +30,11 @@ import (
|
|||||||
// Name of this plugin.
|
// Name of this plugin.
|
||||||
const Name = "NodeLabel"
|
const Name = "NodeLabel"
|
||||||
|
|
||||||
|
const (
|
||||||
|
// ErrReasonPresenceViolated is used for CheckNodeLabelPresence predicate error.
|
||||||
|
ErrReasonPresenceViolated = "node(s) didn't have the requested labels"
|
||||||
|
)
|
||||||
|
|
||||||
// Args holds the args that are used to configure the plugin.
|
// Args holds the args that are used to configure the plugin.
|
||||||
type Args struct {
|
type Args struct {
|
||||||
// PresentLabels should be present for the node to be considered a fit for hosting the pod
|
// PresentLabels should be present for the node to be considered a fit for hosting the pod
|
||||||
@ -118,7 +121,7 @@ func (pl *NodeLabel) Filter(ctx context.Context, _ *framework.CycleState, pod *v
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return migration.PredicateResultToFrameworkStatus([]predicates.PredicateFailureReason{predicates.ErrNodeLabelPresenceViolated}, nil)
|
return framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonPresenceViolated)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Score invoked at the score extension point.
|
// Score invoked at the score extension point.
|
||||||
|
Loading…
Reference in New Issue
Block a user