Repository navigation
Complete backup feature for VMI: add BackupStrategy, documentation, and UI support #1973
Copy link
Copy link
Closed
Labels
kind/documentationCategorizes issue or PR as related to documentationCategorizes issue or PR as related to documentationkind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new feature
Description
Parent issue: #1713
Summary
The backup API refactoring introduced BackupClass as a cluster-scoped resource and simplified BackupJob/BackupPlan by replacing strategyRef and storageRef with backupClassName. The core API work is complete, but integration into applications and user-facing components remains.
Remaining Work
1. Add BackupStrategies to application charts
- Add implemented
BackupStrategyresources to the-rd(resource definition) charts for each supported application, describe as Parameters of a BackupClass strategies all that not break controller backup/restore logic (example VMI: storages, timeouts, ttl, but keep sets of resource and matches untouchable, because on this relies controller logic) - Ensure strategies are properly configured for application types (VMs, VMDisk)
2. Documentation
- Document how to configure Velero as a backup backend
- Document how to create and configure
BackupClassresources - Provide examples for common backup scenarios
3. Dashboard UI
- Update the dashboard to support backup configuration via
BackupClass - Allow users to create and manage
BackupJobandBackupPlanresources through the UI - Allow users trigger restore (feat(dashboard): add restorejob related views #2387)
4. e2e-test
- Cover main functionality of the backup and restore VMI
5. API design issues
- Backups has VM-spectific .status.underlyingResources
- Allow user choose app-specific options in RestoreJobs (example: keep original PVCs/IPs) (added here feat(backups): restore vmi to copy in another namespace #2329)
6. Other bugs
- restore to copy is not working now (Velero DataUploaders can't resrtore to PVC with a new name, ResourceModifiers not applicable in this case, because will applied after upload) (added here feat(backups): restore vmi to copy in another namespace #2329)
- prepareForRestore is not idempotent — re-execution corrupts PVC state
- if user creates a new RestoreJob with the same name, the old -orig PVCs from a previous run might already exist, and the PVC rename logic silently no-ops. This means the Velero Restore would find the restored-but-failed PVCs instead of the originals.
Related Work
This continues the backup API refactoring that introduced:
BackupClass(cluster-scoped resource)- Simplified
BackupJob.spec.applicationRefwith defaultapiGroup: apps.cozystack.io
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/documentationCategorizes issue or PR as related to documentationCategorizes issue or PR as related to documentationkind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new feature
Activity
[-]Complete backup feature: add BackupStrategies to app charts, documentation, and UI support[/-][+]Complete backup feature for VMI: add BackupStrategy, documentation, and UI support[/+]