[CNCF LFX Proposal] Headlamp Velero Plugin
- Dominant language
- JavaScript
- Stars
- 3.1k
- Forks
- 816
- Avg merge
- 12h 32m
- Merged PRs (30d)
- 8
Description
### CNCF Project
Headlamp
### Term
2026 Term 3 (Sep-Nov)
### Program Name
Velero Backup Management Plugin
### Program Description
## Description
[Velero](https://velero.io) is the most widely adopted CNCF project for Kubernetes backup, restore, and disaster recovery. It manages cluster state and persistent volumes through a set of CRDs (Backups, Restores, Schedules, BackupStorageLocations, VolumeSnapshotLocations). Today, Velero has no graphical interface, operators rely entirely on the `velero` CLI and `kubectl` to manage backup operations, inspect failures, and monitor schedule health.
[Headlamp](https://headlamp.dev) provides an extensible Kubernetes UI with a growing plugin ecosystem for CNCF projects including Flux, KEDA, Knative, and Kubeflow. This project adds Velero to that ecosystem by building a Headlamp plugin that gives cluster operators a web UI for day-to-day backup management.
The mentee will develop a TypeScript/React plugin using the Headlamp plugin SDK that reads and interacts with Velero's CRDs via the Kubernetes API. The plugin will follow existing Headlamp plugin conventions (sidebar registration, list/detail views, status indicators) established by plugins like Flux and Knative.
## Expected outcomes
- A "Velero" sidebar section in Headlamp with sub-items for each resource type
- List views for Backups, Restores, and Schedules displaying name, status, timestamps, and included/excluded resources
- Detail views for each resource showing full spec, status conditions, phase progression, and related resources (e.g., a Backup's associated Restore objects)
- List and detail views for BackupStorageLocations and VolumeSnapshotLocations with availability status
- Ability to create on-demand Backups and Restores from the UI via Kubernetes API calls
- An overview dashboard summarizing backup health: recent backup status, schedule adherence, and storage location availability
- Unit tests and plugin documentation
- Plugin published to the headlamp-k8s/plugins repository
- A blog post on the Kubernetes blog showcasing the plugin
- Maps integration, Velero resources displayed on the Headlamp map view
### Technologies
TypeScript, React, Kubernetes, Headlamp Plugin SDK, Velero CRDs
### Skills same as Technologies?
- [ ] Yes, the required skills are the same as the technologies listed above.
### Required/Desirable Skills
TypeScript, React, Kubernetes fundamentals (CRDs, RBAC, API resources), UI/UX design basics
### Mentors
Rene Dudfield | @illume | renedudfield@microsoft.com | illume
Shubham Pampattiwar | @shubham-pampattiwar | spampatt@redhat.com | spampatt
Daniel Jiang | @reasonerjt| [daniel.jiang@broadcom.com](mailto:daniel.jiang@broadcom.com) | danieljt
### Upstream Issue URL
https://github.com/headlamp-k8s/plugins/issues/939
### Application Prerequisites
- [x] Resume
- [x] Cover Letter
- [ ] School Enrollment Verification
- [ ] Participation Permission from school or employer
- [ ] Coding Challenge
- [ ] Custom Prerequisite (fill in details below)
### Coding Challenge URL
_No response_
### Custom Prerequisite Name
_No response_
### Custom Prerequisite Description
_No response_
### Custom Prerequisite — File Upload
- [ ] Yes — completion of this task requires the mentee to submit a file.
---
**LFX program:** [CNCF - Headlamp: Velero Backup Management Plugin (2026 Term 3)](https://mentorship.lfx.linuxfoundation.org/project/6ae7ef5c-c090-4c08-b4b8-f13d8f6aed9e)
Contributor guide
Research direction
Begin with upstream issue 939 and inspect the existing Flux and Knative plugins for Headlamp plugin conventions, including sidebar registration and list/detail views. Done means a published Velero plugin with the requested resource views, create actions, health dashboard, map integration, unit tests, documentation, and blog post.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, react, typescript
- Domain
- devops, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100