schedulerobjects

package
v0.3.79-rc-e061b91 Latest Latest
Warning

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

Go to latest
Published: Jul 6, 2023 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// When checking if a pod fits on a node, this score indicates how well the pods fits.
	// However, all nodes are currently given the same score.
	SchedulableScore                                 = 0
	SchedulableBestScore                             = SchedulableScore
	PodRequirementsNotMetReasonUnmatchedNodeSelector = "node does not match pod NodeAffinity"
	PodRequirementsNotMetReasonUnknown               = "unknown"
	PodRequirementsNotMetReasonInsufficientResources = "insufficient resources available"
)

Variables

View Source
var (
	ErrInvalidLengthReporting        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowReporting          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupReporting = fmt.Errorf("proto: unexpected end of group")
)
View Source
var (
	ErrInvalidLengthSchedulerobjects        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowSchedulerobjects          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupSchedulerobjects = fmt.Errorf("proto: unexpected end of group")
)
View Source
var JobRunState_name = map[int32]string{
	0: "UNKNOWN",
	1: "PENDING",
	2: "RUNNING",
	3: "SUCCEEDED",
	4: "FAILED",
}
View Source
var JobRunState_value = map[string]int32{
	"UNKNOWN":   0,
	"PENDING":   1,
	"RUNNING":   2,
	"SUCCEEDED": 3,
	"FAILED":    4,
}

Functions

func RegisterSchedulerReportingServer

func RegisterSchedulerReportingServer(s *grpc.Server, srv SchedulerReportingServer)

func V1ResourceListFromResourceList added in v0.3.47

func V1ResourceListFromResourceList(rl ResourceList) v1.ResourceList

Types

type AllocatableByPriorityAndResourceType

type AllocatableByPriorityAndResourceType QuantityByTAndResourceType[int32]

AllocatableByPriorityAndResourceType accounts for resources that can be allocated to pods of a given priority. E.g., AllocatableByPriorityAndResourceType[5]["cpu"] is the amount of CPU available to pods with priority 5, where alloctable resources = unused resources + resources allocated to lower-priority pods.

func NewAllocatableByPriorityAndResourceType

func NewAllocatableByPriorityAndResourceType(priorities []int32, rl ResourceList) AllocatableByPriorityAndResourceType

func (AllocatableByPriorityAndResourceType) DeepCopy

func (AllocatableByPriorityAndResourceType) Get

func (allocatableByPriorityAndResourceType AllocatableByPriorityAndResourceType) Get(priority int32, resourceType string) resource.Quantity

func (AllocatableByPriorityAndResourceType) MarkAllocatable

func (m AllocatableByPriorityAndResourceType) MarkAllocatable(p int32, rs ResourceList)

MarkAllocatable indicates resources have been released by pods of priority p, thus increasing the resources allocatable to pods of priority p or lower.

func (AllocatableByPriorityAndResourceType) MarkAllocatableV1ResourceList added in v0.3.70

func (m AllocatableByPriorityAndResourceType) MarkAllocatableV1ResourceList(p int32, rs v1.ResourceList)

func (AllocatableByPriorityAndResourceType) MarkAllocated

MarkAllocated indicates resources have been allocated to pods of priority p, hence reducing the resources allocatable to pods of priority p or lower.

func (AllocatableByPriorityAndResourceType) MarkAllocatedV1ResourceList added in v0.3.70

func (m AllocatableByPriorityAndResourceType) MarkAllocatedV1ResourceList(p int32, rs v1.ResourceList)

type AllocatedByPriorityAndResourceType

type AllocatedByPriorityAndResourceType QuantityByTAndResourceType[int32]

AllocatedByPriorityAndResourceType accounts for resources allocated to pods of a given priority or lower. E.g., AllocatedByPriorityAndResourceType[5]["cpu"] is the amount of CPU allocated to pods with priority 5 or lower.

func NewAllocatedByPriorityAndResourceType

func NewAllocatedByPriorityAndResourceType(priorities []int32) AllocatedByPriorityAndResourceType

func (AllocatedByPriorityAndResourceType) Get

func (assignedByPriorityAndResourceType AllocatedByPriorityAndResourceType) Get(priority int32, resourceType string) resource.Quantity

func (AllocatedByPriorityAndResourceType) MarkAllocatable

func (m AllocatedByPriorityAndResourceType) MarkAllocatable(p int32, rs ResourceList)

MarkAllocatable reduces the resources allocated to pods of priority p or lower.

func (AllocatedByPriorityAndResourceType) MarkAllocated

func (m AllocatedByPriorityAndResourceType) MarkAllocated(p int32, rs ResourceList)

MarkAllocated increases the resources allocated to pods of priority p or lower.

type ClusterResourceUsageReport

type ClusterResourceUsageReport struct {
	Pool             string                                `protobuf:"bytes,1,opt,name=pool,proto3" json:"pool,omitempty"`
	Created          time.Time                             `protobuf:"bytes,2,opt,name=created,proto3,stdtime" json:"created"`
	ResourcesByQueue map[string]*QueueClusterResourceUsage `` /* 173-byte string literal not displayed */
}

A collection of QueueClusterResourceUsage This is only needed to brige the gap between the redis based scheduler and the new scheduler.

func (*ClusterResourceUsageReport) Descriptor

func (*ClusterResourceUsageReport) Descriptor() ([]byte, []int)

func (*ClusterResourceUsageReport) GetCreated

func (m *ClusterResourceUsageReport) GetCreated() time.Time

func (*ClusterResourceUsageReport) GetPool

func (m *ClusterResourceUsageReport) GetPool() string

func (*ClusterResourceUsageReport) GetResourcesByQueue

func (m *ClusterResourceUsageReport) GetResourcesByQueue() map[string]*QueueClusterResourceUsage

func (*ClusterResourceUsageReport) Marshal

func (m *ClusterResourceUsageReport) Marshal() (dAtA []byte, err error)

func (*ClusterResourceUsageReport) MarshalTo

func (m *ClusterResourceUsageReport) MarshalTo(dAtA []byte) (int, error)

func (*ClusterResourceUsageReport) MarshalToSizedBuffer

func (m *ClusterResourceUsageReport) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ClusterResourceUsageReport) ProtoMessage

func (*ClusterResourceUsageReport) ProtoMessage()

func (*ClusterResourceUsageReport) Reset

func (m *ClusterResourceUsageReport) Reset()

func (*ClusterResourceUsageReport) Size

func (m *ClusterResourceUsageReport) Size() (n int)

func (*ClusterResourceUsageReport) String

func (m *ClusterResourceUsageReport) String() string

func (*ClusterResourceUsageReport) Unmarshal

func (m *ClusterResourceUsageReport) Unmarshal(dAtA []byte) error

func (*ClusterResourceUsageReport) XXX_DiscardUnknown

func (m *ClusterResourceUsageReport) XXX_DiscardUnknown()

func (*ClusterResourceUsageReport) XXX_Marshal

func (m *ClusterResourceUsageReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ClusterResourceUsageReport) XXX_Merge

func (m *ClusterResourceUsageReport) XXX_Merge(src proto.Message)

func (*ClusterResourceUsageReport) XXX_Size

func (m *ClusterResourceUsageReport) XXX_Size() int

func (*ClusterResourceUsageReport) XXX_Unmarshal

func (m *ClusterResourceUsageReport) XXX_Unmarshal(b []byte) error

type Executor

type Executor struct {
	// Name of the executor.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Pool that the executor belongs to.
	Pool string `protobuf:"bytes,2,opt,name=pool,proto3" json:"pool,omitempty"`
	// The nodes available for scheduling via this executor.
	Nodes []*Node `protobuf:"bytes,3,rep,name=nodes,proto3" json:"nodes,omitempty"`
	// Minimum resources which a job must request in order to be considered for scheduling on this executor.
	MinimumJobSize ResourceList `protobuf:"bytes,4,opt,name=minimumJobSize,proto3" json:"minimumJobSize"`
	// Last time the executor provided a heartbeat to say it was still accepting job.
	LastUpdateTime time.Time `protobuf:"bytes,5,opt,name=lastUpdateTime,proto3,stdtime" json:"lastUpdateTime"`
	// Jobs that are owned by the cluster but are not assigned to any node.
	UnassignedJobRuns []string `protobuf:"bytes,9,rep,name=unassigned_job_runs,json=unassignedJobRuns,proto3" json:"unassignedJobRuns,omitempty"`
}

Executor represents an executor running on a worker cluster

func (*Executor) AllRuns

func (m *Executor) AllRuns() ([]uuid.UUID, error)

func (*Executor) Descriptor

func (*Executor) Descriptor() ([]byte, []int)

func (*Executor) GetId

func (m *Executor) GetId() string

func (*Executor) GetLastUpdateTime

func (m *Executor) GetLastUpdateTime() time.Time

func (*Executor) GetMinimumJobSize

func (m *Executor) GetMinimumJobSize() ResourceList

func (*Executor) GetNodes

func (m *Executor) GetNodes() []*Node

func (*Executor) GetPool

func (m *Executor) GetPool() string

func (*Executor) GetUnassignedJobRuns

func (m *Executor) GetUnassignedJobRuns() []string

func (*Executor) Marshal

func (m *Executor) Marshal() (dAtA []byte, err error)

func (*Executor) MarshalTo

func (m *Executor) MarshalTo(dAtA []byte) (int, error)

func (*Executor) MarshalToSizedBuffer

func (m *Executor) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Executor) ProtoMessage

func (*Executor) ProtoMessage()

func (*Executor) Reset

func (m *Executor) Reset()

func (*Executor) Size

func (m *Executor) Size() (n int)

func (*Executor) String

func (m *Executor) String() string

func (*Executor) Unmarshal

func (m *Executor) Unmarshal(dAtA []byte) error

func (*Executor) XXX_DiscardUnknown

func (m *Executor) XXX_DiscardUnknown()

func (*Executor) XXX_Marshal

func (m *Executor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Executor) XXX_Merge

func (m *Executor) XXX_Merge(src proto.Message)

func (*Executor) XXX_Size

func (m *Executor) XXX_Size() int

func (*Executor) XXX_Unmarshal

func (m *Executor) XXX_Unmarshal(b []byte) error

type InsufficientResources

type InsufficientResources struct {
	Resource  string
	Required  resource.Quantity
	Available resource.Quantity
}

func (*InsufficientResources) String

func (err *InsufficientResources) String() string

func (*InsufficientResources) Sum64 added in v0.3.70

func (r *InsufficientResources) Sum64() uint64

type JobReport

type JobReport struct {
	Report string `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"`
}

func (*JobReport) Descriptor

func (*JobReport) Descriptor() ([]byte, []int)

func (*JobReport) GetReport

func (m *JobReport) GetReport() string

func (*JobReport) Marshal

func (m *JobReport) Marshal() (dAtA []byte, err error)

func (*JobReport) MarshalTo

func (m *JobReport) MarshalTo(dAtA []byte) (int, error)

func (*JobReport) MarshalToSizedBuffer

func (m *JobReport) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*JobReport) ProtoMessage

func (*JobReport) ProtoMessage()

func (*JobReport) Reset

func (m *JobReport) Reset()

func (*JobReport) Size

func (m *JobReport) Size() (n int)

func (*JobReport) String

func (m *JobReport) String() string

func (*JobReport) Unmarshal

func (m *JobReport) Unmarshal(dAtA []byte) error

func (*JobReport) XXX_DiscardUnknown

func (m *JobReport) XXX_DiscardUnknown()

func (*JobReport) XXX_Marshal

func (m *JobReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*JobReport) XXX_Merge

func (m *JobReport) XXX_Merge(src proto.Message)

func (*JobReport) XXX_Size

func (m *JobReport) XXX_Size() int

func (*JobReport) XXX_Unmarshal

func (m *JobReport) XXX_Unmarshal(b []byte) error

type JobReportRequest added in v0.3.71

type JobReportRequest struct {
	JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"`
}

func (*JobReportRequest) Descriptor added in v0.3.71

func (*JobReportRequest) Descriptor() ([]byte, []int)

func (*JobReportRequest) GetJobId added in v0.3.71

func (m *JobReportRequest) GetJobId() string

func (*JobReportRequest) Marshal added in v0.3.71

func (m *JobReportRequest) Marshal() (dAtA []byte, err error)

func (*JobReportRequest) MarshalTo added in v0.3.71

func (m *JobReportRequest) MarshalTo(dAtA []byte) (int, error)

func (*JobReportRequest) MarshalToSizedBuffer added in v0.3.71

func (m *JobReportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*JobReportRequest) ProtoMessage added in v0.3.71

func (*JobReportRequest) ProtoMessage()

func (*JobReportRequest) Reset added in v0.3.71

func (m *JobReportRequest) Reset()

func (*JobReportRequest) Size added in v0.3.71

func (m *JobReportRequest) Size() (n int)

func (*JobReportRequest) String added in v0.3.71

func (m *JobReportRequest) String() string

func (*JobReportRequest) Unmarshal added in v0.3.71

func (m *JobReportRequest) Unmarshal(dAtA []byte) error

func (*JobReportRequest) XXX_DiscardUnknown added in v0.3.71

func (m *JobReportRequest) XXX_DiscardUnknown()

func (*JobReportRequest) XXX_Marshal added in v0.3.71

func (m *JobReportRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*JobReportRequest) XXX_Merge added in v0.3.71

func (m *JobReportRequest) XXX_Merge(src proto.Message)

func (*JobReportRequest) XXX_Size added in v0.3.71

func (m *JobReportRequest) XXX_Size() int

func (*JobReportRequest) XXX_Unmarshal added in v0.3.71

func (m *JobReportRequest) XXX_Unmarshal(b []byte) error

type JobRunState added in v0.3.49

type JobRunState int32
const (
	JobRunState_UNKNOWN   JobRunState = 0
	JobRunState_PENDING   JobRunState = 1
	JobRunState_RUNNING   JobRunState = 2
	JobRunState_SUCCEEDED JobRunState = 3
	JobRunState_FAILED    JobRunState = 4
)

func (JobRunState) EnumDescriptor added in v0.3.49

func (JobRunState) EnumDescriptor() ([]byte, []int)

func (JobRunState) String added in v0.3.49

func (x JobRunState) String() string

type JobSchedulingInfo

type JobSchedulingInfo struct {
	Lifetime          uint32    `protobuf:"varint,1,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
	AtMostOnce        bool      `protobuf:"varint,2,opt,name=at_most_once,json=atMostOnce,proto3" json:"atMostOnce,omitempty"`
	Preemptible       bool      `protobuf:"varint,3,opt,name=preemptible,proto3" json:"preemptible,omitempty"`
	ConcurrencySafe   bool      `protobuf:"varint,4,opt,name=concurrency_safe,json=concurrencySafe,proto3" json:"concurrencySafe,omitempty"`
	PriorityClassName string    `protobuf:"bytes,6,opt,name=priority_class_name,json=priorityClassName,proto3" json:"priorityClassName,omitempty"`
	SubmitTime        time.Time `protobuf:"bytes,7,opt,name=submit_time,json=submitTime,proto3,stdtime" json:"submitTime"`
	// In-queue priority. I.e., not the priority class priority.
	Priority uint32 `protobuf:"varint,8,opt,name=priority,proto3" json:"priority,omitempty"`
	// Kubernetes objects that make up this job and their respective scheduling requirements.
	ObjectRequirements []*ObjectRequirements `protobuf:"bytes,5,rep,name=object_requirements,json=objectRequirements,proto3" json:"objectRequirements,omitempty"`
	Version            uint32                `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
}

Minimal job representation used by the scheduler.

func (*JobSchedulingInfo) Descriptor

func (*JobSchedulingInfo) Descriptor() ([]byte, []int)

func (*JobSchedulingInfo) GetAtMostOnce

func (m *JobSchedulingInfo) GetAtMostOnce() bool

func (*JobSchedulingInfo) GetConcurrencySafe

func (m *JobSchedulingInfo) GetConcurrencySafe() bool

func (*JobSchedulingInfo) GetLifetime

func (m *JobSchedulingInfo) GetLifetime() uint32

func (*JobSchedulingInfo) GetObjectRequirements

func (m *JobSchedulingInfo) GetObjectRequirements() []*ObjectRequirements

func (*JobSchedulingInfo) GetPodRequirements added in v0.3.78

func (info *JobSchedulingInfo) GetPodRequirements() *PodRequirements

func (*JobSchedulingInfo) GetPreemptible

func (m *JobSchedulingInfo) GetPreemptible() bool

func (*JobSchedulingInfo) GetPriority added in v0.3.50

func (m *JobSchedulingInfo) GetPriority() uint32

func (*JobSchedulingInfo) GetPriorityClassName added in v0.3.50

func (m *JobSchedulingInfo) GetPriorityClassName() string

func (*JobSchedulingInfo) GetSubmitTime added in v0.3.50

func (m *JobSchedulingInfo) GetSubmitTime() time.Time

func (*JobSchedulingInfo) GetVersion added in v0.3.63

func (m *JobSchedulingInfo) GetVersion() uint32

func (*JobSchedulingInfo) Marshal

func (m *JobSchedulingInfo) Marshal() (dAtA []byte, err error)

func (*JobSchedulingInfo) MarshalTo

func (m *JobSchedulingInfo) MarshalTo(dAtA []byte) (int, error)

func (*JobSchedulingInfo) MarshalToSizedBuffer

func (m *JobSchedulingInfo) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*JobSchedulingInfo) ProtoMessage

func (*JobSchedulingInfo) ProtoMessage()

func (*JobSchedulingInfo) Reset

func (m *JobSchedulingInfo) Reset()

func (*JobSchedulingInfo) Size

func (m *JobSchedulingInfo) Size() (n int)

func (*JobSchedulingInfo) String

func (m *JobSchedulingInfo) String() string

func (*JobSchedulingInfo) Unmarshal

func (m *JobSchedulingInfo) Unmarshal(dAtA []byte) error

func (*JobSchedulingInfo) XXX_DiscardUnknown

func (m *JobSchedulingInfo) XXX_DiscardUnknown()

func (*JobSchedulingInfo) XXX_Marshal

func (m *JobSchedulingInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*JobSchedulingInfo) XXX_Merge

func (m *JobSchedulingInfo) XXX_Merge(src proto.Message)

func (*JobSchedulingInfo) XXX_Size

func (m *JobSchedulingInfo) XXX_Size() int

func (*JobSchedulingInfo) XXX_Unmarshal

func (m *JobSchedulingInfo) XXX_Unmarshal(b []byte) error

type MissingLabel

type MissingLabel struct {
	Label string
}

func (*MissingLabel) String

func (r *MissingLabel) String() string

func (*MissingLabel) Sum64 added in v0.3.70

func (r *MissingLabel) Sum64() uint64

type MostRecentForJob added in v0.3.71

type MostRecentForJob struct {
	JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId,omitempty"`
}

func (*MostRecentForJob) Descriptor added in v0.3.71

func (*MostRecentForJob) Descriptor() ([]byte, []int)

func (*MostRecentForJob) GetJobId added in v0.3.71

func (m *MostRecentForJob) GetJobId() string

func (*MostRecentForJob) Marshal added in v0.3.71

func (m *MostRecentForJob) Marshal() (dAtA []byte, err error)

func (*MostRecentForJob) MarshalTo added in v0.3.71

func (m *MostRecentForJob) MarshalTo(dAtA []byte) (int, error)

func (*MostRecentForJob) MarshalToSizedBuffer added in v0.3.71

func (m *MostRecentForJob) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MostRecentForJob) ProtoMessage added in v0.3.71

func (*MostRecentForJob) ProtoMessage()

func (*MostRecentForJob) Reset added in v0.3.71

func (m *MostRecentForJob) Reset()

func (*MostRecentForJob) Size added in v0.3.71

func (m *MostRecentForJob) Size() (n int)

func (*MostRecentForJob) String added in v0.3.71

func (m *MostRecentForJob) String() string

func (*MostRecentForJob) Unmarshal added in v0.3.71

func (m *MostRecentForJob) Unmarshal(dAtA []byte) error

func (*MostRecentForJob) XXX_DiscardUnknown added in v0.3.71

func (m *MostRecentForJob) XXX_DiscardUnknown()

func (*MostRecentForJob) XXX_Marshal added in v0.3.71

func (m *MostRecentForJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MostRecentForJob) XXX_Merge added in v0.3.71

func (m *MostRecentForJob) XXX_Merge(src proto.Message)

func (*MostRecentForJob) XXX_Size added in v0.3.71

func (m *MostRecentForJob) XXX_Size() int

func (*MostRecentForJob) XXX_Unmarshal added in v0.3.71

func (m *MostRecentForJob) XXX_Unmarshal(b []byte) error

type MostRecentForQueue added in v0.3.71

type MostRecentForQueue struct {
	QueueName string `protobuf:"bytes,1,opt,name=queue_name,json=queueName,proto3" json:"queueName,omitempty"`
}

func (*MostRecentForQueue) Descriptor added in v0.3.71

func (*MostRecentForQueue) Descriptor() ([]byte, []int)

func (*MostRecentForQueue) GetQueueName added in v0.3.71

func (m *MostRecentForQueue) GetQueueName() string

func (*MostRecentForQueue) Marshal added in v0.3.71

func (m *MostRecentForQueue) Marshal() (dAtA []byte, err error)

func (*MostRecentForQueue) MarshalTo added in v0.3.71

func (m *MostRecentForQueue) MarshalTo(dAtA []byte) (int, error)

func (*MostRecentForQueue) MarshalToSizedBuffer added in v0.3.71

func (m *MostRecentForQueue) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*MostRecentForQueue) ProtoMessage added in v0.3.71

func (*MostRecentForQueue) ProtoMessage()

func (*MostRecentForQueue) Reset added in v0.3.71

func (m *MostRecentForQueue) Reset()

func (*MostRecentForQueue) Size added in v0.3.71

func (m *MostRecentForQueue) Size() (n int)

func (*MostRecentForQueue) String added in v0.3.71

func (m *MostRecentForQueue) String() string

func (*MostRecentForQueue) Unmarshal added in v0.3.71

func (m *MostRecentForQueue) Unmarshal(dAtA []byte) error

func (*MostRecentForQueue) XXX_DiscardUnknown added in v0.3.71

func (m *MostRecentForQueue) XXX_DiscardUnknown()

func (*MostRecentForQueue) XXX_Marshal added in v0.3.71

func (m *MostRecentForQueue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*MostRecentForQueue) XXX_Merge added in v0.3.71

func (m *MostRecentForQueue) XXX_Merge(src proto.Message)

func (*MostRecentForQueue) XXX_Size added in v0.3.71

func (m *MostRecentForQueue) XXX_Size() int

func (*MostRecentForQueue) XXX_Unmarshal added in v0.3.71

func (m *MostRecentForQueue) XXX_Unmarshal(b []byte) error

type Node

type Node struct {
	// Id associated with the node. Must be unique across all clusters.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Kubernetes node name. Not guaranteed to be unique across clusters.
	Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"`
	// Keys by which nodes are sorted in the nodeDb.
	NodeDbKeys [][]byte `protobuf:"bytes,18,rep,name=nodeDbKeys,proto3" json:"nodeDbKeys,omitempty"`
	// Time at which this node was last updated.
	// Used to garbage collect nodes that have been removed.
	LastSeen time.Time `protobuf:"bytes,2,opt,name=last_seen,json=lastSeen,proto3,stdtime" json:"lastSeen"`
	// The node type captures scheduling requirements of the node;
	// it's computed from the taints and labels associated with the node.
	// This field is set automatically by the NodeDb on inserting the node.
	NodeType *NodeType `protobuf:"bytes,3,opt,name=node_type,json=nodeType,proto3" json:"nodeType,omitempty"`
	// We store NodeType.id here to simplify indexing.
	// This field is set automatically by the NodeDb on inserting the node.
	NodeTypeId uint64 `protobuf:"varint,4,opt,name=node_type_id,json=nodeTypeId,proto3" json:"nodeTypeId,omitempty"`
	// Kubernetes taints.
	Taints []v1.Taint `protobuf:"bytes,5,rep,name=taints,proto3" json:"taints"`
	// Kubernetes labels.
	Labels map[string]string `` /* 153-byte string literal not displayed */
	// Total resources on this node.
	TotalResources ResourceList `protobuf:"bytes,7,opt,name=total_resources,json=totalResources,proto3" json:"totalResources"`
	// Resources available for jobs of a given priority.
	// E.g., AvailableResources[5]["cpu"] is the amount of CPU available to jobs with priority 5,
	// where available resources = unused resources + resources assigned to lower-priority jobs.
	AllocatableByPriorityAndResource map[int32]ResourceList `` /* 238-byte string literal not displayed */
	// Ids of the job runs currently assigned to this node and their current state.
	StateByJobRunId map[string]JobRunState `` /* 221-byte string literal not displayed */
	// Resource allocated to jobs on this node.
	AllocatedByJobId map[string]ResourceList `` /* 189-byte string literal not displayed */
	// Resource allocated to queues on this node.
	AllocatedByQueue map[string]ResourceList `` /* 188-byte string literal not displayed */
	// Ids of all runs evicted on this node.
	EvictedJobRunIds map[string]bool `` /* 190-byte string literal not displayed */
	// Resource allocated to non-Armada pods on this node.
	NonArmadaAllocatedResources map[int32]ResourceList `` /* 223-byte string literal not displayed */
	// If true, no new jobs should be scheduled onto this node, e.g., because the node has been cordoned.
	Unschedulable bool `protobuf:"varint,15,opt,name=unschedulable,proto3" json:"unschedulable,omitempty"`
	// This should only be used for metrics
	// An aggregated real usage of jobs by queue
	ResourceUsageByQueue map[string]*ResourceList `` /* 211-byte string literal not displayed */
	// This should only be used for metrics
	// This is the type the node should be reported as. It is simple a label to categorise the group the node belongs to
	ReportingNodeType string `protobuf:"bytes,17,opt,name=reporting_node_type,json=reportingNodeType,proto3" json:"reportingNodeType,omitempty"`
}

Node represents a node in a worker cluster.

func (*Node) AvailableArmadaResource added in v0.3.66

func (node *Node) AvailableArmadaResource() ResourceList

func (*Node) AvailableQuantityByPriorityAndResource

func (node *Node) AvailableQuantityByPriorityAndResource(priority int32, resourceType string) resource.Quantity

func (*Node) CompactString added in v0.3.50

func (node *Node) CompactString() string

func (*Node) DeepCopy

func (node *Node) DeepCopy() *Node

func (*Node) Descriptor

func (*Node) Descriptor() ([]byte, []int)

func (*Node) GetAllocatableByPriorityAndResource

func (m *Node) GetAllocatableByPriorityAndResource() map[int32]ResourceList

func (*Node) GetAllocatedByJobId added in v0.3.47

func (m *Node) GetAllocatedByJobId() map[string]ResourceList

func (*Node) GetAllocatedByQueue added in v0.3.50

func (m *Node) GetAllocatedByQueue() map[string]ResourceList

func (*Node) GetEvictedJobRunIds added in v0.3.54

func (m *Node) GetEvictedJobRunIds() map[string]bool

func (*Node) GetId

func (m *Node) GetId() string

func (*Node) GetLabels

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

func (*Node) GetLastSeen

func (m *Node) GetLastSeen() time.Time

func (*Node) GetName added in v0.3.50

func (m *Node) GetName() string

func (*Node) GetNodeDbKeys added in v0.3.71

func (m *Node) GetNodeDbKeys() [][]byte

func (*Node) GetNodeType

func (m *Node) GetNodeType() *NodeType

func (*Node) GetNodeTypeId

func (m *Node) GetNodeTypeId() uint64

func (*Node) GetNonArmadaAllocatedResources added in v0.3.50

func (m *Node) GetNonArmadaAllocatedResources() map[int32]ResourceList

func (*Node) GetReportingNodeType added in v0.3.66

func (m *Node) GetReportingNodeType() string

func (*Node) GetResourceUsageByQueue added in v0.3.66

func (m *Node) GetResourceUsageByQueue() map[string]*ResourceList

func (*Node) GetStateByJobRunId added in v0.3.54

func (m *Node) GetStateByJobRunId() map[string]JobRunState

func (*Node) GetTaints

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

func (*Node) GetTotalResources

func (m *Node) GetTotalResources() ResourceList

func (*Node) GetUnschedulable added in v0.3.65

func (m *Node) GetUnschedulable() bool

func (*Node) Marshal

func (m *Node) Marshal() (dAtA []byte, err error)

func (*Node) MarshalTo

func (m *Node) MarshalTo(dAtA []byte) (int, error)

func (*Node) MarshalToSizedBuffer

func (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Node) ProtoMessage

func (*Node) ProtoMessage()

func (*Node) Reset

func (m *Node) Reset()

func (*Node) Size

func (m *Node) Size() (n int)

func (*Node) String

func (m *Node) String() string

func (*Node) Unmarshal

func (m *Node) Unmarshal(dAtA []byte) error

func (*Node) XXX_DiscardUnknown

func (m *Node) XXX_DiscardUnknown()

func (*Node) XXX_Marshal

func (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Node) XXX_Merge

func (m *Node) XXX_Merge(src proto.Message)

func (*Node) XXX_Size

func (m *Node) XXX_Size() int

func (*Node) XXX_Unmarshal

func (m *Node) XXX_Unmarshal(b []byte) error

type NodeType

type NodeType struct {
	// Unique identifier. Used for map lookup.
	Id uint64 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"`
	// Kubernetes taints.
	// To reduce the number of distinct node types,
	// may contain only a subset of the taints of the node the node type is created from.
	Taints []v1.Taint `protobuf:"bytes,2,rep,name=taints,proto3" json:"taints"`
	// Kubernetes labels.
	// To reduce the number of distinct node types,
	// may contain only a subset of the labels of the node the node type is created from.
	Labels map[string]string `` /* 153-byte string literal not displayed */
	// Well-known labels not set by this node type.
	// Used to filter out nodes when looking for nodes for a pod
	// that requires at least one well-known label to be set.
	UnsetIndexedLabels map[string]string `` /* 177-byte string literal not displayed */
}

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.

func NewNodeType

func NewNodeType(taints []v1.Taint, labels map[string]string, indexedTaints map[string]interface{}, indexedLabels map[string]interface{}) *NodeType

func (*NodeType) DeepCopy

func (nodeType *NodeType) DeepCopy() *NodeType

func (*NodeType) Descriptor

func (*NodeType) Descriptor() ([]byte, []int)

func (*NodeType) GetId

func (m *NodeType) GetId() uint64

func (*NodeType) GetLabels

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

func (*NodeType) GetTaints

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

func (*NodeType) GetUnsetIndexedLabels

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

func (*NodeType) Marshal

func (m *NodeType) Marshal() (dAtA []byte, err error)

func (*NodeType) MarshalTo

func (m *NodeType) MarshalTo(dAtA []byte) (int, error)

func (*NodeType) MarshalToSizedBuffer

func (m *NodeType) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*NodeType) PodRequirementsMet

func (nodeType *NodeType) PodRequirementsMet(req *PodRequirements) (bool, PodRequirementsNotMetReason, error)

PodRequirementsMet determines whether a pod can be scheduled on nodes of this NodeType. If the requirements are not met, it returns the reason for why. If the requirements can't be parsed, an error is returned.

func (*NodeType) ProtoMessage

func (*NodeType) ProtoMessage()

func (*NodeType) Reset

func (m *NodeType) Reset()

func (*NodeType) Size

func (m *NodeType) Size() (n int)

func (*NodeType) String

func (m *NodeType) String() string

func (*NodeType) Unmarshal

func (m *NodeType) Unmarshal(dAtA []byte) error

func (*NodeType) XXX_DiscardUnknown

func (m *NodeType) XXX_DiscardUnknown()

func (*NodeType) XXX_Marshal

func (m *NodeType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*NodeType) XXX_Merge

func (m *NodeType) XXX_Merge(src proto.Message)

func (*NodeType) XXX_Size

func (m *NodeType) XXX_Size() int

func (*NodeType) XXX_Unmarshal

func (m *NodeType) XXX_Unmarshal(b []byte) error

type ObjectRequirements

type ObjectRequirements struct {
	// Types that are valid to be assigned to Requirements:
	//	*ObjectRequirements_PodRequirements
	Requirements isObjectRequirements_Requirements `protobuf_oneof:"requirements"`
}

Message capturing the scheduling requirements of a particular Kubernetes object.

func (*ObjectRequirements) Descriptor

func (*ObjectRequirements) Descriptor() ([]byte, []int)

func (*ObjectRequirements) GetPodRequirements

func (m *ObjectRequirements) GetPodRequirements() *PodRequirements

func (*ObjectRequirements) GetRequirements

func (m *ObjectRequirements) GetRequirements() isObjectRequirements_Requirements

func (*ObjectRequirements) Marshal

func (m *ObjectRequirements) Marshal() (dAtA []byte, err error)

func (*ObjectRequirements) MarshalTo

func (m *ObjectRequirements) MarshalTo(dAtA []byte) (int, error)

func (*ObjectRequirements) MarshalToSizedBuffer

func (m *ObjectRequirements) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ObjectRequirements) ProtoMessage

func (*ObjectRequirements) ProtoMessage()

func (*ObjectRequirements) Reset

func (m *ObjectRequirements) Reset()

func (*ObjectRequirements) Size

func (m *ObjectRequirements) Size() (n int)

func (*ObjectRequirements) String

func (m *ObjectRequirements) String() string

func (*ObjectRequirements) Unmarshal

func (m *ObjectRequirements) Unmarshal(dAtA []byte) error

func (*ObjectRequirements) XXX_DiscardUnknown

func (m *ObjectRequirements) XXX_DiscardUnknown()

func (*ObjectRequirements) XXX_Marshal

func (m *ObjectRequirements) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ObjectRequirements) XXX_Merge

func (m *ObjectRequirements) XXX_Merge(src proto.Message)

func (*ObjectRequirements) XXX_OneofWrappers

func (*ObjectRequirements) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*ObjectRequirements) XXX_Size

func (m *ObjectRequirements) XXX_Size() int

func (*ObjectRequirements) XXX_Unmarshal

func (m *ObjectRequirements) XXX_Unmarshal(b []byte) error

type ObjectRequirements_PodRequirements

type ObjectRequirements_PodRequirements struct {
	PodRequirements *PodRequirements `protobuf:"bytes,1,opt,name=podRequirements,proto3,oneof" json:"podRequirements,omitempty"`
}

func (*ObjectRequirements_PodRequirements) MarshalTo

func (m *ObjectRequirements_PodRequirements) MarshalTo(dAtA []byte) (int, error)

func (*ObjectRequirements_PodRequirements) MarshalToSizedBuffer

func (m *ObjectRequirements_PodRequirements) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ObjectRequirements_PodRequirements) Size

type PodRequirements

type PodRequirements struct {
	// Kubernetes node selector.
	NodeSelector map[string]string `` /* 165-byte string literal not displayed */
	// Kubernetes scheduling requirements.
	Affinity *v1.Affinity `protobuf:"bytes,2,opt,name=affinity,proto3" json:"affinity,omitempty"`
	// Kubernetes tolerations.
	Tolerations []v1.Toleration `protobuf:"bytes,3,rep,name=tolerations,proto3" json:"tolerations"`
	// Kubernetes annotations. Included here since we use annotations with special meaning.
	Annotations map[string]string `` /* 163-byte string literal not displayed */
	// Pod priority. Should be mapped from the priority class name of the submitted pod.
	Priority int32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"`
	// One of Never, PreemptLowerPriority.
	// Defaults to PreemptLowerPriority if unset.
	PreemptionPolicy string `protobuf:"bytes,5,opt,name=preemptionPolicy,proto3" json:"preemptionPolicy,omitempty"`
	// Sum of the resource requirements for all containers that make up this pod.
	ResourceRequirements v1.ResourceRequirements `protobuf:"bytes,6,opt,name=resourceRequirements,proto3" json:"resourceRequirements"`
	// This key is a hash of the scheduling requirements.
	// The hash is 20 bytes in size and is guaranteed to be the same for equivalent PodRequirements,
	// unless Affinity is used, in which case they may differ as a result of unordered map keys.
	CachedSchedulingKey []byte `protobuf:"bytes,8,opt,name=cachedSchedulingKey,proto3" json:"cachedSchedulingKey,omitempty"`
}

Captures the scheduling requirements of a pod.

func (*PodRequirements) Descriptor

func (*PodRequirements) Descriptor() ([]byte, []int)

func (*PodRequirements) GetAffinity

func (m *PodRequirements) GetAffinity() *v1.Affinity

func (*PodRequirements) GetAffinityNodeSelector

func (req *PodRequirements) GetAffinityNodeSelector() *v1.NodeSelector

func (*PodRequirements) GetAnnotations

func (m *PodRequirements) GetAnnotations() map[string]string

func (*PodRequirements) GetCachedSchedulingKey added in v0.3.63

func (m *PodRequirements) GetCachedSchedulingKey() []byte

func (*PodRequirements) GetNodeSelector

func (m *PodRequirements) GetNodeSelector() map[string]string

func (*PodRequirements) GetPreemptionPolicy

func (m *PodRequirements) GetPreemptionPolicy() string

func (*PodRequirements) GetPriority

func (m *PodRequirements) GetPriority() int32

func (*PodRequirements) GetResourceRequirements

func (m *PodRequirements) GetResourceRequirements() v1.ResourceRequirements

func (*PodRequirements) GetTolerations

func (m *PodRequirements) GetTolerations() []v1.Toleration

func (*PodRequirements) Marshal

func (m *PodRequirements) Marshal() (dAtA []byte, err error)

func (*PodRequirements) MarshalTo

func (m *PodRequirements) MarshalTo(dAtA []byte) (int, error)

func (*PodRequirements) MarshalToSizedBuffer

func (m *PodRequirements) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PodRequirements) ProtoMessage

func (*PodRequirements) ProtoMessage()

func (*PodRequirements) Reset

func (m *PodRequirements) Reset()

func (*PodRequirements) Size

func (m *PodRequirements) Size() (n int)

func (*PodRequirements) String

func (m *PodRequirements) String() string

func (*PodRequirements) Unmarshal

func (m *PodRequirements) Unmarshal(dAtA []byte) error

func (*PodRequirements) XXX_DiscardUnknown

func (m *PodRequirements) XXX_DiscardUnknown()

func (*PodRequirements) XXX_Marshal

func (m *PodRequirements) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PodRequirements) XXX_Merge

func (m *PodRequirements) XXX_Merge(src proto.Message)

func (*PodRequirements) XXX_Size

func (m *PodRequirements) XXX_Size() int

func (*PodRequirements) XXX_Unmarshal

func (m *PodRequirements) XXX_Unmarshal(b []byte) error

type PodRequirementsNotMetReason

type PodRequirementsNotMetReason interface {
	fmt.Stringer
	// Returns a 64-bit hash of this reason.
	Sum64() uint64
}

func DynamicPodRequirementsMet added in v0.3.79

func DynamicPodRequirementsMet(allocatableResources ResourceList, req *PodRequirements) (bool, int, PodRequirementsNotMetReason, error)

DynamicPodRequirementsMet checks if a pod can be scheduled onto this node, accounting for resources allocated to pods already assigned to this node.

func PodRequirementsMet added in v0.3.79

func PodRequirementsMet(taints []v1.Taint, labels map[string]string, totalResources ResourceList, allocatableResources ResourceList, req *PodRequirements) (bool, int, PodRequirementsNotMetReason, error)

PodRequirementsMet determines whether a pod can be scheduled onto this node. If the pod can be scheduled, the returned score indicates how well the node fits: - 0: Pod can be scheduled by preempting running pods. - 1: Pod can be scheduled without preempting any running pods. If the requirements are not met, it returns the reason why. If the requirements can't be parsed, an error is returned.

func StaticPodRequirementsMet added in v0.3.79

func StaticPodRequirementsMet(taints []v1.Taint, labels map[string]string, totalResources ResourceList, req *PodRequirements) (bool, PodRequirementsNotMetReason, error)

StaticPodRequirementsMet checks if a pod can be scheduled onto this node, accounting for taints, node selectors, node affinity, and total resources available on the node.

type PodRequirementsSerialiser added in v0.3.71

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

PodRequirementsSerialiser produces the canonical byte representation of a set of pod scheduling requirements. The resulting byte array can, e.g., be used to produce a hash guaranteed to be equal for equivalent requirements. Not thread-safe.

Fields are separated by =, $, &, and =, since these characters are not allowed in taints and labels; see https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set https://man.archlinux.org/man/community/kubectl/kubectl-taint.1.en

func NewPodRequirementsSerialiser added in v0.3.71

func NewPodRequirementsSerialiser() *PodRequirementsSerialiser

func (*PodRequirementsSerialiser) AppendAffinity added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendAffinity(out []byte, affinity *v1.Affinity) []byte

AppendAffinity writes a v1.Affinity into the hash. Only NodeAffinity (i.e., not PodAffinity) and RequiredDuringSchedulingIgnoredDuringExecution fields are considered.

func (*PodRequirementsSerialiser) AppendAffinityNodeSelector added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendAffinityNodeSelector(out []byte, nodeSelector *v1.NodeSelector) []byte

func (*PodRequirementsSerialiser) AppendNodeSelector added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendNodeSelector(out []byte, nodeSelector map[string]string) []byte

func (*PodRequirementsSerialiser) AppendNodeSelectorRequirements added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendNodeSelectorRequirements(out []byte, nodeSelectorRequirements []v1.NodeSelectorRequirement) []byte

func (*PodRequirementsSerialiser) AppendRequirements added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendRequirements(
	out []byte,
	nodeSelector map[string]string,
	affinity *v1.Affinity,
	tolerations []v1.Toleration,
	requests v1.ResourceList,
	priority int32,
) []byte

func (*PodRequirementsSerialiser) AppendResourceList added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendResourceList(out []byte, resourceList v1.ResourceList) []byte

func (*PodRequirementsSerialiser) AppendTolerations added in v0.3.71

func (skg *PodRequirementsSerialiser) AppendTolerations(out []byte, tolerations []v1.Toleration) []byte

type PulsarSchedulerJobDetails added in v0.3.49

type PulsarSchedulerJobDetails struct {
	JobId  string `protobuf:"bytes,1,opt,name=JobId,proto3" json:"JobId,omitempty"`
	Queue  string `protobuf:"bytes,2,opt,name=Queue,proto3" json:"Queue,omitempty"`
	JobSet string `protobuf:"bytes,3,opt,name=JobSet,proto3" json:"JobSet,omitempty"`
}

Used to store details about pulsar scheduler jobs in Redis Can be removed once we deprecate the legacy scheduler

func (*PulsarSchedulerJobDetails) Descriptor added in v0.3.49

func (*PulsarSchedulerJobDetails) Descriptor() ([]byte, []int)

func (*PulsarSchedulerJobDetails) GetJobId added in v0.3.49

func (m *PulsarSchedulerJobDetails) GetJobId() string

func (*PulsarSchedulerJobDetails) GetJobSet added in v0.3.49

func (m *PulsarSchedulerJobDetails) GetJobSet() string

func (*PulsarSchedulerJobDetails) GetQueue added in v0.3.49

func (m *PulsarSchedulerJobDetails) GetQueue() string

func (*PulsarSchedulerJobDetails) Marshal added in v0.3.49

func (m *PulsarSchedulerJobDetails) Marshal() (dAtA []byte, err error)

func (*PulsarSchedulerJobDetails) MarshalTo added in v0.3.49

func (m *PulsarSchedulerJobDetails) MarshalTo(dAtA []byte) (int, error)

func (*PulsarSchedulerJobDetails) MarshalToSizedBuffer added in v0.3.49

func (m *PulsarSchedulerJobDetails) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PulsarSchedulerJobDetails) ProtoMessage added in v0.3.49

func (*PulsarSchedulerJobDetails) ProtoMessage()

func (*PulsarSchedulerJobDetails) Reset added in v0.3.49

func (m *PulsarSchedulerJobDetails) Reset()

func (*PulsarSchedulerJobDetails) Size added in v0.3.49

func (m *PulsarSchedulerJobDetails) Size() (n int)

func (*PulsarSchedulerJobDetails) String added in v0.3.49

func (m *PulsarSchedulerJobDetails) String() string

func (*PulsarSchedulerJobDetails) Unmarshal added in v0.3.49

func (m *PulsarSchedulerJobDetails) Unmarshal(dAtA []byte) error

func (*PulsarSchedulerJobDetails) XXX_DiscardUnknown added in v0.3.49

func (m *PulsarSchedulerJobDetails) XXX_DiscardUnknown()

func (*PulsarSchedulerJobDetails) XXX_Marshal added in v0.3.49

func (m *PulsarSchedulerJobDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PulsarSchedulerJobDetails) XXX_Merge added in v0.3.49

func (m *PulsarSchedulerJobDetails) XXX_Merge(src proto.Message)

func (*PulsarSchedulerJobDetails) XXX_Size added in v0.3.49

func (m *PulsarSchedulerJobDetails) XXX_Size() int

func (*PulsarSchedulerJobDetails) XXX_Unmarshal added in v0.3.49

func (m *PulsarSchedulerJobDetails) XXX_Unmarshal(b []byte) error

type QuantityByTAndResourceType added in v0.3.76

type QuantityByTAndResourceType[T comparable] map[T]ResourceList

func (QuantityByTAndResourceType[T]) Add added in v0.3.76

func (QuantityByTAndResourceType[T]) AddResourceList added in v0.3.76

func (a QuantityByTAndResourceType[T]) AddResourceList(t T, rlb ResourceList)

func (QuantityByTAndResourceType[T]) AddV1ResourceList added in v0.3.76

func (a QuantityByTAndResourceType[T]) AddV1ResourceList(t T, rlb v1.ResourceList)

func (QuantityByTAndResourceType[T]) AggregateByResource added in v0.3.76

func (a QuantityByTAndResourceType[T]) AggregateByResource() ResourceList

func (QuantityByTAndResourceType[T]) DeepCopy added in v0.3.76

func (QuantityByTAndResourceType[T]) Equal added in v0.3.76

func (QuantityByTAndResourceType[T]) IsStrictlyNonNegative added in v0.3.76

func (a QuantityByTAndResourceType[T]) IsStrictlyNonNegative() bool

IsStrictlyNonNegative returns true if there are no quantities in a with value less than zero.

func (QuantityByTAndResourceType[T]) IsZero added in v0.3.76

func (a QuantityByTAndResourceType[T]) IsZero() bool

IsZero returns true if all quantities in a are zero.

func (QuantityByTAndResourceType[T]) MaxAggregatedByResource added in v0.3.76

func (a QuantityByTAndResourceType[T]) MaxAggregatedByResource(t T, rl ResourceList)

MaxAggregatedByResource updates a in-place such that for each resource type t a[p1][t] + ... + a[pn][t] = max(a[p1][t] + ... + a[pn][t], rl[t]), where p1, ..., pn are the priorities in a, for each resource set explicitly in rl.

If necessary to add resources to make up the difference, those resources are added at priority p.

func (QuantityByTAndResourceType[T]) String added in v0.3.76

func (a QuantityByTAndResourceType[T]) String() string

func (QuantityByTAndResourceType[T]) Sub added in v0.3.76

func (QuantityByTAndResourceType[T]) SubResourceList added in v0.3.76

func (a QuantityByTAndResourceType[T]) SubResourceList(t T, rlb ResourceList)

func (QuantityByTAndResourceType[T]) SubV1ResourceList added in v0.3.76

func (a QuantityByTAndResourceType[T]) SubV1ResourceList(t T, rlb v1.ResourceList)

type QueueClusterResourceUsage

type QueueClusterResourceUsage struct {
	Created             time.Time              `protobuf:"bytes,1,opt,name=created,proto3,stdtime" json:"created"`
	Queue               string                 `protobuf:"bytes,2,opt,name=queue,proto3" json:"queue,omitempty"`
	ExecutorId          string                 `protobuf:"bytes,3,opt,name=executorId,proto3" json:"executorId,omitempty"`
	ResourcesByPriority map[int32]ResourceList `` // Deprecated: Do not use.
	/* 170-byte string literal not displayed */
	ResourcesByPriorityClassName map[string]ResourceList `` /* 187-byte string literal not displayed */
}

Captures the resource usage of a particular queue in a given cluster.

func (*QueueClusterResourceUsage) Descriptor

func (*QueueClusterResourceUsage) Descriptor() ([]byte, []int)

func (*QueueClusterResourceUsage) GetCreated

func (m *QueueClusterResourceUsage) GetCreated() time.Time

func (*QueueClusterResourceUsage) GetExecutorId

func (m *QueueClusterResourceUsage) GetExecutorId() string

func (*QueueClusterResourceUsage) GetQueue

func (m *QueueClusterResourceUsage) GetQueue() string

func (*QueueClusterResourceUsage) GetResourcesByPriority deprecated

func (m *QueueClusterResourceUsage) GetResourcesByPriority() map[int32]ResourceList

Deprecated: Do not use.

func (*QueueClusterResourceUsage) GetResourcesByPriorityClassName added in v0.3.76

func (m *QueueClusterResourceUsage) GetResourcesByPriorityClassName() map[string]ResourceList

func (*QueueClusterResourceUsage) Marshal

func (m *QueueClusterResourceUsage) Marshal() (dAtA []byte, err error)

func (*QueueClusterResourceUsage) MarshalTo

func (m *QueueClusterResourceUsage) MarshalTo(dAtA []byte) (int, error)

func (*QueueClusterResourceUsage) MarshalToSizedBuffer

func (m *QueueClusterResourceUsage) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueueClusterResourceUsage) ProtoMessage

func (*QueueClusterResourceUsage) ProtoMessage()

func (*QueueClusterResourceUsage) Reset

func (m *QueueClusterResourceUsage) Reset()

func (*QueueClusterResourceUsage) Size

func (m *QueueClusterResourceUsage) Size() (n int)

func (*QueueClusterResourceUsage) String

func (m *QueueClusterResourceUsage) String() string

func (*QueueClusterResourceUsage) Unmarshal

func (m *QueueClusterResourceUsage) Unmarshal(dAtA []byte) error

func (*QueueClusterResourceUsage) XXX_DiscardUnknown

func (m *QueueClusterResourceUsage) XXX_DiscardUnknown()

func (*QueueClusterResourceUsage) XXX_Marshal

func (m *QueueClusterResourceUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueueClusterResourceUsage) XXX_Merge

func (m *QueueClusterResourceUsage) XXX_Merge(src proto.Message)

func (*QueueClusterResourceUsage) XXX_Size

func (m *QueueClusterResourceUsage) XXX_Size() int

func (*QueueClusterResourceUsage) XXX_Unmarshal

func (m *QueueClusterResourceUsage) XXX_Unmarshal(b []byte) error

type QueueReport

type QueueReport struct {
	Report string `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"`
}

func (*QueueReport) Descriptor

func (*QueueReport) Descriptor() ([]byte, []int)

func (*QueueReport) GetReport

func (m *QueueReport) GetReport() string

func (*QueueReport) Marshal

func (m *QueueReport) Marshal() (dAtA []byte, err error)

func (*QueueReport) MarshalTo

func (m *QueueReport) MarshalTo(dAtA []byte) (int, error)

func (*QueueReport) MarshalToSizedBuffer

func (m *QueueReport) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueueReport) ProtoMessage

func (*QueueReport) ProtoMessage()

func (*QueueReport) Reset

func (m *QueueReport) Reset()

func (*QueueReport) Size

func (m *QueueReport) Size() (n int)

func (*QueueReport) String

func (m *QueueReport) String() string

func (*QueueReport) Unmarshal

func (m *QueueReport) Unmarshal(dAtA []byte) error

func (*QueueReport) XXX_DiscardUnknown

func (m *QueueReport) XXX_DiscardUnknown()

func (*QueueReport) XXX_Marshal

func (m *QueueReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueueReport) XXX_Merge

func (m *QueueReport) XXX_Merge(src proto.Message)

func (*QueueReport) XXX_Size

func (m *QueueReport) XXX_Size() int

func (*QueueReport) XXX_Unmarshal

func (m *QueueReport) XXX_Unmarshal(b []byte) error

type QueueReportRequest added in v0.3.71

type QueueReportRequest struct {
	QueueName string `protobuf:"bytes,1,opt,name=queue_name,json=queueName,proto3" json:"queueName,omitempty"`
	Verbosity int32  `protobuf:"varint,2,opt,name=verbosity,proto3" json:"verbosity,omitempty"`
}

func (*QueueReportRequest) Descriptor added in v0.3.71

func (*QueueReportRequest) Descriptor() ([]byte, []int)

func (*QueueReportRequest) GetQueueName added in v0.3.71

func (m *QueueReportRequest) GetQueueName() string

func (*QueueReportRequest) GetVerbosity added in v0.3.71

func (m *QueueReportRequest) GetVerbosity() int32

func (*QueueReportRequest) Marshal added in v0.3.71

func (m *QueueReportRequest) Marshal() (dAtA []byte, err error)

func (*QueueReportRequest) MarshalTo added in v0.3.71

func (m *QueueReportRequest) MarshalTo(dAtA []byte) (int, error)

func (*QueueReportRequest) MarshalToSizedBuffer added in v0.3.71

func (m *QueueReportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*QueueReportRequest) ProtoMessage added in v0.3.71

func (*QueueReportRequest) ProtoMessage()

func (*QueueReportRequest) Reset added in v0.3.71

func (m *QueueReportRequest) Reset()

func (*QueueReportRequest) Size added in v0.3.71

func (m *QueueReportRequest) Size() (n int)

func (*QueueReportRequest) String added in v0.3.71

func (m *QueueReportRequest) String() string

func (*QueueReportRequest) Unmarshal added in v0.3.71

func (m *QueueReportRequest) Unmarshal(dAtA []byte) error

func (*QueueReportRequest) XXX_DiscardUnknown added in v0.3.71

func (m *QueueReportRequest) XXX_DiscardUnknown()

func (*QueueReportRequest) XXX_Marshal added in v0.3.71

func (m *QueueReportRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*QueueReportRequest) XXX_Merge added in v0.3.71

func (m *QueueReportRequest) XXX_Merge(src proto.Message)

func (*QueueReportRequest) XXX_Size added in v0.3.71

func (m *QueueReportRequest) XXX_Size() int

func (*QueueReportRequest) XXX_Unmarshal added in v0.3.71

func (m *QueueReportRequest) XXX_Unmarshal(b []byte) error

type ResourceList

type ResourceList struct {
	Resources map[string]resource.Quantity `` /* 149-byte string literal not displayed */
}

func NewResourceList added in v0.3.70

func NewResourceList(n int) ResourceList

NewResourceList returns a new ResourceList, where the backing map has initial capacity n.

func NewResourceListWithDefaultSize added in v0.3.70

func NewResourceListWithDefaultSize() ResourceList

NewResourceListWithDefaultSize returns a new ResourceList, where the backing map has default initial capacity.

func ResourceListFromV1ResourceList

func ResourceListFromV1ResourceList(rl v1.ResourceList) ResourceList

func (*ResourceList) Add

func (a *ResourceList) Add(b ResourceList)

func (*ResourceList) AddQuantity added in v0.3.63

func (rl *ResourceList) AddQuantity(resourceType string, quantity resource.Quantity)

func (*ResourceList) AddV1ResourceList added in v0.3.70

func (a *ResourceList) AddV1ResourceList(b v1.ResourceList)

func (*ResourceList) AsWeightedMillis added in v0.3.78

func (rl *ResourceList) AsWeightedMillis(weights map[string]float64) int64

AsWeightedMillis returns the linear combination of the milli values in rl with given weights. This function overflows for values greater than MaxInt64. E.g., 1Pi is fine but not 10Pi.

func (ResourceList) CompactString

func (rl ResourceList) CompactString() string

func (ResourceList) DeepCopy

func (rl ResourceList) DeepCopy() ResourceList

func (*ResourceList) Descriptor

func (*ResourceList) Descriptor() ([]byte, []int)

func (ResourceList) Equal

func (a ResourceList) Equal(b ResourceList) bool

func (*ResourceList) Get

func (rl *ResourceList) Get(resourceType string) resource.Quantity

func (*ResourceList) GetResources

func (m *ResourceList) GetResources() map[string]resource.Quantity

func (ResourceList) IsStrictlyLessOrEqual added in v0.3.63

func (a ResourceList) IsStrictlyLessOrEqual(b ResourceList) bool

IsStrictlyLessOrEqual returns false if there is a quantity in b greater than that in a and true otherwise.

func (ResourceList) IsStrictlyNonNegative added in v0.3.55

func (a ResourceList) IsStrictlyNonNegative() bool

IsStrictlyNonNegative returns true if there is no quantity less than zero.

func (ResourceList) IsZero added in v0.3.50

func (a ResourceList) IsZero() bool

func (*ResourceList) Marshal

func (m *ResourceList) Marshal() (dAtA []byte, err error)

func (*ResourceList) MarshalTo

func (m *ResourceList) MarshalTo(dAtA []byte) (int, error)

func (*ResourceList) MarshalToSizedBuffer

func (m *ResourceList) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*ResourceList) ProtoMessage

func (*ResourceList) ProtoMessage()

func (*ResourceList) Reset

func (m *ResourceList) Reset()

func (*ResourceList) Set added in v0.3.70

func (rl *ResourceList) Set(t string, q resource.Quantity)

func (*ResourceList) Size

func (m *ResourceList) Size() (n int)

func (*ResourceList) String

func (m *ResourceList) String() string

func (*ResourceList) Sub

func (a *ResourceList) Sub(b ResourceList)

func (*ResourceList) SubQuantity added in v0.3.63

func (rl *ResourceList) SubQuantity(resourceType string, quantity resource.Quantity)

func (*ResourceList) SubV1ResourceList added in v0.3.70

func (a *ResourceList) SubV1ResourceList(b v1.ResourceList)

func (*ResourceList) Unmarshal

func (m *ResourceList) Unmarshal(dAtA []byte) error

func (*ResourceList) XXX_DiscardUnknown

func (m *ResourceList) XXX_DiscardUnknown()

func (*ResourceList) XXX_Marshal

func (m *ResourceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ResourceList) XXX_Merge

func (m *ResourceList) XXX_Merge(src proto.Message)

func (*ResourceList) XXX_Size

func (m *ResourceList) XXX_Size() int

func (*ResourceList) XXX_Unmarshal

func (m *ResourceList) XXX_Unmarshal(b []byte) error

func (ResourceList) Zero added in v0.3.70

func (rl ResourceList) Zero()

Zero zeroes out rl in-place, such that all quantities have value 0.

type SchedulerReportingClient

type SchedulerReportingClient interface {
	// Return the most recent scheduling report for each executor.
	GetSchedulingReport(ctx context.Context, in *SchedulingReportRequest, opts ...grpc.CallOption) (*SchedulingReport, error)
	// Return the most recent report scheduling for each executor for the given queue.
	GetQueueReport(ctx context.Context, in *QueueReportRequest, opts ...grpc.CallOption) (*QueueReport, error)
	// Return the most recent scheduling report for each executor for the given job.
	GetJobReport(ctx context.Context, in *JobReportRequest, opts ...grpc.CallOption) (*JobReport, error)
}

SchedulerReportingClient is the client API for SchedulerReporting service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewSchedulerReportingClient

func NewSchedulerReportingClient(cc *grpc.ClientConn) SchedulerReportingClient

type SchedulerReportingServer

type SchedulerReportingServer interface {
	// Return the most recent scheduling report for each executor.
	GetSchedulingReport(context.Context, *SchedulingReportRequest) (*SchedulingReport, error)
	// Return the most recent report scheduling for each executor for the given queue.
	GetQueueReport(context.Context, *QueueReportRequest) (*QueueReport, error)
	// Return the most recent scheduling report for each executor for the given job.
	GetJobReport(context.Context, *JobReportRequest) (*JobReport, error)
}

SchedulerReportingServer is the server API for SchedulerReporting service.

type SchedulingKey added in v0.3.65

type SchedulingKey [highwayhash.Size]byte

type SchedulingKeyGenerator added in v0.3.71

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

SchedulingKeyGenerator is used to generate scheduling keys efficiently. A scheduling key is the canonical hash of the scheduling requirements of a job. All memory is allocated up-front and re-used. Not thread-safe.

func NewSchedulingKeyGenerator added in v0.3.71

func NewSchedulingKeyGenerator() *SchedulingKeyGenerator

func (*SchedulingKeyGenerator) Key added in v0.3.71

func (skg *SchedulingKeyGenerator) Key(
	nodeSelector map[string]string,
	affinity *v1.Affinity,
	tolerations []v1.Toleration,
	requests v1.ResourceList,
	priority int32,
) SchedulingKey

type SchedulingReport added in v0.3.62

type SchedulingReport struct {
	Report string `protobuf:"bytes,1,opt,name=report,proto3" json:"report,omitempty"`
}

func (*SchedulingReport) Descriptor added in v0.3.62

func (*SchedulingReport) Descriptor() ([]byte, []int)

func (*SchedulingReport) GetReport added in v0.3.62

func (m *SchedulingReport) GetReport() string

func (*SchedulingReport) Marshal added in v0.3.62

func (m *SchedulingReport) Marshal() (dAtA []byte, err error)

func (*SchedulingReport) MarshalTo added in v0.3.62

func (m *SchedulingReport) MarshalTo(dAtA []byte) (int, error)

func (*SchedulingReport) MarshalToSizedBuffer added in v0.3.62

func (m *SchedulingReport) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SchedulingReport) ProtoMessage added in v0.3.62

func (*SchedulingReport) ProtoMessage()

func (*SchedulingReport) Reset added in v0.3.62

func (m *SchedulingReport) Reset()

func (*SchedulingReport) Size added in v0.3.62

func (m *SchedulingReport) Size() (n int)

func (*SchedulingReport) String added in v0.3.62

func (m *SchedulingReport) String() string

func (*SchedulingReport) Unmarshal added in v0.3.62

func (m *SchedulingReport) Unmarshal(dAtA []byte) error

func (*SchedulingReport) XXX_DiscardUnknown added in v0.3.62

func (m *SchedulingReport) XXX_DiscardUnknown()

func (*SchedulingReport) XXX_Marshal added in v0.3.62

func (m *SchedulingReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SchedulingReport) XXX_Merge added in v0.3.62

func (m *SchedulingReport) XXX_Merge(src proto.Message)

func (*SchedulingReport) XXX_Size added in v0.3.62

func (m *SchedulingReport) XXX_Size() int

func (*SchedulingReport) XXX_Unmarshal added in v0.3.62

func (m *SchedulingReport) XXX_Unmarshal(b []byte) error

type SchedulingReportRequest added in v0.3.71

type SchedulingReportRequest struct {
	// Types that are valid to be assigned to Filter:
	//
	//	*SchedulingReportRequest_MostRecentForQueue
	//	*SchedulingReportRequest_MostRecentForJob
	Filter    isSchedulingReportRequest_Filter `protobuf_oneof:"filter"`
	Verbosity int32                            `protobuf:"varint,3,opt,name=verbosity,proto3" json:"verbosity,omitempty"`
}

func (*SchedulingReportRequest) Descriptor added in v0.3.71

func (*SchedulingReportRequest) Descriptor() ([]byte, []int)

func (*SchedulingReportRequest) GetFilter added in v0.3.71

func (m *SchedulingReportRequest) GetFilter() isSchedulingReportRequest_Filter

func (*SchedulingReportRequest) GetMostRecentForJob added in v0.3.71

func (m *SchedulingReportRequest) GetMostRecentForJob() *MostRecentForJob

func (*SchedulingReportRequest) GetMostRecentForQueue added in v0.3.71

func (m *SchedulingReportRequest) GetMostRecentForQueue() *MostRecentForQueue

func (*SchedulingReportRequest) GetVerbosity added in v0.3.71

func (m *SchedulingReportRequest) GetVerbosity() int32

func (*SchedulingReportRequest) Marshal added in v0.3.71

func (m *SchedulingReportRequest) Marshal() (dAtA []byte, err error)

func (*SchedulingReportRequest) MarshalTo added in v0.3.71

func (m *SchedulingReportRequest) MarshalTo(dAtA []byte) (int, error)

func (*SchedulingReportRequest) MarshalToSizedBuffer added in v0.3.71

func (m *SchedulingReportRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SchedulingReportRequest) ProtoMessage added in v0.3.71

func (*SchedulingReportRequest) ProtoMessage()

func (*SchedulingReportRequest) Reset added in v0.3.71

func (m *SchedulingReportRequest) Reset()

func (*SchedulingReportRequest) Size added in v0.3.71

func (m *SchedulingReportRequest) Size() (n int)

func (*SchedulingReportRequest) String added in v0.3.71

func (m *SchedulingReportRequest) String() string

func (*SchedulingReportRequest) Unmarshal added in v0.3.71

func (m *SchedulingReportRequest) Unmarshal(dAtA []byte) error

func (*SchedulingReportRequest) XXX_DiscardUnknown added in v0.3.71

func (m *SchedulingReportRequest) XXX_DiscardUnknown()

func (*SchedulingReportRequest) XXX_Marshal added in v0.3.71

func (m *SchedulingReportRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*SchedulingReportRequest) XXX_Merge added in v0.3.71

func (m *SchedulingReportRequest) XXX_Merge(src proto.Message)

func (*SchedulingReportRequest) XXX_OneofWrappers added in v0.3.71

func (*SchedulingReportRequest) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*SchedulingReportRequest) XXX_Size added in v0.3.71

func (m *SchedulingReportRequest) XXX_Size() int

func (*SchedulingReportRequest) XXX_Unmarshal added in v0.3.71

func (m *SchedulingReportRequest) XXX_Unmarshal(b []byte) error

type SchedulingReportRequest_MostRecentForJob added in v0.3.71

type SchedulingReportRequest_MostRecentForJob struct {
	MostRecentForJob *MostRecentForJob `protobuf:"bytes,2,opt,name=most_recent_for_job,json=mostRecentForJob,proto3,oneof" json:"mostRecentForJob,omitempty"`
}

func (*SchedulingReportRequest_MostRecentForJob) MarshalTo added in v0.3.71

func (m *SchedulingReportRequest_MostRecentForJob) MarshalTo(dAtA []byte) (int, error)

func (*SchedulingReportRequest_MostRecentForJob) MarshalToSizedBuffer added in v0.3.71

func (m *SchedulingReportRequest_MostRecentForJob) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SchedulingReportRequest_MostRecentForJob) Size added in v0.3.71

type SchedulingReportRequest_MostRecentForQueue added in v0.3.71

type SchedulingReportRequest_MostRecentForQueue struct {
	MostRecentForQueue *MostRecentForQueue `protobuf:"bytes,1,opt,name=most_recent_for_queue,json=mostRecentForQueue,proto3,oneof" json:"mostRecentForQueue,omitempty"`
}

func (*SchedulingReportRequest_MostRecentForQueue) MarshalTo added in v0.3.71

func (m *SchedulingReportRequest_MostRecentForQueue) MarshalTo(dAtA []byte) (int, error)

func (*SchedulingReportRequest_MostRecentForQueue) MarshalToSizedBuffer added in v0.3.71

func (m *SchedulingReportRequest_MostRecentForQueue) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*SchedulingReportRequest_MostRecentForQueue) Size added in v0.3.71

type UnimplementedSchedulerReportingServer

type UnimplementedSchedulerReportingServer struct {
}

UnimplementedSchedulerReportingServer can be embedded to have forward compatible implementations.

func (*UnimplementedSchedulerReportingServer) GetJobReport

func (*UnimplementedSchedulerReportingServer) GetQueueReport

func (*UnimplementedSchedulerReportingServer) GetSchedulingReport added in v0.3.62

type UnmatchedLabel

type UnmatchedLabel struct {
	Label     string
	PodValue  string
	NodeValue string
}

func (*UnmatchedLabel) String

func (r *UnmatchedLabel) String() string

func (*UnmatchedLabel) Sum64 added in v0.3.70

func (r *UnmatchedLabel) Sum64() uint64

type UnmatchedNodeSelector

type UnmatchedNodeSelector struct {
	NodeSelector *v1.NodeSelector
}

func (*UnmatchedNodeSelector) String

func (err *UnmatchedNodeSelector) String() string

func (*UnmatchedNodeSelector) Sum64 added in v0.3.70

func (r *UnmatchedNodeSelector) Sum64() uint64

type UntoleratedTaint

type UntoleratedTaint struct {
	Taint v1.Taint
}

func (*UntoleratedTaint) String

func (r *UntoleratedTaint) String() string

func (*UntoleratedTaint) Sum64 added in v0.3.70

func (r *UntoleratedTaint) Sum64() uint64

Jump to

Keyboard shortcuts

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