Kueue API
Resource Types
- AdmissionCheck
- ClusterQueue
- LocalQueue
- MultiKueueCluster
- MultiKueueConfig
- ProvisioningRequestConfig
- ResourceFlavor
- Workload
- WorkloadPriorityClass
AdmissionCheck
Appears in:
AdmissionCheck is the Schema for the admissionchecks API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | AdmissionCheck |
spec [Required]AdmissionCheckSpec | No description provided. |
status [Required]AdmissionCheckStatus | No description provided. |
ClusterQueue
Appears in:
ClusterQueue is the Schema for the clusterQueue API.
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | ClusterQueue |
spec [Required]ClusterQueueSpec | No description provided. |
status [Required]ClusterQueueStatus | No description provided. |
LocalQueue
Appears in:
LocalQueue is the Schema for the localQueues API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | LocalQueue |
spec [Required]LocalQueueSpec | No description provided. |
status [Required]LocalQueueStatus | No description provided. |
MultiKueueCluster
Appears in:
MultiKueueCluster is the Schema for the multikueue API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | MultiKueueCluster |
spec [Required]MultiKueueClusterSpec | No description provided. |
status [Required]MultiKueueClusterStatus | No description provided. |
MultiKueueConfig
Appears in:
MultiKueueConfig is the Schema for the multikueue API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | MultiKueueConfig |
spec [Required]MultiKueueConfigSpec | No description provided. |
ProvisioningRequestConfig
Appears in:
ProvisioningRequestConfig is the Schema for the provisioningrequestconfig API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | ProvisioningRequestConfig |
spec [Required]ProvisioningRequestConfigSpec | No description provided. |
ResourceFlavor
Appears in:
ResourceFlavor is the Schema for the resourceflavors API.
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | ResourceFlavor |
spec [Required]ResourceFlavorSpec | No description provided. |
Workload
Appears in:
Workload is the Schema for the workloads API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | Workload |
spec [Required]WorkloadSpec | No description provided. |
status [Required]WorkloadStatus | No description provided. |
WorkloadPriorityClass
Appears in:
WorkloadPriorityClass is the Schema for the workloadPriorityClass API
Field | Description |
---|---|
apiVersion string | kueue.x-k8s.io/v1beta1 |
kind string | WorkloadPriorityClass |
value [Required]int32 | value represents the integer value of this workloadPriorityClass. This is the actual priority that workloads receive when jobs have the name of this class in their workloadPriorityClass label. Changing the value of workloadPriorityClass doesn't affect the priority of workloads that were already created. |
description string | description is an arbitrary string that usually provides guidelines on when this workloadPriorityClass should be used. |
Admission
Appears in:
Field | Description |
---|---|
clusterQueue [Required]ClusterQueueReference | clusterQueue is the name of the ClusterQueue that admitted this workload. |
podSetAssignments [Required][]PodSetAssignment | PodSetAssignments hold the admission results for each of the .spec.podSets entries. |
AdmissionCheckParametersReference
Appears in:
Field | Description |
---|---|
apiGroup [Required]string | ApiGroup is the group for the resource being referenced. |
kind [Required]string | Kind is the type of the resource being referenced. |
name [Required]string | Name is the name of the resource being referenced. |
AdmissionCheckSpec
Appears in:
AdmissionCheckSpec defines the desired state of AdmissionCheck
Field | Description |
---|---|
controllerName [Required]string | controllerName identifies the controller that processes the AdmissionCheck, not necessarily a Kubernetes Pod or Deployment name. Cannot be empty. |
retryDelayMinutes int64 | RetryDelayMinutes specifies how long to keep the workload suspended after a failed check (after it transitioned to False). When the delay period has passed, the check state goes to "Unknown". The default is 15 min. Deprecated: retryDelayMinutes has already been deprecated since v0.8 and will be removed in v1beta2. |
parameters AdmissionCheckParametersReference | Parameters identifies a configuration with additional parameters for the check. |
AdmissionCheckState
Appears in:
Field | Description |
---|---|
name [Required]string | name identifies the admission check. |
state [Required]CheckState | state of the admissionCheck, one of Pending, Ready, Retry, Rejected |
lastTransitionTime [Required]k8s.io/apimachinery/pkg/apis/meta/v1.Time | lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. |
message [Required]string | message is a human readable message indicating details about the transition. This may be an empty string. |
podSetUpdates []PodSetUpdate | No description provided. |
AdmissionCheckStatus
Appears in:
AdmissionCheckStatus defines the observed state of AdmissionCheck
Field | Description |
---|---|
conditions []k8s.io/apimachinery/pkg/apis/meta/v1.Condition | conditions hold the latest available observations of the AdmissionCheck current state. |
AdmissionCheckStrategyRule
Appears in:
AdmissionCheckStrategyRule defines rules for a single AdmissionCheck
Field | Description |
---|---|
name [Required]string | name is an AdmissionCheck's name. |
onFlavors []ResourceFlavorReference | onFlavors is a list of ResourceFlavors' names that this AdmissionCheck should run for. If empty, the AdmissionCheck will run for all workloads submitted to the ClusterQueue. |
AdmissionChecksStrategy
Appears in:
AdmissionChecksStrategy defines a strategy for a AdmissionCheck.
Field | Description |
---|---|
admissionChecks [Required][]AdmissionCheckStrategyRule | admissionChecks is a list of strategies for AdmissionChecks |
BorrowWithinCohort
Appears in:
BorrowWithinCohort contains configuration which allows to preempt workloads within cohort while borrowing.
Field | Description |
---|---|
policy [Required]BorrowWithinCohortPolicy | policy determines the policy for preemption to reclaim quota within cohort while borrowing. Possible values are:
|
maxPriorityThreshold int32 | maxPriorityThreshold allows to restrict the set of workloads which might be preempted by a borrowing workload, to only workloads with priority less than or equal to the specified threshold priority. When the threshold is not specified, then any workload satisfying the policy can be preempted by the borrowing workload. |
BorrowWithinCohortPolicy
(Alias of string
)
Appears in:
CheckState
(Alias of string
)
Appears in:
ClusterQueuePendingWorkload
Appears in:
ClusterQueuePendingWorkload contains the information identifying a pending workload in the cluster queue.
Field | Description |
---|---|
name [Required]string | Name indicates the name of the pending workload. |
namespace [Required]string | Namespace indicates the name of the pending workload. |
ClusterQueuePendingWorkloadsStatus
Appears in:
Field | Description |
---|---|
clusterQueuePendingWorkload []ClusterQueuePendingWorkload | Head contains the list of top pending workloads. |
lastChangeTime [Required]k8s.io/apimachinery/pkg/apis/meta/v1.Time | LastChangeTime indicates the time of the last change of the structure. |
ClusterQueuePreemption
Appears in:
ClusterQueuePreemption contains policies to preempt Workloads from this ClusterQueue or the ClusterQueue's cohort.
Field | Description |
---|---|
reclaimWithinCohort [Required]PreemptionPolicy | reclaimWithinCohort determines whether a pending Workload can preempt Workloads from other ClusterQueues in the cohort that are using more than their nominal quota. The possible values are:
|
borrowWithinCohort [Required]BorrowWithinCohort | borrowWithinCohort provides configuration to allow preemption within cohort while borrowing. |
withinClusterQueue [Required]PreemptionPolicy | withinClusterQueue determines whether a pending Workload that doesn't fit within the nominal quota for its ClusterQueue, can preempt active Workloads in the ClusterQueue. The possible values are:
|
ClusterQueueReference
(Alias of string
)
Appears in:
ClusterQueueReference is the name of the ClusterQueue.
ClusterQueueSpec
Appears in:
ClusterQueueSpec defines the desired state of ClusterQueue
Field | Description |
---|---|
resourceGroups [Required][]ResourceGroup | resourceGroups describes groups of resources. Each resource group defines the list of resources and a list of flavors that provide quotas for these resources. Each resource and each flavor can only form part of one resource group. resourceGroups can be up to 16. |
cohort [Required]string | cohort that this ClusterQueue belongs to. CQs that belong to the same cohort can borrow unused resources from each other. A CQ can be a member of a single borrowing cohort. A workload submitted to a queue referencing this CQ can borrow quota from any CQ in the cohort. Only quota for the [resource, flavor] pairs listed in the CQ can be borrowed. If empty, this ClusterQueue cannot borrow from any other ClusterQueue and vice versa. A cohort is a name that links CQs together, but it doesn't reference any object. Validation of a cohort name is equivalent to that of object names: subdomain in DNS (RFC 1123). |
queueingStrategy [Required]QueueingStrategy | QueueingStrategy indicates the queueing strategy of the workloads across the queues in this ClusterQueue. Current Supported Strategies:
|
namespaceSelector [Required]k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector | namespaceSelector defines which namespaces are allowed to submit workloads to
this clusterQueue. Beyond this basic support for policy, a policy agent like
Gatekeeper should be used to enforce more advanced policies.
Defaults to null which is a nothing selector (no namespaces eligible).
If set to an empty selector |
flavorFungibility [Required]FlavorFungibility | flavorFungibility defines whether a workload should try the next flavor before borrowing or preempting in the flavor being evaluated. |
preemption [Required]ClusterQueuePreemption | preemption describes policies to preempt Workloads from this ClusterQueue or the ClusterQueue's cohort. Preemption can happen in two scenarios:
The preemption algorithm tries to find a minimal set of Workloads to preempt to accomomdate the pending Workload, preempting Workloads with lower priority first. |
admissionChecks []string | admissionChecks lists the AdmissionChecks required by this ClusterQueue. Cannot be used along with AdmissionCheckStrategy. |
admissionChecksStrategy AdmissionChecksStrategy | admissionCheckStrategy defines a list of strategies to determine which ResourceFlavors require AdmissionChecks. This property cannot be used in conjunction with the 'admissionChecks' property. |
stopPolicy StopPolicy | stopPolicy - if set to a value different from None, the ClusterQueue is considered Inactive, no new reservation being made. Depending on its value, its associated workloads will:
|
fairSharing [Required]FairSharing | fairSharing defines the properties of the ClusterQueue when participating in fair sharing. The values are only relevant if fair sharing is enabled in the Kueue configuration. |
ClusterQueueStatus
Appears in:
ClusterQueueStatus defines the observed state of ClusterQueue
Field | Description |
---|---|
flavorsReservation []FlavorUsage | flavorsReservation are the reserved quotas, by flavor, currently in use by the workloads assigned to this ClusterQueue. |
flavorsUsage []FlavorUsage | flavorsUsage are the used quotas, by flavor, currently in use by the workloads admitted in this ClusterQueue. |
pendingWorkloads int32 | pendingWorkloads is the number of workloads currently waiting to be admitted to this clusterQueue. |
reservingWorkloads int32 | reservingWorkloads is the number of workloads currently reserving quota in this clusterQueue. |
admittedWorkloads int32 | admittedWorkloads is the number of workloads currently admitted to this clusterQueue and haven't finished yet. |
conditions []k8s.io/apimachinery/pkg/apis/meta/v1.Condition | conditions hold the latest available observations of the ClusterQueue current state. |
pendingWorkloadsStatus ClusterQueuePendingWorkloadsStatus | PendingWorkloadsStatus contains the information exposed about the current status of the pending workloads in the cluster queue. Deprecated: This field will be removed on v1beta2, use VisibilityOnDemand (https://kueue.sigs.k8s.io/docs/tasks/manage/monitor_pending_workloads/pending_workloads_on_demand/) instead. |
fairSharing FairSharingStatus | FairSharing contains the information about the current status of fair sharing. |
FairSharing
Appears in:
FairSharing contains the properties of the ClusterQueue when participating in fair sharing.
Field | Description |
---|---|
weight [Required]k8s.io/apimachinery/pkg/api/resource.Quantity | weight gives a comparative advantage to this ClusterQueue when competing for unused resources in the cohort against other ClusterQueues. The share of a ClusterQueue is based on the dominant resource usage above nominal quotas for each resource, divided by the weight. Admission prioritizes scheduling workloads from ClusterQueues with the lowest share and preempting workloads from the ClusterQueues with the highest share. A zero weight implies infinite share value, meaning that this ClusterQueue will always be at disadvantage against other ClusterQueues. |
FairSharingStatus
Appears in:
Field | Description |
---|---|
weightedShare [Required]int64 | WeightedShare represent the maximum of the ratios of usage above nominal quota to the lendable resources in the cohort, among all the resources provided by the ClusterQueue, and divided by the weight. If zero, it means that the usage of the ClusterQueue is below the nominal quota. If the ClusterQueue has a weight of zero, this will return 9223372036854775807, the maximum possible share value. |
FlavorFungibility
Appears in:
FlavorFungibility determines whether a workload should try the next flavor before borrowing or preempting in current flavor.
Field | Description |
---|---|
whenCanBorrow [Required]FlavorFungibilityPolicy | whenCanBorrow determines whether a workload should try the next flavor before borrowing in current flavor. The possible values are:
|
whenCanPreempt [Required]FlavorFungibilityPolicy | whenCanPreempt determines whether a workload should try the next flavor before borrowing in current flavor. The possible values are:
|
FlavorFungibilityPolicy
(Alias of string
)
Appears in:
FlavorQuotas
Appears in:
Field | Description |
---|---|
name [Required]ResourceFlavorReference | name of this flavor. The name should match the .metadata.name of a ResourceFlavor. If a matching ResourceFlavor does not exist, the ClusterQueue will have an Active condition set to False. |
resources [Required][]ResourceQuota | resources is the list of quotas for this flavor per resource. There could be up to 16 resources. |
FlavorUsage
Appears in:
Field | Description |
---|---|
name [Required]ResourceFlavorReference | name of the flavor. |
resources [Required][]ResourceUsage | resources lists the quota usage for the resources in this flavor. |
KubeConfig
Appears in:
Field | Description |
---|---|
location [Required]string | Location of the KubeConfig. If LocationType is Secret then Location is the name of the secret inside the namespace in which the kueue controller manager is running. The config should be stored in the "kubeconfig" key. |
locationType [Required]LocationType | Type of the KubeConfig location. |
LocalQueueFlavorStatus
Appears in:
Field | Description |
---|---|
name [Required]ResourceFlavorReference | name of the flavor. |
resources []k8s.io/api/core/v1.ResourceName | resources used in the flavor. |
nodeLabels map[string]string | nodeLabels are labels that associate the ResourceFlavor with Nodes that have the same labels. |
nodeTaints []k8s.io/api/core/v1.Taint | nodeTaints are taints that the nodes associated with this ResourceFlavor have. |
LocalQueueFlavorUsage
Appears in:
Field | Description |
---|---|
name [Required]ResourceFlavorReference | name of the flavor. |
resources [Required][]LocalQueueResourceUsage | resources lists the quota usage for the resources in this flavor. |
LocalQueueResourceUsage
Appears in:
Field | Description |
---|---|
name [Required]k8s.io/api/core/v1.ResourceName | name of the resource. |
total [Required]k8s.io/apimachinery/pkg/api/resource.Quantity | total is the total quantity of used quota. |
LocalQueueSpec
Appears in:
LocalQueueSpec defines the desired state of LocalQueue
Field | Description |
---|---|
clusterQueue [Required]ClusterQueueReference | clusterQueue is a reference to a clusterQueue that backs this localQueue. |
stopPolicy StopPolicy | stopPolicy - if set to a value different from None, the LocalQueue is considered Inactive, no new reservation being made. Depending on its value, its associated workloads will:
|
LocalQueueStatus
Appears in:
LocalQueueStatus defines the observed state of LocalQueue
Field | Description |
---|---|
pendingWorkloads int32 | PendingWorkloads is the number of Workloads in the LocalQueue not yet admitted to a ClusterQueue |
reservingWorkloads int32 | reservingWorkloads is the number of workloads in this LocalQueue reserving quota in a ClusterQueue and that haven't finished yet. |
admittedWorkloads int32 | admittedWorkloads is the number of workloads in this LocalQueue admitted to a ClusterQueue and that haven't finished yet. |
conditions []k8s.io/apimachinery/pkg/apis/meta/v1.Condition | Conditions hold the latest available observations of the LocalQueue current state. |
flavorsReservation []LocalQueueFlavorUsage | flavorsReservation are the reserved quotas, by flavor currently in use by the workloads assigned to this LocalQueue. |
flavorUsage []LocalQueueFlavorUsage | flavorsUsage are the used quotas, by flavor currently in use by the workloads assigned to this LocalQueue. |
flavors []LocalQueueFlavorStatus | flavors lists all currently available ResourceFlavors in specified ClusterQueue. |
LocationType
(Alias of string
)
Appears in:
MultiKueueClusterSpec
Appears in:
Field | Description |
---|---|
kubeConfig [Required]KubeConfig | Information how to connect to the cluster. |
MultiKueueClusterStatus
Appears in:
Field | Description |
---|---|
conditions []k8s.io/apimachinery/pkg/apis/meta/v1.Condition | No description provided. |
MultiKueueConfigSpec
Appears in:
MultiKueueConfigSpec defines the desired state of MultiKueueConfig
Field | Description |
---|---|
clusters [Required][]string | List of MultiKueueClusters names where the workloads from the ClusterQueue should be distributed. |
Parameter
(Alias of string
)
Appears in:
Parameter is limited to 255 characters.
PodSet
Appears in:
Field | Description |
---|---|
name [Required]string | name is the PodSet name. |
template [Required]k8s.io/api/core/v1.PodTemplateSpec | template is the Pod template. The only allowed fields in template.metadata are labels and annotations. If requests are omitted for a container or initContainer, they default to the limits if they are explicitly specified for the container or initContainer. During admission, the rules in nodeSelector and nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution that match the keys in the nodeLabels from the ResourceFlavors considered for this Workload are used to filter the ResourceFlavors that can be assigned to this podSet. |
count [Required]int32 | count is the number of pods for the spec. |
minCount int32 | minCount is the minimum number of pods for the spec acceptable if the workload supports partial admission. If not provided, partial admission for the current PodSet is not enabled. Only one podSet within the workload can use this. This is an alpha field and requires enabling PartialAdmission feature gate. |
topologyRequest PodSetTopologyRequest | topologyRequest defines the topology request for the PodSet. |
PodSetAssignment
Appears in:
Field | Description |
---|---|
name [Required]string | Name is the name of the podSet. It should match one of the names in .spec.podSets. |
flavors [Required]map[ResourceName]ResourceFlavorReference | Flavors are the flavors assigned to the workload for each resource. |
resourceUsage [Required]k8s.io/api/core/v1.ResourceList | resourceUsage keeps track of the total resources all the pods in the podset need to run. Beside what is provided in podSet's specs, this calculation takes into account the LimitRange defaults and RuntimeClass overheads at the moment of admission. This field will not change in case of quota reclaim. |
count int32 | count is the number of pods taken into account at admission time. This field will not change in case of quota reclaim. Value could be missing for Workloads created before this field was added, in that case spec.podSets[*].count value will be used. |
topologyAssignment TopologyAssignment | topologyAssignment indicates the topology assignment divided into topology domains corresponding to the lowest level of the topology. The assignment specifies the number of Pods to be scheduled per topology domain and specifies the node selectors for each topology domain, in the following way: the node selector keys are specified by the levels field (same for all domains), and the corresponding node selector value is specified by the domains.values subfield. If the TopologySpec.Levels field contains "kubernetes.io/hostname" label, topologyAssignment will contain data only for this label, and omit higher levels in the topology Example: topologyAssignment: levels:
Here:
Example: Below there is an equivalent of the above example assuming, Topology object defines kubernetes.io/hostname as the lowest level in topology. Hence we omit higher level of topologies, since the hostname label is sufficient to explicitly identify a proper node. topologyAssignment: levels:
|
PodSetRequest
Appears in:
Field | Description |
---|---|
name [Required]string | name is the name of the podSet. It should match one of the names in .spec.podSets. |
resources k8s.io/api/core/v1.ResourceList | resources is the total resources all the pods in the podset need to run. Beside what is provided in podSet's specs, this value also takes into account the LimitRange defaults and RuntimeClass overheads at the moment of consideration and the application of resource.excludeResourcePrefixes and resource.transformations. |
PodSetTopologyRequest
Appears in:
PodSetTopologyRequest defines the topology request for a PodSet.
Field | Description |
---|---|
required string | required indicates the topology level required by the PodSet, as
indicated by the |
preferred string | preferred indicates the topology level preferred by the PodSet, as
indicated by the |
podIndexLabel [Required]string | PodIndexLabel indicates the name of the label indexing the pods. For example, in the context of
|
subGroupIndexLabel [Required]string | SubGroupIndexLabel indicates the name of the label indexing the instances of replicated Jobs (groups) within a PodSet. For example, in the context of JobSet this is jobset.sigs.k8s.io/job-index. |
subGroupCount [Required]int32 | SubGroupIndexLabel indicates the count of replicated Jobs (groups) within a PodSet. For example, in the context of JobSet this value is read from jobset.sigs.k8s.io/replicatedjob-replicas. |
PodSetUpdate
Appears in:
PodSetUpdate contains a list of pod set modifications suggested by AdmissionChecks. The modifications should be additive only - modifications of already existing keys or having the same key provided by multiple AdmissionChecks is not allowed and will result in failure during workload admission.
Field | Description |
---|---|
name [Required]string | Name of the PodSet to modify. Should match to one of the Workload's PodSets. |
labels map[string]string | No description provided. |
annotations map[string]string | No description provided. |
nodeSelector map[string]string | No description provided. |
tolerations []k8s.io/api/core/v1.Toleration | No description provided. |
PreemptionPolicy
(Alias of string
)
Appears in:
ProvisioningRequestConfigSpec
Appears in:
ProvisioningRequestConfigSpec defines the desired state of ProvisioningRequestConfig
Field | Description |
---|---|
provisioningClassName [Required]string | ProvisioningClassName describes the different modes of provisioning the resources. Check autoscaling.x-k8s.io ProvisioningRequestSpec.ProvisioningClassName for details. |
parameters map[string]Parameter | Parameters contains all other parameters classes may require. |
managedResources []k8s.io/api/core/v1.ResourceName | managedResources contains the list of resources managed by the autoscaling. If empty, all resources are considered managed. If not empty, the ProvisioningRequest will contain only the podsets that are requesting at least one of them. If none of the workloads podsets is requesting at least a managed resource, the workload is considered ready. |
retryStrategy ProvisioningRequestRetryStrategy | retryStrategy defines strategy for retrying ProvisioningRequest. If null, then the default configuration is applied with the following parameter values: backoffLimitCount: 3 backoffBaseSeconds: 60 - 1 min backoffMaxSeconds: 1800 - 30 mins To switch off retry mechanism set retryStrategy.backoffLimitCount to 0. |
ProvisioningRequestRetryStrategy
Appears in:
Field | Description |
---|---|
backoffLimitCount int32 | BackoffLimitCount defines the maximum number of re-queuing retries.
Once the number is reached, the workload is deactivated ( Every backoff duration is about "b*2^(n-1)+Rand" where:
Defaults to 3. |
backoffBaseSeconds int32 | BackoffBaseSeconds defines the base for the exponential backoff for re-queuing an evicted workload. Defaults to 60. |
backoffMaxSeconds int32 | BackoffMaxSeconds defines the maximum backoff time to re-queue an evicted workload. Defaults to 1800. |
QueueingStrategy
(Alias of string
)
Appears in:
ReclaimablePod
Appears in:
Field | Description |
---|---|
name [Required]string | name is the PodSet name. |
count [Required]int32 | count is the number of pods for which the requested resources are no longer needed. |
RequeueState
Appears in:
Field | Description |
---|---|
count int32 | count records the number of times a workload has been re-queued
When a deactivated ( |
requeueAt k8s.io/apimachinery/pkg/apis/meta/v1.Time | requeueAt records the time when a workload will be re-queued.
When a deactivated ( |
ResourceFlavorReference
(Alias of string
)
Appears in:
ResourceFlavorReference is the name of the ResourceFlavor.
ResourceFlavorSpec
Appears in:
ResourceFlavorSpec defines the desired state of the ResourceFlavor
Field | Description |
---|---|
nodeLabels map[string]string | nodeLabels are labels that associate the ResourceFlavor with Nodes that have the same labels. When a Workload is admitted, its podsets can only get assigned ResourceFlavors whose nodeLabels match the nodeSelector and nodeAffinity fields. Once a ResourceFlavor is assigned to a podSet, the ResourceFlavor's nodeLabels should be injected into the pods of the Workload by the controller that integrates with the Workload object. nodeLabels can be up to 8 elements. |
nodeTaints []k8s.io/api/core/v1.Taint | nodeTaints are taints that the nodes associated with this ResourceFlavor have. Workloads' podsets must have tolerations for these nodeTaints in order to get assigned this ResourceFlavor during admission. An example of a nodeTaint is cloud.provider.com/preemptible="true":NoSchedule nodeTaints can be up to 8 elements. |
tolerations []k8s.io/api/core/v1.Toleration | tolerations are extra tolerations that will be added to the pods admitted in the quota associated with this resource flavor. An example of a toleration is cloud.provider.com/preemptible="true":NoSchedule tolerations can be up to 8 elements. |
topologyName TopologyReference | topologyName indicates topology for the TAS ResourceFlavor. When specified, it enables scraping of the topology information from the nodes matching to the Resource Flavor node labels. |
ResourceGroup
Appears in:
Field | Description |
---|---|
coveredResources [Required][]k8s.io/api/core/v1.ResourceName | coveredResources is the list of resources covered by the flavors in this group. Examples: cpu, memory, vendor.com/gpu. The list cannot be empty and it can contain up to 16 resources. |
flavors [Required][]FlavorQuotas | flavors is the list of flavors that provide the resources of this group. Typically, different flavors represent different hardware models (e.g., gpu models, cpu architectures) or pricing models (on-demand vs spot cpus). Each flavor MUST list all the resources listed for this group in the same order as the .resources field. The list cannot be empty and it can contain up to 16 flavors. |
ResourceQuota
Appears in:
Field | Description |
---|---|
name [Required]k8s.io/api/core/v1.ResourceName | name of this resource. |
nominalQuota [Required]k8s.io/apimachinery/pkg/api/resource.Quantity | nominalQuota is the quantity of this resource that is available for Workloads admitted by this ClusterQueue at a point in time. The nominalQuota must be non-negative. nominalQuota should represent the resources in the cluster available for running jobs (after discounting resources consumed by system components and pods not managed by kueue). In an autoscaled cluster, nominalQuota should account for resources that can be provided by a component such as Kubernetes cluster-autoscaler. If the ClusterQueue belongs to a cohort, the sum of the quotas for each (flavor, resource) combination defines the maximum quantity that can be allocated by a ClusterQueue in the cohort. |
borrowingLimit k8s.io/apimachinery/pkg/api/resource.Quantity | borrowingLimit is the maximum amount of quota for the [flavor, resource] combination that this ClusterQueue is allowed to borrow from the unused quota of other ClusterQueues in the same cohort. In total, at a given time, Workloads in a ClusterQueue can consume a quantity of quota equal to nominalQuota+borrowingLimit, assuming the other ClusterQueues in the cohort have enough unused quota. If null, it means that there is no borrowing limit. If not null, it must be non-negative. borrowingLimit must be null if spec.cohort is empty. |
lendingLimit k8s.io/apimachinery/pkg/api/resource.Quantity | lendingLimit is the maximum amount of unused quota for the [flavor, resource] combination that this ClusterQueue can lend to other ClusterQueues in the same cohort. In total, at a given time, ClusterQueue reserves for its exclusive use a quantity of quota equals to nominalQuota - lendingLimit. If null, it means that there is no lending limit, meaning that all the nominalQuota can be borrowed by other clusterQueues in the cohort. If not null, it must be non-negative. lendingLimit must be null if spec.cohort is empty. This field is in beta stage and is enabled by default. |
ResourceUsage
Appears in:
Field | Description |
---|---|
name [Required]k8s.io/api/core/v1.ResourceName | name of the resource |
total [Required]k8s.io/apimachinery/pkg/api/resource.Quantity | total is the total quantity of used quota, including the amount borrowed from the cohort. |
borrowed [Required]k8s.io/apimachinery/pkg/api/resource.Quantity | Borrowed is quantity of quota that is borrowed from the cohort. In other words, it's the used quota that is over the nominalQuota. |
StopPolicy
(Alias of string
)
Appears in:
TopologyAssignment
Appears in:
Field | Description |
---|---|
levels [Required][]string | levels is an ordered list of keys denoting the levels of the assigned topology (i.e. node label keys), from the highest to the lowest level of the topology. |
domains [Required][]TopologyDomainAssignment | domains is a list of topology assignments split by topology domains at the lowest level of the topology. |
TopologyDomainAssignment
Appears in:
Field | Description |
---|---|
values [Required][]string | values is an ordered list of node selector values describing a topology domain. The values correspond to the consecutive topology levels, from the highest to the lowest. |
count [Required]int32 | count indicates the number of Pods to be scheduled in the topology domain indicated by the values field. |
TopologyReference
(Alias of string
)
Appears in:
TopologyReference is the name of the Topology.
WorkloadSpec
Appears in:
WorkloadSpec defines the desired state of Workload
Field | Description |
---|---|
podSets [Required][]PodSet | podSets is a list of sets of homogeneous pods, each described by a Pod spec and a count. There must be at least one element and at most 8. podSets cannot be changed. |
queueName [Required]string | queueName is the name of the LocalQueue the Workload is associated with. queueName cannot be changed while .status.admission is not null. |
priorityClassName [Required]string | If specified, indicates the workload's priority. "system-node-critical" and "system-cluster-critical" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the workload priority will be default or zero if there is no default. |
priority [Required]int32 | Priority determines the order of access to the resources managed by the ClusterQueue where the workload is queued. The priority value is populated from PriorityClassName. The higher the value, the higher the priority. If priorityClassName is specified, priority must not be null. |
priorityClassSource [Required]string | priorityClassSource determines whether the priorityClass field refers to a pod PriorityClass or kueue.x-k8s.io/workloadpriorityclass. Workload's PriorityClass can accept the name of a pod priorityClass or a workloadPriorityClass. When using pod PriorityClass, a priorityClassSource field has the scheduling.k8s.io/priorityclass value. |
active [Required]bool | Active determines if a workload can be admitted into a queue. Changing active from true to false will evict any running workloads. Possible values are:
Defaults to true |
maximumExecutionTimeSeconds int32 | maximumExecutionTimeSeconds if provided, determines the maximum time, in seconds, the workload can be admitted before it's automatically deactivated. If unspecified, no execution time limit is enforced on the Workload. |
WorkloadStatus
Appears in:
WorkloadStatus defines the observed state of Workload
Field | Description |
---|---|
admission [Required]Admission | admission holds the parameters of the admission of the workload by a ClusterQueue. admission can be set back to null, but its fields cannot be changed once set. |
requeueState RequeueState | requeueState holds the re-queue state when a workload meets Eviction with PodsReadyTimeout reason. |
conditions []k8s.io/apimachinery/pkg/apis/meta/v1.Condition | conditions hold the latest available observations of the Workload current state. The type of the condition could be:
|
reclaimablePods []ReclaimablePod | reclaimablePods keeps track of the number pods within a podset for which the resource reservation is no longer needed. |
admissionChecks []AdmissionCheckState | admissionChecks list all the admission checks required by the workload and the current status |
resourceRequests []PodSetRequest | resourceRequests provides a detailed view of the resources that were requested by a non-admitted workload when it was considered for admission. If admission is non-null, resourceRequests will be empty because admission.resourceUsage contains the detailed information. |
accumulatedPastExexcutionTimeSeconds int32 | accumulatedPastExexcutionTimeSeconds holds the total time, in seconds, the workload spent
in Admitted state, in the previous |
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.