Documentation ¶
Index ¶
- Constants
- func QuantityToInt64RoundDown(q resource.Quantity, scale resource.Scale) int64
- func QuantityToInt64RoundUp(q resource.Quantity, scale resource.Scale) int64
- func RlMapAllZero(m map[string]ResourceList) bool
- func RlMapFromJobSchedulerObjects(m schedulerobjects.QuantityByTAndResourceType[string], ...) map[string]ResourceList
- func RlMapHasNegativeValues(m map[string]ResourceList) bool
- func RlMapRemoveZeros(m map[string]ResourceList) map[string]ResourceList
- func RlMapToString(m map[string]ResourceList) string
- func UnschedulableTaint() v1.Taint
- type Node
- func CreateNode(id string, nodeType *NodeType, index uint64, executor string, name string, ...) *Node
- func CreateNodeAndType(id string, index uint64, executor string, name string, pool string, ...) *Node
- func FromSchedulerObjectsNode(node *schedulerobjects.Node, nodeIndex uint64, indexedTaints map[string]bool, ...) (*Node, error)
- func (node *Node) DeepCopyNilKeys() *Node
- func (node *Node) FindMatchingUntoleratedTaint(tolerations ...[]v1.Toleration) (v1.Taint, bool)
- func (node *Node) GetExecutor() string
- func (node *Node) GetId() string
- func (node *Node) GetIndex() uint64
- func (node *Node) GetLabelValue(key string) (string, bool)
- func (node *Node) GetLabels() map[string]string
- func (node *Node) GetName() string
- func (node *Node) GetNodeType() *NodeType
- func (node *Node) GetNodeTypeId() uint64
- func (node *Node) GetPool() string
- func (node *Node) GetTaints() []v1.Taint
- func (node *Node) GetTolerationsForTaints() []v1.Toleration
- func (node *Node) GetTotalResources() ResourceList
- func (node *Node) GetUnallocatableResources() map[int32]ResourceList
- func (node *Node) MatchNodeSelectorTerms(nodeSelector *v1.NodeSelector) (bool, error)
- func (node *Node) SummaryString() string
- type NodeFactory
- func (f *NodeFactory) CreateNodeAndType(id string, executor string, name string, pool string, unschedulable bool, ...) *Node
- func (f *NodeFactory) FromSchedulerObjectsExecutors(executors []*schedulerobjects.Executor, errorLogger func(string)) []*Node
- func (f *NodeFactory) FromSchedulerObjectsNode(node *schedulerobjects.Node) (*Node, error)
- type NodeType
- func (m *NodeType) FindMatchingUntoleratedTaint(tolerations ...[]v1.Toleration) (v1.Taint, bool)
- func (m *NodeType) GetId() uint64
- func (m *NodeType) GetLabelValue(key string) (string, bool)
- func (m *NodeType) GetLabels() map[string]string
- func (m *NodeType) GetTaints() []v1.Taint
- func (m *NodeType) GetUnsetIndexedLabelValue(key string) (string, bool)
- func (m *NodeType) GetUnsetIndexedLabels() map[string]string
- type Resource
- type ResourceFractionList
- type ResourceList
- func (rl ResourceList) Add(other ResourceList) ResourceList
- func (rl ResourceList) AllZero() bool
- func (rl ResourceList) Cap(cap ResourceList) ResourceList
- func (rl ResourceList) DivideZeroOnError(other ResourceList) ResourceFractionList
- func (rl ResourceList) Equal(other ResourceList) bool
- func (rl ResourceList) Exceeds(other ResourceList) bool
- func (rl ResourceList) ExceedsAvailable(available ResourceList) (string, k8sResource.Quantity, k8sResource.Quantity, bool)
- func (rl ResourceList) Factory() *ResourceListFactory
- func (rl ResourceList) FloorAtZero() ResourceList
- func (rl ResourceList) GetByName(name string) (int64, error)
- func (rl ResourceList) GetByNameZeroIfMissing(name string) int64
- func (rl ResourceList) GetResourceByNameZeroIfMissing(name string) k8sResource.Quantity
- func (rl ResourceList) GetResources() []Resource
- func (rl ResourceList) HasNegativeValues() bool
- func (rl ResourceList) IsEmpty() bool
- func (rl ResourceList) Multiply(multipliers ResourceFractionList) ResourceList
- func (rl ResourceList) Negate() ResourceList
- func (rl ResourceList) OfType(t ResourceType) ResourceList
- func (rl ResourceList) String() string
- func (rl ResourceList) Subtract(other ResourceList) ResourceList
- func (rl ResourceList) ToMap() map[string]k8sResource.Quantity
- type ResourceListFactory
- func (factory *ResourceListFactory) FromJobResourceListFailOnUnknown(resources map[string]k8sResource.Quantity) (ResourceList, error)
- func (factory *ResourceListFactory) FromJobResourceListIgnoreUnknown(resources map[string]k8sResource.Quantity) ResourceList
- func (factory *ResourceListFactory) FromNodeProto(resources map[string]k8sResource.Quantity) ResourceList
- func (factory *ResourceListFactory) GetScale(resourceTypeName string) (k8sResource.Scale, error)
- func (factory *ResourceListFactory) MakeAllMax() ResourceList
- func (factory *ResourceListFactory) MakeAllZero() ResourceList
- func (factory *ResourceListFactory) MakeResourceFractionList(m map[string]float64, defaultValue float64) ResourceFractionList
- func (factory *ResourceListFactory) SummaryString() string
- type ResourceType
Constants ¶
const ( // evictedPriority is the priority class priority resources consumed by evicted jobs are accounted for at. // This helps avoid scheduling new jobs onto nodes that make it impossible to re-schedule evicted jobs. EvictedPriority int32 = -1 // MinPriority is the smallest possible priority class priority within the NodeDb. MinPriority int32 = EvictedPriority )
Variables ¶
This section is empty.
Functions ¶
func QuantityToInt64RoundDown ¶ added in v0.4.48
func QuantityToInt64RoundUp ¶ added in v0.4.48
func RlMapAllZero ¶ added in v0.15.4
func RlMapAllZero(m map[string]ResourceList) bool
func RlMapFromJobSchedulerObjects ¶ added in v0.15.4
func RlMapFromJobSchedulerObjects(m schedulerobjects.QuantityByTAndResourceType[string], rlFactory *ResourceListFactory) map[string]ResourceList
func RlMapHasNegativeValues ¶ added in v0.15.4
func RlMapHasNegativeValues(m map[string]ResourceList) bool
func RlMapRemoveZeros ¶ added in v0.15.4
func RlMapRemoveZeros(m map[string]ResourceList) map[string]ResourceList
func RlMapToString ¶ added in v0.15.4
func RlMapToString(m map[string]ResourceList) string
func UnschedulableTaint ¶ added in v0.13.0
UnschedulableTaint returns the taint automatically added to unschedulable nodes on inserting into the nodeDb.
Types ¶
type Node ¶
type Node struct { // This field is set when inserting the Node into a NodeDb. Keys [][]byte AllocatableByPriority map[int32]ResourceList AllocatedByQueue map[string]ResourceList AllocatedByJobId map[string]ResourceList EvictedJobRunIds map[string]bool // contains filtered or unexported fields }
Node is a scheduler-internal representation of one Kubernetes node. Its private fields should be immutable! Do not change these!
func CreateNode ¶ added in v0.4.37
func CreateNode( id string, nodeType *NodeType, index uint64, executor string, name string, pool string, taints []v1.Taint, labels map[string]string, totalResources ResourceList, unallocatableResources map[int32]ResourceList, allocatableByPriority map[int32]ResourceList, allocatedByQueue map[string]ResourceList, allocatedByJobId map[string]ResourceList, evictedJobRunIds map[string]bool, keys [][]byte, ) *Node
func CreateNodeAndType ¶ added in v0.15.8
func CreateNodeAndType( id string, index uint64, executor string, name string, pool string, unschedulable bool, taints []v1.Taint, labels map[string]string, indexedTaints map[string]bool, indexedNodeLabels map[string]bool, totalResources ResourceList, unallocatableResources map[int32]ResourceList, allocatableByPriority map[int32]ResourceList, ) *Node
func FromSchedulerObjectsNode ¶ added in v0.13.0
func FromSchedulerObjectsNode(node *schedulerobjects.Node, nodeIndex uint64, indexedTaints map[string]bool, indexedNodeLabels map[string]bool, resourceListFactory *ResourceListFactory, ) (*Node, error)
func (*Node) DeepCopyNilKeys ¶ added in v0.9.0
func (*Node) FindMatchingUntoleratedTaint ¶ added in v0.4.40
func (*Node) GetExecutor ¶ added in v0.4.37
func (*Node) GetLabelValue ¶ added in v0.4.40
func (*Node) GetNodeType ¶ added in v0.13.0
func (*Node) GetNodeTypeId ¶ added in v0.4.37
func (*Node) GetTolerationsForTaints ¶ added in v0.4.40
func (node *Node) GetTolerationsForTaints() []v1.Toleration
func (*Node) GetTotalResources ¶ added in v0.9.0
func (node *Node) GetTotalResources() ResourceList
func (*Node) GetUnallocatableResources ¶ added in v0.15.5
func (node *Node) GetUnallocatableResources() map[int32]ResourceList
func (*Node) MatchNodeSelectorTerms ¶ added in v0.4.40
func (node *Node) MatchNodeSelectorTerms(nodeSelector *v1.NodeSelector) (bool, error)
func (*Node) SummaryString ¶ added in v0.15.5
type NodeFactory ¶ added in v0.13.1
type NodeFactory struct {
// contains filtered or unexported fields
}
func NewNodeFactory ¶ added in v0.13.1
func NewNodeFactory( indexedTaints []string, indexedNodeLabels []string, resourceListFactory *ResourceListFactory, ) *NodeFactory
func (*NodeFactory) CreateNodeAndType ¶ added in v0.15.8
func (f *NodeFactory) CreateNodeAndType( id string, executor string, name string, pool string, unschedulable bool, taints []v1.Taint, labels map[string]string, totalResources ResourceList, unallocatableResources map[int32]ResourceList, allocatableByPriority map[int32]ResourceList, ) *Node
func (*NodeFactory) FromSchedulerObjectsExecutors ¶ added in v0.15.5
func (f *NodeFactory) FromSchedulerObjectsExecutors(executors []*schedulerobjects.Executor, errorLogger func(string)) []*Node
func (*NodeFactory) FromSchedulerObjectsNode ¶ added in v0.13.1
func (f *NodeFactory) FromSchedulerObjectsNode(node *schedulerobjects.Node) (*Node, error)
type NodeType ¶ added in v0.9.7
type NodeType struct {
// contains filtered or unexported fields
}
NodeType represents a particular combination of taints and labels. The scheduler groups nodes by node type. When assigning pods to nodes, the scheduler only considers nodes with a NodeType for which the taints and labels match. Its fields should be immutable! Do not change these!
func NewNodeType ¶ added in v0.9.7
func (*NodeType) FindMatchingUntoleratedTaint ¶ added in v0.9.7
func (*NodeType) GetLabelValue ¶ added in v0.9.7
func (*NodeType) GetUnsetIndexedLabelValue ¶ added in v0.9.7
func (*NodeType) GetUnsetIndexedLabels ¶ added in v0.9.7
type Resource ¶ added in v0.6.0
type Resource struct { Name string RawValue int64 Value k8sResource.Quantity Scale k8sResource.Scale Type ResourceType }
type ResourceFractionList ¶ added in v0.15.4
type ResourceFractionList struct {
// contains filtered or unexported fields
}
func (ResourceFractionList) GetByName ¶ added in v0.15.4
func (rfl ResourceFractionList) GetByName(name string) (float64, error)
func (ResourceFractionList) IsEmpty ¶ added in v0.15.4
func (rfl ResourceFractionList) IsEmpty() bool
func (ResourceFractionList) Max ¶ added in v0.15.4
func (rfl ResourceFractionList) Max() float64
func (ResourceFractionList) Multiply ¶ added in v0.15.4
func (rfl ResourceFractionList) Multiply(other ResourceFractionList) ResourceFractionList
type ResourceList ¶ added in v0.4.48
type ResourceList struct {
// contains filtered or unexported fields
}
func RlMapSumValues ¶ added in v0.15.4
func RlMapSumValues(m map[string]ResourceList) ResourceList
func (ResourceList) Add ¶ added in v0.6.0
func (rl ResourceList) Add(other ResourceList) ResourceList
func (ResourceList) AllZero ¶ added in v0.6.0
func (rl ResourceList) AllZero() bool
func (ResourceList) Cap ¶ added in v0.15.4
func (rl ResourceList) Cap(cap ResourceList) ResourceList
func (ResourceList) DivideZeroOnError ¶ added in v0.15.4
func (rl ResourceList) DivideZeroOnError(other ResourceList) ResourceFractionList
Divide, return 0 on attempt to divide by 0
func (ResourceList) Equal ¶ added in v0.6.0
func (rl ResourceList) Equal(other ResourceList) bool
func (ResourceList) Exceeds ¶ added in v0.15.4
func (rl ResourceList) Exceeds(other ResourceList) bool
func (ResourceList) ExceedsAvailable ¶ added in v0.6.0
func (rl ResourceList) ExceedsAvailable(available ResourceList) (string, k8sResource.Quantity, k8sResource.Quantity, bool)
ExceedsAvailable - if any resource in this ResourceList is greater than the equivalent resource in param available, this function returns
- the name of the relevant resource
- the amount of the relevant resource in available
- the amount of the relevant resource in this ResourceList
- true
- if no resources in this ResourceList exceed available, the last return value is false. - empty resource lists are considered equivalent to all zero.
func (ResourceList) Factory ¶ added in v0.15.4
func (rl ResourceList) Factory() *ResourceListFactory
func (ResourceList) FloorAtZero ¶ added in v0.14.1
func (rl ResourceList) FloorAtZero() ResourceList
func (ResourceList) GetByName ¶ added in v0.4.48
func (rl ResourceList) GetByName(name string) (int64, error)
func (ResourceList) GetByNameZeroIfMissing ¶ added in v0.6.0
func (rl ResourceList) GetByNameZeroIfMissing(name string) int64
func (ResourceList) GetResourceByNameZeroIfMissing ¶ added in v0.15.4
func (rl ResourceList) GetResourceByNameZeroIfMissing(name string) k8sResource.Quantity
func (ResourceList) GetResources ¶ added in v0.6.0
func (rl ResourceList) GetResources() []Resource
func (ResourceList) HasNegativeValues ¶ added in v0.6.0
func (rl ResourceList) HasNegativeValues() bool
func (ResourceList) IsEmpty ¶ added in v0.6.0
func (rl ResourceList) IsEmpty() bool
func (ResourceList) Multiply ¶ added in v0.15.4
func (rl ResourceList) Multiply(multipliers ResourceFractionList) ResourceList
func (ResourceList) Negate ¶ added in v0.6.0
func (rl ResourceList) Negate() ResourceList
func (ResourceList) OfType ¶ added in v0.14.0
func (rl ResourceList) OfType(t ResourceType) ResourceList
func (ResourceList) String ¶ added in v0.6.0
func (rl ResourceList) String() string
func (ResourceList) Subtract ¶ added in v0.6.0
func (rl ResourceList) Subtract(other ResourceList) ResourceList
func (ResourceList) ToMap ¶ added in v0.13.0
func (rl ResourceList) ToMap() map[string]k8sResource.Quantity
type ResourceListFactory ¶ added in v0.4.48
type ResourceListFactory struct {
// contains filtered or unexported fields
}
func NewResourceListFactory ¶ added in v0.13.1
func NewResourceListFactory( supportedResourceTypes []configuration.ResourceType, floatingResourceTypes []configuration.FloatingResourceConfig, ) (*ResourceListFactory, error)
func (*ResourceListFactory) FromJobResourceListFailOnUnknown ¶ added in v0.6.0
func (factory *ResourceListFactory) FromJobResourceListFailOnUnknown(resources map[string]k8sResource.Quantity) (ResourceList, error)
Fail on unknown resources, round up.
func (*ResourceListFactory) FromJobResourceListIgnoreUnknown ¶ added in v0.6.0
func (factory *ResourceListFactory) FromJobResourceListIgnoreUnknown(resources map[string]k8sResource.Quantity) ResourceList
Ignore unknown resources, round up.
func (*ResourceListFactory) FromNodeProto ¶ added in v0.4.48
func (factory *ResourceListFactory) FromNodeProto(resources map[string]k8sResource.Quantity) ResourceList
Ignore unknown resources, round down.
func (*ResourceListFactory) GetScale ¶ added in v0.6.0
func (factory *ResourceListFactory) GetScale(resourceTypeName string) (k8sResource.Scale, error)
func (*ResourceListFactory) MakeAllMax ¶ added in v0.15.8
func (factory *ResourceListFactory) MakeAllMax() ResourceList
func (*ResourceListFactory) MakeAllZero ¶ added in v0.6.0
func (factory *ResourceListFactory) MakeAllZero() ResourceList
func (*ResourceListFactory) MakeResourceFractionList ¶ added in v0.15.4
func (factory *ResourceListFactory) MakeResourceFractionList(m map[string]float64, defaultValue float64) ResourceFractionList
func (*ResourceListFactory) SummaryString ¶ added in v0.4.48
func (factory *ResourceListFactory) SummaryString() string
type ResourceType ¶ added in v0.14.0
type ResourceType int
const ( // A normal k8s resource, such as "memory" or "nvidia.com/gpu" Kubernetes ResourceType = iota // A floating resource that is not tied to a Kubernetes cluster or node, // e.g. "external-storage-connections". Floating = iota )