mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-02 19:28:16 +00:00
implementing predicates ordering
This commit is contained in:
@@ -49,9 +49,25 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
MatchInterPodAffinity = "MatchInterPodAffinity"
|
||||
CheckVolumeBinding = "CheckVolumeBinding"
|
||||
|
||||
MatchInterPodAffinity = "MatchInterPodAffinity"
|
||||
CheckVolumeBinding = "CheckVolumeBinding"
|
||||
CheckNodeConditionPred = "CheckNodeCondition"
|
||||
GeneralPred = "GeneralPredicates"
|
||||
HostNamePred = "HostName"
|
||||
PodFitsHostPortsPred = "PodFitsHostPorts"
|
||||
MatchNodeSelectorPred = "MatchNodeSelector"
|
||||
PodFitsResourcesPred = "PodFitsResources"
|
||||
NoDiskConflictPred = "NoDiskConflict"
|
||||
PodToleratesNodeTaintsPred = "PodToleratesNodeTaints"
|
||||
PodToleratesNodeNoExecuteTaintsPred = "PodToleratesNodeNoExecuteTaints"
|
||||
CheckNodeLabelPresencePred = "CheckNodeLabelPresence"
|
||||
checkServiceAffinityPred = "checkServiceAffinity"
|
||||
MaxEBSVolumeCountPred = "MaxEBSVolumeCount"
|
||||
MaxGCEPDVolumeCountPred = "MaxGCEPDVolumeCount"
|
||||
MaxAzureDiskVolumeCountPred = "MaxAzureDiskVolumeCount"
|
||||
NoVolumeZoneConflictPred = "NoVolumeZoneConflict"
|
||||
CheckNodeMemoryPressurePred = "CheckNodeMemoryPressure"
|
||||
CheckNodeDiskPressure = "CheckNodeDiskPressure"
|
||||
// DefaultMaxGCEPDVolumes defines the maximum number of PD Volumes for GCE
|
||||
// GCE instances can have up to 16 PD volumes attached.
|
||||
DefaultMaxGCEPDVolumes = 16
|
||||
@@ -79,6 +95,21 @@ const (
|
||||
// For example:
|
||||
// https://github.com/kubernetes/kubernetes/blob/36a218e/plugin/pkg/scheduler/factory/factory.go#L422
|
||||
|
||||
// IMPORTANT: this list contains the ordering of the predicates, if you develop a new predicates
|
||||
// it is mandatory to add its name on this list.
|
||||
// otherwise it won't be processed, see generic_scheduler#podFitsOnNode()
|
||||
// the order is based on the restrictiveness & complexity of predicates
|
||||
// design doc: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/predicates-ordering.md
|
||||
var (
|
||||
predicatesOrdering = []string{CheckNodeConditionPred,
|
||||
GeneralPred, HostNamePred, PodFitsHostPortsPred,
|
||||
MatchNodeSelectorPred, PodFitsResourcesPred, NoDiskConflictPred,
|
||||
PodToleratesNodeTaintsPred, PodToleratesNodeNoExecuteTaintsPred, CheckNodeLabelPresencePred,
|
||||
checkServiceAffinityPred, MaxEBSVolumeCountPred, MaxGCEPDVolumeCountPred,
|
||||
MaxAzureDiskVolumeCountPred, CheckVolumeBinding, NoVolumeZoneConflictPred,
|
||||
CheckNodeMemoryPressurePred, CheckNodeDiskPressure, MatchInterPodAffinity}
|
||||
)
|
||||
|
||||
// NodeInfo: Other types for predicate functions...
|
||||
type NodeInfo interface {
|
||||
GetNodeInfo(nodeID string) (*v1.Node, error)
|
||||
@@ -93,6 +124,14 @@ type CachedPersistentVolumeInfo struct {
|
||||
corelisters.PersistentVolumeLister
|
||||
}
|
||||
|
||||
func GetPredicatesOrdering() []string {
|
||||
return predicatesOrdering
|
||||
}
|
||||
|
||||
func SetPredicatesOrdering(names []string) {
|
||||
predicatesOrdering = names
|
||||
}
|
||||
|
||||
func (c *CachedPersistentVolumeInfo) GetPersistentVolumeInfo(pvID string) (*v1.PersistentVolume, error) {
|
||||
return c.Get(pvID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user