API Reference

Packages

scheduler.tensorstack.dev/v1beta1

Package v1beta1 is the v1beta1 version of the API.

Resource Types

PodGroup

PodGroup represents a collection of Pods to be scheduled together to facilicate with parallel computing. PodGroup is usually automatically created by workload controllers to manage parallel batch workloads such as machine learning training and to enable coscheduling/gang-scheduling strategies. Users can also manually create a PodGroup and associates Pods with it if desired.

Appears in:

FieldDescription
apiVersion stringscheduler.tensorstack.dev/v1beta1
kind stringPodGroup
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec PodGroupSpecSpecification of the desired behavior of the pod group. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
status PodGroupStatusStatus represents the current status of a pod group. This data may not be up to date.

PodGroupCondition

PodGroupCondition contains details for the current state of this pod group.

Appears in:

FieldDescription
type PodGroupConditionTypeThe type of the condition.
status ConditionStatusThe status of the condition.
transitionID stringThe ID of condition transition.
lastTransitionTime TimeLast time of condition transition(s).
reason stringUnique, one-word, CamelCase, machine-readable reason for the condition's last change.
message stringHuman-readable message indicating details about last change.

PodGroupInQueueStatus

Appears in:

FieldDescription
total integer

PodGroupList

PodGroupList is a collection of pod groups.

FieldDescription
apiVersion stringscheduler.tensorstack.dev/v1beta1
kind stringPodGroupList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items PodGroup arrayThe list of PodGroup.

PodGroupSpec

PodGroupSpec represents the desired specification of a pod group.

Appears in:

FieldDescription
roles Role array
minMember integerMinMember defines the minimal number of pods to run the PodGroup. If there less than minMember of pods joining the PodGroup, none of the existing pods in the group will be scheduled. After minMember of pods joined, the scheduler will only schedule them if there are sufficient resources to allow minMember of pods start together.
queue stringQueue defines the queue from which resources for pods of the PodGroup should be allocated. If queue is not specified, the PodGroup will be scheduled to queue "default".
priority integerIf specified, indicates the PodGroup's priority; groups with larger priority values will be considered for scheduling first; range is [0,100].
topologyPolicy TopologyPolicyTypeTopologyPolicy declares the topology policy PodGroup needs.

PodGroupStatus

PodGroupStatus represents the current state of a pod group.

Appears in:

FieldDescription
conditions PodGroupCondition arrayThe conditions of PodGroup.
allocated object (keys:ResourceName, values:Quantity)Allocated represents resources and their qunatities allocated to the PodGroup.
pending integerThe number of pods in phase Pending.
running integerThe number of pods in phase running.
succeeded integerThe number of pods in phase Succeeded.
failed integerThe number of pods in phase Failed.
unknown integerThe number of pods in phase Unknown.

PodInQueueStatus

Appears in:

FieldDescription
pending integerThe number of 'Pending' Pods in this queue.
running integerThe number of 'Running' Pods in this queue.
succeeded integerThe number of 'Succeeded' Pods in this queue.
failed integerThe number of 'Failed' Pods in this queue
unknown integerThe number of 'Unknown' Pods in this queue.

Queue

Queue is an API-resource to reprenent a sub-set of cluster compute resources and associated administrative policies, such as allowed users, resource quota, allowed workload types, max duration of workload runtime and etc.

Appears in:

FieldDescription
apiVersion stringscheduler.tensorstack.dev/v1beta1
kind stringQueue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec QueueSpecSpecification of the desired behavior of the queue. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
status QueueStatusThe status of queue.

QueueCondition

Appears in:

FieldDescription
type QueueConditionTypeType is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
status ConditionStatusStatus is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
lastTransitionTime TimeLast time the condition transitioned.
reason stringUnique, one-word, CamelCase reason for the condition's last transition.
message stringHuman-readable message indicating details about last transition.

QueueConditionType

Underlying type: string

Appears in:

QueueList

QueueList is a collection of queues.

FieldDescription
apiVersion stringscheduler.tensorstack.dev/v1beta1
kind stringQueueList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items Queue arrayThe list of Queue.

QueueSpec

QueueSpec represents the desired specification of a Queue.

Appears in:

FieldDescription
quota QuotaRequirements
priority integerIf specified, indicates the Queue's priority. range is [0,100] The higher value of priority, workloads in this queue will be scheduled with resources with higher preferences.
preemptible booleanPreemptible indicate whether the queue can be preempted by other queue when cluster resources are in short. Queue can be preempted if Preemptible is not set.
closed booleanAfter queue is closed, new workloads (pods) will not be allocated with resources and no new workloads will be accepted either.
maxDuration DurationDefine the max lifetime of Pod using the Queue. Supported units: y, w, d, h, m, s, ms. Examples: 30s, 1m, 1h20m15s, 15d.
resourceShapeProfile stringSpecify ResourceShape profile used by the Queue.
nodeSelector LabelSelectorNodeSelector specifies the nodes whoses resource can be used by a Queue. This provides a machanism to restrict workloads submitted to a particular queue to a sub-set of nodes in the cluster. if nil, all nodes are eligible.
namespaceSelector LabelSelectorNamespaceSelector specifies the set of namespaces from which workloads are allowed to use this Queue. if nil, no namespaces are selected. Note: There may be other authorization procedures that permit workloads in a queue. They are OR'ed with this selector.

QueueStatus

QueueStatus represents the status of Queue.

Appears in:

FieldDescription
allocated object (keys:ResourceName, values:Quantity)Count of resource allocated to the queue.
conditions QueueCondition arrayCurrent service state of Queue.
podGroups PodGroupInQueueStatusPodGroup Status in Queue.
pods PodInQueueStatusPod Status in Queue.

QuotaRequirements

Appears in:

FieldDescription
requests object (keys:ResourceName, values:Quantity)Requests describes max amount of resources pods in the Queue can potentially request. However, these are the upper limits for resources, not necessarily always available for use. This can be used by cluster administrators to control the upper bounds of resources submitted to a particular queue. Togethe with allowed users of queues, this provides a mechanism for admins to set policies to constrain some aspects of user resource usages.

Role

Role describes pod's role and minMember constraint for this role.

Appears in:

FieldDescription
name stringRole Name
minMember integerMinMember defines minimal number of pods of the role.