Skip to content

Release: Kueue 0.1.0-alpha  #1251

Description

@Utkarshpandey0001

Kueue 0.1.0-alpha: Visual Batch Workload Management in Headlamp

This is the first alpha release of the Kueue plugin for Headlamp. The plugin adds a dedicated Kueue section to Headlamp where users can monitor queues and workloads directly from the Headlamp UI. It provides list and detail pages for Cohorts, ClusterQueues, LocalQueues, ResourceFlavors, and Workloads, showing queue status, available resources, workload priority, resource usage, and pending or admitted workloads. Related resources are linked together, making it easy to move between queues and workloads without searching through separate YAML files.

Kueue helps Kubernetes manage batch workloads when a cluster has limited CPU, memory, GPUs, or other resources. It places workloads into queues and decides which ones can start and which ones need to wait. The plugin makes this process easier to follow by showing Kueue information in a clear visual form inside Headlamp. Users can quickly understand why a workload is waiting, which queue it belongs to, which resources were assigned to it, and how resources are being shared across the cluster.

Demo: Managing Kueue Workloads in Headlamp

kueue_release_under_10MB.mp4

Making Batch Workloads Easier to Understand

Kueue information can be viewed with kubectl, but users often need to move between several resources and read large YAML files to understand why a workload is waiting or where it will run.

A user may need to answer simple questions such as:

  • Which queue did this workload enter?
  • Has the workload been allowed to start?
  • If it is waiting, what is blocking it?
  • Which ClusterQueue provides resources to a LocalQueue?
  • How much CPU or memory is available or already in use?
  • Which ResourceFlavor was assigned?
  • Which ClusterQueues are sharing resources through a Cohort?

The plugin organizes this information into clear list and detail pages. Related resource names are also clickable, helping users follow the full path without searching for every resource separately.

For Headlamp Users: Kueue Resources in the Existing Dashboard

For Headlamp users, the plugin adds a dedicated Kueue section to the sidebar.

It helps users:

  • find Kueue resources without leaving Headlamp
  • see queue and workload status in readable tables
  • inspect configuration without starting from raw YAML
  • open Kubernetes conditions and events from detail pages
  • move between related queues, workloads, Cohorts, and ResourceFlavors
  • use Headlamp's existing YAML and resource actions
  • receive a clear message when their Kubernetes account does not have access to a resource

For Kueue Users: A Visual View of Queues and Workloads

For Kueue users, the plugin provides a visual way to understand how batch workloads move through the queue system.

It helps users:

  • compare ClusterQueues and their available resources
  • see which LocalQueues use a ClusterQueue
  • find pending and admitted Workloads connected to a queue
  • check whether a Workload is waiting, admitted, finished, or unable to run
  • inspect Workload resource requests and assigned resources
  • understand how Cohorts group ClusterQueues for resource sharing
  • inspect the node rules represented by ResourceFlavors

Alpha Focus: The Main Kueue Resource Flow

This first alpha focuses on the main resources used to understand queueing and workload status:

Cohort -> ClusterQueue -> LocalQueue -> Workload
             |
             -> ResourceFlavor

The plugin includes views for:

  • Cohorts
  • ClusterQueues
  • LocalQueues
  • ResourceFlavors
  • Workloads

The views are read-only in this alpha. Users can inspect resources and use the standard Headlamp resource actions, but the plugin does not add its own create, edit, pause, resume, or delete workflows.

Included in This First Alpha

Kueue Navigation and Access Handling

The plugin adds a Kueue section to the Headlamp sidebar with separate pages for every supported resource.

Image

This alpha includes:

  • routes for all supported Kueue resources
  • list and detail pages that match the rest of Headlamp
  • readable status values instead of large raw objects
  • namespace filtering for LocalQueues and Workloads
  • Kubernetes conditions and events on detail pages where available
  • permission checks before loading a page
  • clear access messages when the current user cannot view a resource
  • access to raw YAML through Headlamp's standard actions

Cohorts: Understanding Shared Resources

A Cohort groups ClusterQueues that can share unused resources with each other.

Image Image Image

The Cohort pages show:

  • parent Cohort
  • child Cohorts
  • member ClusterQueues
  • resource groups and covered resources
  • referenced ResourceFlavors
  • normal resource limits, borrowing limits, and lending limits
  • fair-sharing weight and current weighted share
  • direct links to related Cohorts, ClusterQueues, and ResourceFlavors

ClusterQueues: Capacity, Usage, and Status

A ClusterQueue represents the cluster-level resources available to workloads.

Image

The ClusterQueue list gives a quick view of:

  • Cohort
  • queueing strategy
  • resource groups
  • ResourceFlavors
  • pending Workloads
  • admitted Workloads
  • current status
Image Image

The detail page also shows:

  • stop policy and namespace selection rules
  • resource limits for CPU, memory, and other resources
  • borrowing and lending limits
  • currently reserved and used resources
  • preemption settings
  • rules for choosing between ResourceFlavors
  • admission checks
  • fair-sharing settings
  • Kueue conditions and Kubernetes events
  • related LocalQueues and Workloads with direct links

These sections help users compare what a queue is allowed to use with what it is using now.

LocalQueues: Namespace-Level Queue Activity

A LocalQueue is the queue that workloads use inside a Kubernetes namespace. It connects those workloads to a ClusterQueue.

Image Image

The LocalQueue pages show:

  • namespace
  • connected ClusterQueue
  • stop policy
  • pending, admitted, and reserving Workload counts
  • current status and conditions
  • related Workloads from the same namespace
  • direct links to the ClusterQueue and Workload detail pages

ResourceFlavors: The Type of Resources a Workload Can Use

A ResourceFlavor describes a type of cluster resource. For example, it can represent nodes with a particular label, hardware type, or placement rule.

Image

The ResourceFlavor pages show:

  • node labels
  • node taints
  • tolerations
  • topology information
  • links from ClusterQueue and Cohort resource tables

Workloads: Queue, Priority, and Current State

A Workload represents the resource request that Kueue evaluates before allowing a batch job to start.

Image Image Image

The Workload list shows:

  • name and namespace
  • LocalQueue
  • priority and priority class
  • whether the Workload is active
  • whether it has been admitted
  • whether it has finished
  • a readable current status
  • age
Image Image

The Workload detail page shows:

  • linked LocalQueue and assigned ClusterQueue
  • priority and owner information
  • requested Pod Sets and pod counts
  • CPU, memory, and other resource requests
  • assigned ResourceFlavors and admitted resource usage
  • admission checks and their messages
  • reclaimable pods
  • requeue information
  • maximum and previous execution time
  • assigned or suggested clusters when available
  • scheduling and eviction information
  • Kueue conditions and Kubernetes events

Navigation Between Related Resources

The plugin connects related resources so users can follow a workload's queue path directly from the UI.

Image Image

Supported navigation includes:

  • Cohort -> parent and child Cohorts
  • Cohort -> member ClusterQueues
  • Cohort -> ResourceFlavors
  • ClusterQueue -> Cohort
  • ClusterQueue -> ResourceFlavors
  • ClusterQueue -> related LocalQueues
  • ClusterQueue -> related pending and admitted Workloads
  • LocalQueue -> ClusterQueue
  • LocalQueue -> related Workloads in its namespace
  • Workload -> LocalQueue
  • admitted Workload -> assigned ClusterQueue

Both pending Workloads connected through a LocalQueue and admitted Workloads assigned directly to a ClusterQueue are included. If part of the related data cannot be loaded, the page explains what is unavailable instead of showing a misleading empty result.

Installing and Running the Plugin

Install from the Headlamp Plugin Catalog

Once the release is available in the catalog:

  1. Open Headlamp.
  2. Go to Settings.
  3. Open Plugins.
  4. Search for Kueue.
  5. Install and enable the plugin.
  6. Open a Kubernetes cluster where Kueue is installed.
  7. Use the Kueue section in the sidebar.

Run Locally for Development

git clone https://github.com/headlamp-k8s/plugins.git
cd plugins/kueue
npm install
npm run start

To build the plugin:

npm run build

Requirements

To view Kueue resources in Headlamp, you need:

  • Headlamp Desktop or a Headlamp installation in a cluster
  • a Kubernetes cluster that Headlamp can access
  • Kueue installed in that cluster
  • the Kueue v1beta2 resource definitions used by this alpha
  • Kubernetes permission to view the required Kueue resources
  • Node.js v20.11.1 or later when building from source

If Kueue is not installed, its resources will not be available. If the current Kubernetes user does not have permission to view a resource, the plugin displays an access message.

Testing and Quality Checks

The plugin includes sample Cohort, ClusterQueue, LocalQueue, ResourceFlavor, and Job files for local testing. The sample Job allows Kueue to create a real Workload that can be inspected in Headlamp.

Development checks include:

  • TypeScript checks
  • ESLint
  • Prettier formatting
  • unit tests for resource values and relationships
  • production build verification

Contributors

This plugin was created as part of the Linux Foundation Mentorship (LFX) program and developed with review and guidance from the Headlamp and Kueue communities.

Contributor Role
@kannon92 Mentor support, Kueue guidance, technical review, and feedback
@illume Mentor support, Headlamp maintainer review, technical guidance, and feedback
@Utkarshpandey0001 Plugin design and implementation, tests, UI/UX, documentation, demo preparation, and release preparation

Thank you to the Headlamp and Kueue maintainers and reviewers for helping shape the plugin through technical guidance, testing feedback, and code review.

Next: Map View, Metrics, and Monitoring

Possible follow-up work includes:

  • adding a map view to show the connections between Cohorts, ClusterQueues, LocalQueues, and Workloads
  • adding metrics for queue capacity, resource usage, and pending or admitted Workloads
  • adding monitoring views that make queue health and Workload status easier to track

This release is intended as the first usable alpha for viewing and understanding Kueue batch queues and Workloads in Headlamp. Community feedback will help guide the map, metrics, and monitoring work planned for future releases.

Feedback

This is the first public alpha release of the Kueue plugin for Headlamp. Feedback, bug reports, and feature ideas are welcome.

Bug reports and feature requests: Open an issue

Plugin source: headlamp-k8s/plugins/kueue

License: Apache 2.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions