Managing jobs and workloads¶
When you create jobs in your cluster, Red Hat build of Kueue represents each job as a Workload object to track resource requirements, decisions, and statuses.
Red Hat build of Kueue does not directly manipulate your jobs. Instead, Red Hat build of Kueue manages Workload objects that represent the resource requirements of a job, and syncs any decisions and statuses between the two objects.
Labeling namespaces to allow Red Hat build of Kueue to manage jobs¶
You must add the kueue.openshift.io/managed=true label to each namespace where you want Red Hat build of Kueue to manage jobs, because the Operator only enforces policies on labeled namespaces.
Prerequisites
- You have cluster administrator permissions.
- The Red Hat build of Kueue Operator is installed on your cluster, and you have created a
Kueuecustom resource (CR). - You have installed the OpenShift CLI (
oc).
Procedure
-
Add the
kueue.openshift.io/managed=truelabel to a namespace by running the following command:When you add this label, you instruct the Red Hat build of Kueue Operator that the namespace is managed by its webhook admission controllers. As a result, any Red Hat build of Kueue resources within that namespace are properly validated and mutated.
Configuring label policies for jobs¶
You can configure the spec.config.workloadManagement.labelPolicy field in the Kueue CR to control whether Red Hat build of Kueue manages or ignores specific jobs.
The allowed values are QueueName, None, and empty ("").
If the labelPolicy setting is omitted or empty (""), the default policy is that Red Hat build of Kueue manages jobs that have a kueue.x-k8s.io/queue-name label, and ignores jobs that do not have the kueue.x-k8s.io/queue-name label. This is the same workflow as if the labelPolicy is set to QueueName.
If the labelPolicy setting is set to None, jobs are managed by Red Hat build of Kueue even if they do not have the kueue.x-k8s.io/queue-name label.
apiVersion: kueue.openshift.io/v1
kind: Kueue
metadata:
labels:
app.kubernetes.io/name: kueue-operator
app.kubernetes.io/managed-by: kustomize
name: cluster
namespace: openshift-kueue-operator
spec:
config:
workloadManagement:
labelPolicy: QueueName
# ...