# Packages

No description provided by the author

# Functions

AllocatedStatus checks whether the tasks has AllocatedStatus.
ConvertPodGroupInfoToV1Alpha converts api.PodGroup type to v1alpha1.PodGroup.
ConvertPodGroupInfoToV2Alpha converts api.PodGroup type to v1alpha2.PodGroup.
ConvertV1Alpha1ToPodGroupInfo converts v1alpha1.PodGroup to api.PodGroup type.
ConvertV1Alpha2ToPodGroupInfo converts v1alpha2.PodGroup to api.PodGroup type.
EmptyResource creates a empty resource object and returns.
GetPodResourceRequest returns all the resource required for that pod.
GetPodResourceWithoutInitContainers returns Pod's resource request, it does not contain init containers' resource request.
JobTerminated checks whether job was terminated.
MergeErrors is used to merge multiple errors into single error.
NewJobInfo creates a new jobInfo for set of tasks.
NewNodeInfo is used to create new nodeInfo object.
NewQueueInfo creates new queueInfo object.
NewResource create a new resource object from resource list.
NewTaskInfo creates new taskInfo object for a Pod.
PodKey returns the string key of a pod.

# Constants

Allocated means the scheduler assigns a host to it.
Binding means the scheduler send Bind request to apiserver.
Bound means the task/Pod bounds to a host.
Failed means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).
GPUResourceName need to follow https://github.com/NVIDIA/k8s-device-plugin/blob/66a35b71ac4b5cbfb04714678b548bd77e5ba719/server.go#L20.
NotReady means the node is not ready for scheduling.
Pending means the task is pending in the apiserver.
Pipelined means the scheduler assigns a host to wait for releasing resource.
PodPending means the pod group has been accepted by the system, but scheduler can not allocate enough resources to it.
PodRunning means `spec.minMember` pods of PodGroups has been in running phase.
PodGroupUnknown means part of `spec.minMember` pods are running but the other part can not be scheduled, e.g.
PodGroupUnschedulableType represents unschedulable podGroup condition.
PodGroupVersionV1Alpha1 represents PodGroupVersion of V1Alpha1.
PodGroupVersionV1Alpha2 represents PodGroupVersion of V1Alpha2.
QueueVersionV1Alpha1 represents PodGroupVersion of V1Alpha1.
QueueVersionV1Alpha2 represents PodGroupVersion of V1Alpha2.
Ready means the node is ready for scheduling.
Releasing means a task/pod is deleted.
Running means a task is running on the host.
Succeeded means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.
Unknown means the status of task/pod is unknown to the scheduler.

# Structs

ClusterInfo is a snapshot of cluster by cache.
JobInfo will have all info of a Job.
NodeInfo is node level aggregated information.
NodeState defines the current state of node.
PodGroup is a collection of Pod; used for batch workload.
PodGroupCondition contains details for the current state of this pod group.
PodGroupSpec represents the template of a pod group.
PodGroupStatus represents the current state of a pod group.
Queue is a queue of PodGroup.
QueueInfo will have all details about queue.
QueueSpec represents the template of Queue.
QueueStatus represents the status of Queue.
Resource struct defines all the resource type.
TaskInfo will have all infos about the task.
ValidateResult is struct to which can used to determine the result.

# Type aliases

CompareFn is the func declaration used by sort or priority queue.
EvictableFn is the func declaration used to evict tasks.
JobID is the type of JobInfo's ID.
LessFn is the func declaration used by sort or priority queue.
NodeOrderFn is the func declaration used to get priority score for a node for a particular task.
NodePhase defines the phase of node.
NodeResourceMap stores resource in a node.
PodGroupConditionType is of string type which represents podGroup Condition.
PodGroupPhase is the phase of a pod group at the current time.
PredicateFn is the func declaration used to predicate node for task.
QueueID is UID type, serves as unique ID for each queue.
TaskID is UID type for Task.
TaskStatus defines the status of a task/pod.
ValidateExFn is the func declaration used to validate the result.
ValidateFn is the func declaration used to check object's status.