Skip to content

feat: Introduce Kueue Headlamp plugin with a dashboard for cluster qu…#530

Draft
Latish705 wants to merge 1 commit intoheadlamp-k8s:mainfrom
Latish705:main
Draft

feat: Introduce Kueue Headlamp plugin with a dashboard for cluster qu…#530
Latish705 wants to merge 1 commit intoheadlamp-k8s:mainfrom
Latish705:main

Conversation

@Latish705
Copy link

Summary
This PR introduces a new plugin, @headlamp-k8s/kueue, to visualize and manage Kueue resources within Headlamp.

Changes
New Plugin: Added plugins/kueue directory.
Metadata: Configured
package.json
,
artifacthub-pkg.yml
, and
knip.json
for the new plugin.
Documentation: Added
README.md
with installation and usage instructions.
UI: Implemented basic sidebar registration for the Kueue dashboard.

…eues and workloads.

Signed-off-by: Latish705 <latishadwani705@gmail.com>
@kannon92
Copy link

kannon92 commented Mar 1, 2026

Excited to see this. I'm happy to help review from Kueue side once this is ready.

@kannon92
Copy link

kannon92 commented Mar 1, 2026

Kueue does a UI named KueueViz. https://github.com/kubernetes-sigs/kueue/tree/main/cmd/kueueviz

It would be cool if we could figure out to reuse some of this with headlamp architecture.

@mimowo
Copy link

mimowo commented Mar 2, 2026

Thank you for driving the effort! Excited to see people building the integrations.

Do you already have some screens maybe showing the new plugin at action?

@kimminw00
Copy link

kimminw00 commented Mar 4, 2026

In a MultiKueue setup, if this plugin is running on the management cluster, will the resources (like ClusterQueue, Workload status) provide sufficient visibility into the usage of connected worker clusters? Or should we consider fetching additional metrics(ex. OCM) to show the complete picture?

@mimowo
Copy link

mimowo commented Mar 4, 2026

Do you maybe have already some share-able screenshots to see how this is looking / working?

@kimminw00
Copy link

kimminw00 commented Mar 4, 2026

kueue-batch

Here is a screenshot of what it looks like running on my local setup.
I obtained the screenshot above by applying the following YAMLs:

# cluster-queue.yaml
apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
  name: cluster-queue
spec:
  namespaceSelector: {} 
  resourceGroups:
  - coveredResources: ["cpu", "memory", "nvidia.com/gpu"]
    flavors:
    - name: "default-flavor"
      resources:
      - name: "cpu"
        nominalQuota: 10
      - name: "memory"
        nominalQuota: 20Gi
      - name: "nvidia.com/gpu"
        nominalQuota: 4

---
      
# resource-flavor.yaml
apiVersion: kueue.x-k8s.io/v1beta1
kind: ResourceFlavor
metadata:
  name: default-flavor

---

# local-queue.yaml
apiVersion: kueue.x-k8s.io/v1beta1
kind: LocalQueue
metadata:
  namespace: default
  name: user-queue
spec:
  clusterQueue: cluster-queue

---

apiVersion: ray.io/v1
kind: RayJob
metadata:
  name: ray-job-sample
  namespace: default
  labels:
    kueue.x-k8s.io/queue-name: user-queue 
spec:
  shutdownAfterJobFinishes: true
  entrypoint: python -c "import time; print('Hello Kueue'); time.sleep(10)"
  rayClusterSpec:
    rayVersion: '2.9.0'
    headGroupSpec:
      rayStartParams:
        dashboard-host: '0.0.0.0'
      template:
        spec:
          containers:
          - name: ray-head
            image: rayproject/ray:2.9.0
            resources:
              requests:
                cpu: 1
                memory: 2Gi
              limits:
                cpu: 1
                memory: 2Gi
    workerGroupSpecs:
    - groupName: small-group
      replicas: 1
      minReplicas: 1
      maxReplicas: 1
      rayStartParams: {}
      template:
        spec:
          containers:
          - name: ray-worker
            image: rayproject/ray:2.9.0
            resources:
              requests:
                cpu: 1
                memory: 2Gi
              limits:
                cpu: 1
                memory: 2Gi

@ashu8912
Copy link
Member

Hii @Latish705 any update on this?? Let us know if you need help finishing this up

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants