internaltypes

package
v0.15.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2024 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
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 QuantityToInt64RoundDown(q resource.Quantity, scale resource.Scale) int64

func QuantityToInt64RoundUp added in v0.4.48

func QuantityToInt64RoundUp(q resource.Quantity, scale resource.Scale) int64

func UnschedulableTaint added in v0.13.0

func UnschedulableTaint() v1.Taint

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,
	allocatableByPriority map[int32]ResourceList,
	allocatedByQueue map[string]ResourceList,
	allocatedByJobId map[string]ResourceList,
	evictedJobRunIds map[string]bool,
	keys [][]byte,
) *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 *Node) DeepCopyNilKeys() *Node

func (*Node) FindMatchingUntoleratedTaint added in v0.4.40

func (node *Node) FindMatchingUntoleratedTaint(tolerations ...[]v1.Toleration) (v1.Taint, bool)

func (*Node) GetExecutor added in v0.4.37

func (node *Node) GetExecutor() string

func (*Node) GetId added in v0.4.37

func (node *Node) GetId() string

func (*Node) GetIndex added in v0.4.37

func (node *Node) GetIndex() uint64

func (*Node) GetLabelValue added in v0.4.40

func (node *Node) GetLabelValue(key string) (string, bool)

func (*Node) GetLabels added in v0.4.40

func (node *Node) GetLabels() map[string]string

func (*Node) GetName added in v0.4.37

func (node *Node) GetName() string

func (*Node) GetNodeType added in v0.13.0

func (node *Node) GetNodeType() *NodeType

func (*Node) GetNodeTypeId added in v0.4.37

func (node *Node) GetNodeTypeId() uint64

func (*Node) GetPool added in v0.9.0

func (node *Node) GetPool() string

func (*Node) GetTaints added in v0.4.40

func (node *Node) GetTaints() []v1.Taint

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) MatchNodeSelectorTerms added in v0.4.40

func (node *Node) MatchNodeSelectorTerms(nodeSelector *v1.NodeSelector) (bool, error)

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) 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 NewNodeType(taints []v1.Taint, labels map[string]string, indexedTaints map[string]bool, indexedLabels map[string]bool) *NodeType

func (*NodeType) FindMatchingUntoleratedTaint added in v0.9.7

func (m *NodeType) FindMatchingUntoleratedTaint(tolerations ...[]v1.Toleration) (v1.Taint, bool)

func (*NodeType) GetId added in v0.9.7

func (m *NodeType) GetId() uint64

func (*NodeType) GetLabelValue added in v0.9.7

func (m *NodeType) GetLabelValue(key string) (string, bool)

func (*NodeType) GetLabels added in v0.9.7

func (m *NodeType) GetLabels() map[string]string

func (*NodeType) GetTaints added in v0.9.7

func (m *NodeType) GetTaints() []v1.Taint

func (*NodeType) GetUnsetIndexedLabelValue added in v0.9.7

func (m *NodeType) GetUnsetIndexedLabelValue(key string) (string, bool)

func (*NodeType) GetUnsetIndexedLabels added in v0.9.7

func (m *NodeType) GetUnsetIndexedLabels() map[string]string

type Resource added in v0.6.0

type Resource struct {
	Name  string
	Value int64
	Scale k8sResource.Scale
	Type  ResourceType
}

type ResourceList added in v0.4.48

type ResourceList struct {
	// contains filtered or unexported fields
}

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) Equal added in v0.6.0

func (rl ResourceList) Equal(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) 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) 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) 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) MakeAllZero added in v0.6.0

func (factory *ResourceListFactory) MakeAllZero() ResourceList

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
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL