How velero-io/velero works
Velero is a Kubernetes backup, restore, and cluster-migration system with a local CLI and an in-cluster server. The main workflow is to request a backup, capture cluster resources and persistent-volume data, store backup artifacts, then request a restore that recreates resources and recovers volume data. Scheduling, deletion, and plugin-driven storage or resource actions are important supporting capabilities. The README establishes the product workflow; the tree identifies the major subsystems, but sampled source is limited, so several internal connections are intentionally omitted.
Main entry points: controller Controllers · backup Backup engine · restore Restore engine · manager.go Plugin manager
Components 23
User interfaces
- Velero CLI
pkg/cmd/cli - Server startup
pkg/cmd/server/server.go
Kubernetes control plane
- Velero APIs
pkg/apis/velero - Controllers
pkg/controller
Backup and restore
- Backup engine
pkg/backup - Restore engine
pkg/restore - Schedules
pkg/controller/schedule_controller.go - Backup deletion
pkg/controller/backup_deletion_controller.go - Resource actions
pkg/backup/actions - Restore actions
pkg/restore/actions
Storage and volume data
- Object persistence
pkg/persistence - Backup object store
pkg/repository - Backup repositories
pkg/repository - Volume snapshots
- Pod volume backup
pkg/podvolume - Data movement
pkg/datamover - Data path services
pkg/datapath
Extensibility
- Plugin manager
pkg/plugin/clientmgmt/manager.go - Plugin interfaces
pkg/plugin/framework
Other components
- Operator
- Kubernetes API
- Cloud object storage
- Snapshot providers
Connections 27
- Operator → Velero CLI: runs commands
- Velero CLI → Kubernetes API: submits requests
- Server startup → Controllers: starts controllers
- Controllers → Kubernetes API: watches resources
- Controllers → Velero APIs: reconciles resources
- Velero CLI → Velero APIs: requests operations
- Controllers → Backup engine: dispatches backups
- Controllers → Restore engine: dispatches restores
- Controllers → Schedules: manages schedules
- Controllers → Backup deletion: dispatches deletion
- Backup engine → Resource actions: applies actions
- Restore engine → Restore actions: applies actions
- Backup engine → Object persistence: stores artifacts
- Restore engine → Object persistence: reads artifacts
- Object persistence → Backup object store: uses store
- Backup object store → Cloud object storage: stores objects
- Backup engine → Volume snapshots: captures volumes
- Restore engine → Volume snapshots: restores volumes
- Backup engine → Pod volume backup: backs up pod data
- Restore engine → Pod volume backup: restores pod data
- Data movement → Data path services: uses data paths
- Data movement → Backup repositories: uses repositories
- Volume snapshots → Snapshot providers: requests snapshots
- Server startup → Plugin manager: initializes plugins
- Plugin manager → Plugin interfaces: adapts plugins
- Resource actions → Plugin manager: resolves plugins
- Restore actions → Plugin manager: resolves plugins