Velero Backup with Swift and vSphere CSI
Purpose: For platform engineers, operators, shows how to practical configuration notes for running Velero with OpenStack Swift object storage and vSphere CSI snapshots.
This guide documents one concrete platform pattern: using Velero with the OpenStack plugin for Swift object storage and CSI snapshots from the vSphere CSI driver.
When This Pattern Fits
Use this pattern when:
-
backup metadata and manifests should live in Swift
-
workload volumes are backed by vSphere CSI
-
CSI snapshots are preferred over filesystem backups
Key Configuration Points
-
BackupStorageLocationuses the OpenStack provider plugin -
CSI is enabled through
configuration.features: EnableCSI -
defaultVolumesToFsBackupremainsfalse -
VolumeSnapshotClassmust exist for the vSphere CSI driver -
the
cloud-credentialsSecret must expose the requiredOS_*environment variables
Example Fragments
backupStorageLocations:
- name: default
provider: community.openstack.org/openstack
bucket: k8s-dr-velero
configuration:
features: EnableCSI
defaultSnapshotMoveData: false
defaultVolumesToFsBackup: false
volumeSnapshotLocation: []
Important Constraints
-
Kopia filesystem backup support is not the primary path in this Swift-based pattern.
-
Swift temp URL settings must be consistent between the object storage container and the Velero credentials.
-
vSphere CSI snapshot support must already be working independently of Velero.
Verification
kubectl get backupstoragelocation -n velero
kubectl get volumesnapshotclass
kubectl logs -n velero deploy/velero
velero backup get
Common Failure Modes
Missing input for argument [auth_url]:
- required OS_* variables are not present in cloud-credentials
Temp URL invalid or 401:
- the configured temp URL key does not match the Swift container setting
Snapshot-related backups fail:
- verify the VolumeSnapshotClass label and vSphere CSI snapshot health