cncf / cncf/mentoring

[CNCF LFX Proposal] Velero CSI E2E Testing

Open
#1,997 20 comments 2 reactions 0 assignees View on GitHub
2026 CNCF Approved Exported lfx mentorship Maintainer/Contribex Approved Mentors Confirmed Proposal Term 3: Sept-Nov Validation Passed
Dominant language
JavaScript
Stars
3.1k
Forks
816
Avg merge
12h 32m
Merged PRs (30d)
8

Description

### CNCF Project

Velero

### Term

2026 Term 3 (Sep-Nov)

### Program Name

Add CSI Snapshot E2E Tests to Kind CI

### Program Description

## Description

Velero supports CSI volume snapshots for backing up and restoring persistent volumes, and e2e tests for this functionality already exist in the codebase, labeled with `Snapshot`, `CSISnapshot`, and `CSIDataMover` in the Ginkgo test suite. However, these tests never run in the project's Kind-based CI pipeline.

The Kind e2e workflow (`e2e-test-kind.yaml`) creates a cluster with MinIO for object storage but installs no CSI driver, no external-snapshotter, and no snapshot controller. The Ginkgo label matrix explicitly excludes all `Snapshot` and `CSI*` labels, so existing CSI tests are filtered out of every PR check and nightly run.

This means CSI snapshot regressions are only caught late, during manual testing against real cloud providers, rather than in automated CI on every PR.

The [kubernetes-csi/csi-driver-host-path](https://github.com/kubernetes-csi/csi-driver-host-path) project provides a lightweight CSI driver that supports VolumeSnapshots and VolumeGroupSnapshots on local storage, runs on single-node Kind clusters, and requires no cloud infrastructure. It is the approach recommended in the upstream tracking issue [#7507](https://github.com/velero-io/velero/issues/7507).

## Expected outcomes

By the end of the term, the mentee will have contributed the following to the Velero project:

- **CSI infrastructure in Kind CI** -- install external-snapshotter CRDs, snapshot controller, and csi-driver-host-path in the Kind e2e workflow, with a StorageClass and VolumeSnapshotClass configured for testing.
- **Existing CSI tests enabled and passing** -- add `Snapshot` and `CSI*` labels to the Kind CI Ginkgo label matrix, fix any test failures when running against csi-driver-host-path, and ensure tests in `test/e2e/basic/backup-volume-info/` pass reliably.
- **New VolumeGroupSnapshot (VGS) e2e test scenarios** -- add test coverage for VGS backup and restore using csi-driver-host-path's VolumeGroupSnapshot support.
- **CI workflow updated** -- the `e2e-test-kind.yaml` GitHub Actions workflow runs CSI snapshot tests as part of the standard PR check suite.
- **Documentation** describing the Kind CSI test setup, how to run CSI tests locally, and how to add new CSI test scenarios.
- **Blog post** on the Velero blog summarizing the work, the CSI e2e architecture, and lessons learned.

### Technologies

Go, Kubernetes, CSI, GitHub Actions

### Skills same as Technologies?

- [ ] Yes, the required skills are the same as the technologies listed above.

### Required/Desirable Skills

Go, Kubernetes, container storage concepts (PVC/PV/CSI/VolumeSnapshots), GitHub Actions CI, shell scripting

### Mentors

Shubham Pampattiwar | @shubham-pampattiwar | spampatt@redhat.com | spampatt
Tiger Kaovilai | @kaovilai | tkaovila@redhat.com | tig

### Upstream Issue URL

https://github.com/velero-io/velero/issues/7507

### 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 - Velero: Add CSI Snapshot E2E Tests to Kind CI (2026 Term 3)](https://mentorship.lfx.linuxfoundation.org/project/b46bf26c-b458-45eb-b842-cbeccfc8b04a)

Contributor guide

Open the contributing guide

Research direction

Start with the upstream tracking issue #7507, the `e2e-test-kind.yaml` workflow, and the existing CSI tests in `test/e2e/basic/backup-volume-info/`. Read how the Kind cluster and Ginkgo label matrix are currently configured, then investigate adding the CSI infrastructure and enabling those tests. Done means the CSI tests run reliably in Kind CI, with new VolumeGroupSnapshot scenarios and the requested documentation and blog post.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, go, kubernetes
Domain
ci-cd, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.