Break volumebinding Filter plugins dependency on predicates package

This commit is contained in:
Haosdent Huang
2019-12-31 15:40:50 +08:00
parent 180e1c9f51
commit d27dc6751e
6 changed files with 16 additions and 17 deletions

View File

@@ -20,7 +20,6 @@ import (
"context"
v1 "k8s.io/api/core/v1"
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
@@ -36,6 +35,13 @@ var _ framework.FilterPlugin = &VolumeBinding{}
// Name is the name of the plugin used in Registry and configurations.
const Name = "VolumeBinding"
const (
// ErrReasonBindConflict is used for VolumeBindingNoMatch predicate error.
ErrReasonBindConflict = "node(s) didn't find available persistent volumes to bind"
// ErrReasonNodeConflict is used for VolumeNodeAffinityConflict predicate error.
ErrReasonNodeConflict = "node(s) had volume node affinity conflict"
)
// Name returns name of the plugin. It is used in logs, etc.
func (pl *VolumeBinding) Name() string {
return Name
@@ -81,10 +87,10 @@ func (pl *VolumeBinding) Filter(ctx context.Context, cs *framework.CycleState, p
if !boundSatisfied || !unboundSatisfied {
status := framework.NewStatus(framework.UnschedulableAndUnresolvable)
if !boundSatisfied {
status.AppendReason(predicates.ErrVolumeNodeConflict.GetReason())
status.AppendReason(ErrReasonNodeConflict)
}
if !unboundSatisfied {
status.AppendReason(predicates.ErrVolumeBindConflict.GetReason())
status.AppendReason(ErrReasonBindConflict)
}
return status
}