Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Headlamp Kueue Plugin

A proof-of-concept Headlamp plugin that surfaces Kueue batch queueing CRDs in the Headlamp dashboard.

Built as part of my application for the "Add Kueue to Headlamp" LFX Mentorship (upstream issue).

What is Kueue?

Kueue is a Kubernetes-native job queueing system. It controls when batch jobs (ML training, CI/CD, data processing) are allowed to start based on available cluster resources. It uses three core CRDs:

  • ClusterQueue — cluster-wide resource pool defining CPU/memory/GPU quota
  • LocalQueue — namespaced entry point for teams, pointing to a ClusterQueue
  • Workload — represents a single job waiting for admission

What This Plugin Does

This prototype registers the three Kueue CRDs with Headlamp's plugin API and adds a tabbed dashboard accessible from the sidebar:

Workloads tab:

  • Columns: Name, Namespace, Queue (spec.queueName), Status (parsed from status.conditions), Age

Local Queues tab:

  • Columns: Name, Namespace, Cluster Queue (spec.clusterQueue), Pending Workloads, Age

Cluster Queues tab:

  • Columns: Name, Cohort (spec.cohort), Pending Workloads, Age

Plugin Integration

  • Registers a sidebar entry under Cluster → Kueue
  • Registers a route at /kueue
  • Uses Headlamp's ResourceListView and makeCustomResourceClass APIs
  • CRD API group: kueue.x-k8s.io/v1beta1

What This Does NOT Do (Yet)

This is a proof-of-concept. The following are planned for the full mentorship project:

  • Detail pages with config display, status conditions, and admitted workloads
  • Mutating actions (pause/resume workloads)
  • Relational navigation (ClusterQueue → LocalQueues → Workloads)
  • Map view enhancements
  • Tests and Storybook stories

Prerequisites

  • Headlamp installed and running
  • A Kubernetes cluster with Kueue installed
  • Node.js >= 20

Getting Started

# Clone and install
git clone https://github.com/KumarADITHYA123/Add-Kueue-to-Headlamp-Kubernetes-Batch-Queueing-UI.git
cd Add-Kueue-to-Headlamp-Kubernetes-Batch-Queueing-UI
npm install

# Development mode (auto-reload)
npm run start

# Build for production
npm run build

# Link to Headlamp (Linux/macOS)
mkdir -p ~/.config/Headlamp/plugins
ln -s $(pwd)/dist ~/.config/Headlamp/plugins/kueue-plugin

# Link to Headlamp (Windows)
# Copy the dist/ folder to %APPDATA%\Headlamp\Config\plugins\kueue-plugin

Project Structure

src/
├── index.tsx           # Tabbed dashboard component + route/sidebar registration
└── kueueResources.ts   # Kueue CRD class definitions (ClusterQueue, LocalQueue, Workload)

Related Links

Author

Bathula Kumar AdithyaGitHub | LinkedIn

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages