This repository contains Velero plugins for snapshotting CSI backed PVCs using the CSI beta snapshot APIs.
These plugins are currently in beta as of the Velero 1.4 release and will reach GA shortly after the CSI volumesnapshotting APIs in upstream Kubernetes reach GA.
For a list of prerequisites and installation instructions, please refer to our documentation here.
Below is a listing of plugin versions and respective Velero versions that are compatible.
Plugin Version | Velero Version |
---|---|
v0.1.x | v1.4.x |
A plugin of type BackupItemAction that backs up persistentvolumeclaims
which are backed by CSI volumes.
This plugin will create a CSI VolumeSnapshot which in turn triggers the CSI driver to perform the snapshot operation on the volume.
A plugin of type BackupItemAction that backs up volumesnapshots.snapshot.storage.k8s.io
.
When invoked, this plugin will capture information about the underlying volumesnapshotcontent.snapshot.storage.k8s.io
in the annotations of the volumesnapshots being backed up. This plugin will also return the underlying volumesnapshotcontent.snapshot.storage.k8s.io
and the associated snapshot.storage.k8s.io.volumesnapshotclasses
as additional resources to be backed up.
A plugin of type BackupItemAction that backs up volumesnapshotcontent.snapshot.storage.k8s.io
.
This plugin will look for snapshot delete operation secrets from the annotations on the VolumeSnapshotContent object being backed up.
A plugin of type BackupItemAction that backs up snapshot.storage.k8s.io.volumesnapshotclasses
.
This plugin will look for snapshot list operation secret from the annotations on the VolumeSnapshotClass object being backed up.
A plugin of type RestoreItemAction that restores persistentvolumeclaims
which were backed up by PVCBackupItemAction.
This plugin will modify the spec of the persistentvolumeclaim
being restored to use the VolumeSnapshot, created during backup, as the data source ensuring that the newly provisioned volume, to satisfy this claim, may be pre-populated using the VolumeSnapshot.
A plugin of type RestoreItemAction that restores volumesnapshots.snapshot.storage.k8s.io
.
This plugin will use the annotations, added during backup, to create a volumesnapshotcontent.snapshot.storage.k8s.io
and statically bind it to the volumesnapshot object being restored. The plugin will also set the necessary annotations if the original volumesnapshotcontent had snapshot deletion secrets associated with it.
A plugin of type RestoreItemAction that restores snapshot.storage.k8s.io.volumesnapshotclasses
.
This plugin will use the annotations on the object being restored to return, as additional items, any snapshot lister secret that is associated with the volumesnapshotclass.
Official images of the plugin is available on Velero DockerHub.
For development and testing, the plugin container images may be built by running the below command
$ IMAGE=<YOUR_REGISTRY>/velero-plugin-for-csi:<YOUR_TAG> make container
We are tracking known limitations with the plugins here