Skip to content

Commit ab129df

Browse files
Added kueue setup make target
1 parent 29db9a7 commit ab129df

File tree

2 files changed

+82
-0
lines changed

2 files changed

+82
-0
lines changed

Makefile

+5
Original file line numberDiff line numberDiff line change
@@ -400,3 +400,8 @@ image-mnist-job-test-build: ## Build container image with the MNIST job.
400400
.PHONY: image-mnist-job-test-push
401401
image-mnist-job-test-push: image-mnist-job-test-build ## Push container image with the MNIST job.
402402
podman push ${MNIST_JOB_TEST_IMG}
403+
404+
# Make target for generating kueue related resources
405+
.PHONY: kueue-setup
406+
kueue-setup:
407+
bash scripts/setup-kueue-resources.sh

scripts/setup-kueue-resources.sh

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/bin/bash
2+
3+
# Function to prompt the user for input with a default value
4+
prompt_for_input() {
5+
local prompt_message=$1
6+
local default_value=$2
7+
local user_input
8+
9+
read -p "$prompt_message [$default_value] ): " user_input
10+
echo "${user_input:-$default_value}"
11+
}
12+
13+
echo "ClusterQueue Configuration"
14+
15+
# Using function to get user inputs
16+
name=$(prompt_for_input "Enter your Cluster Queue name, (default : " "cluster-queue")
17+
cpu=$(prompt_for_input "Enter your Cluster Queue CPU (The amount of CPUs available: (default: " "16")
18+
memory=$(prompt_for_input "Enter your Cluster Queue Memory (The amount of memory available) (default: " "60Gi")
19+
gpu=$(prompt_for_input "Enter your Cluster Queue GPU count (The amount of GPUs available) (default: " "0")
20+
pods=$(prompt_for_input "Enter your Cluster Queue Pods limit (The maximum amount of pods that can be created) (default:" "10")
21+
flavour=$(prompt_for_input "Enter your Cluster Queue Resource Flavour (default: " "default-flavor")
22+
23+
# Applying ClusterQueue configuration
24+
kubectl apply --server-side -f - <<EOF
25+
apiVersion: kueue.x-k8s.io/v1beta1
26+
kind: ClusterQueue
27+
metadata:
28+
name: $name
29+
spec:
30+
namespaceSelector: {} # match all.
31+
resourceGroups:
32+
- coveredResources: ["cpu", "memory", "pods", "nvidia.com/gpu"]
33+
flavors:
34+
- name: $flavour
35+
resources:
36+
- name: "cpu"
37+
nominalQuota: $cpu
38+
- name: "memory"
39+
nominalQuota: $memory
40+
- name: "pods"
41+
nominalQuota: $pods
42+
- name: "nvidia.com/gpu"
43+
nominalQuota: $gpu
44+
EOF
45+
echo "Cluster Queue $name applied!"
46+
47+
# Applying ResourceFlavor configuration
48+
echo "Applying Resource Flavour"
49+
kubectl apply --server-side -f - <<EOF
50+
apiVersion: kueue.x-k8s.io/v1beta1
51+
kind: ResourceFlavor
52+
metadata:
53+
name: $flavour
54+
EOF
55+
echo "Resource Flavour $flavour applied!"
56+
57+
# Applying LocalQueue configuration
58+
echo "LocalQueue Configuration"
59+
lq_name=$(prompt_for_input "Enter your Local Queue name (default: " "local-queue-default")
60+
namespace=$(prompt_for_input "Enter your Local Queue namespace (default: " "default")
61+
default=$(prompt_for_input "Is this the default LQ (default: " "false")
62+
63+
kubectl apply --server-side -f - <<EOF
64+
apiVersion: kueue.x-k8s.io/v1beta1
65+
kind: LocalQueue
66+
metadata:
67+
namespace: $namespace
68+
name: $lq_name
69+
annotations:
70+
"kueue.x-k8s.io/default-queue": "$default"
71+
spec:
72+
clusterQueue: $name
73+
EOF
74+
echo "Local Queue $lq_name applied!"
75+
76+
77+
echo "Configuration applied"

0 commit comments

Comments
 (0)