Back to all scenarios
Scenario #321
Storage
Kubernetes v1.25, CSI Snapshotter with Velero

Volume Snapshot Garbage Collection Fails

Volume snapshots piled up because snapshot objects were not getting garbage collected after use.

Find this helpful?
What Happened

Snapshots triggered via Velero remained in the cluster even after restore, eventually exhausting cloud snapshot limits and storage quota.

Diagnosis Steps
  • 1Listed all VolumeSnapshots and VolumeSnapshotContents — saw hundreds still in ReadyToUse: true state.
  • 2Checked finalizers on snapshot objects — found snapshot.storage.kubernetes.io/volumesnapshot not removed.
  • 3Velero logs showed successful restore but no cleanup action.
Root Cause

Snapshot GC controller didn’t remove finalizers due to missing permissions in Velero's service account.

Fix/Workaround
• Added required RBAC rules to Velero.
• Manually deleted stale snapshot objects.
Lessons Learned

Improperly configured snapshot permissions can stall GC.

How to Avoid
  • 1Always test snapshot and restore flows end-to-end.
  • 2Enable automated cleanup in your backup tooling.