Lab manifests are generated under demo/ at the repository root during Deploy and Operate . That directory is gitignored — do not create config/ or examples/ at the repo root.
Relative paths in deploy pages (config/…, examples/…) always mean $LAB_DIR/… .
Directory demo/
Directory config/
cluster.yaml argocd-capability.yamlDirectory iam/
Directory examples/
Directory argocd/
in-cluster-secret.yaml kueue-application.yamlDirectory kueue/
queues.yaml batch-nodepool.yamlDirectory workloads/
sample-jobs.yaml burst-jobs.sh
File
Created on
Purpose
cluster.yaml
Cluster (Auto Mode)
eksctl Auto Mode cluster (kueue-lab, Kubernetes 1.36 )
argocd-capability.yaml
Argo CD capability
Managed Argo CD capability (lab-argocd)
iam/argocd-trust-policy.json
Argo CD capability
Trust policy for ArgoCDCapabilityRole
File
Created on
Purpose
in-cluster-secret.yaml
Kueue via GitOps
Register this EKS cluster by ARN as an Argo CD destination (not kubernetes.default.svc)
kueue-application.yaml
Kueue via GitOps
Argo CD Application for the Kueue Helm chart + KueueViz
Notable Helm values in kueue-application.yaml (lab defaults):
Value
Why
enableKueueViz: true
Installs KueueViz with the controller
controllerManager / kueueViz.* nodeSelector + CriticalAddonsOnly
Land on Auto Mode system pool
kueueViz.backend.ingress.enabled: false
Lab uses port-forward, not Ingress
kueueViz.backend.ingress.host: localhost:8081
Chart still uses this host to write ws://localhost:8081 into the frontend ConfigMap
KUEUEVIZ_ALLOWED_ORIGINS
CORS for http://localhost:8080 and http://127.0.0.1:8080
syncPolicy.automated.selfHeal: true
Do not kubectl-patch ConfigMaps/Deployments — edit Helm values instead
Chart pin used in this walkthrough: KUEUE_CHART_VERSION=0.19.1 .
File
Created on
Purpose
queues.yaml
Queues and flavors
Namespaces project-a/b/c, ResourceFlavors spot / on-demand, ClusterQueue shared-batch, LocalQueues — not Argo CD AppProjects
batch-nodepool.yaml
Queues and flavors
Auto Mode NodePool batch allowing Spot (+ On-Demand) for Spot-flavored Jobs
Default quota exports when you generate queues.yaml:
Export
Default
Used for
SPOT_CPU_QUOTA
10
Spot flavor CPU in shared-batch
SPOT_MEMORY_QUOTA
20Gi
Spot flavor memory
ON_DEMAND_CPU_QUOTA
4
On-Demand flavor CPU
ON_DEMAND_MEMORY_QUOTA
8Gi
On-Demand flavor memory
File
Created on
Purpose
sample-jobs.yaml
Queues and flavors
One sample-job per project namespace (busybox, 1 CPU , queue label)
burst-jobs.sh
Verify batch
Clones each tenant’s sample-job with jq into burst-N Jobs (default sleep 180s )
Key
Value example
On
kueue.x-k8s.io/queue-name
project-a
Job metadata.labels — must match a LocalQueue name in that namespace
Kind
Name(s)
Source
Namespace
project-a, project-b, project-c, kueue-system, argocd
queues / Helm / capability
ResourceFlavor
spot, on-demand
queues.yaml
ClusterQueue
shared-batch
queues.yaml
LocalQueue
project-a / b / c (in matching ns)
queues.yaml
NodePool
batch
batch-nodepool.yaml
Application
kueue (ns argocd)
kueue-application.yaml
Secret
in-cluster (ns argocd)
in-cluster-secret.yaml