diff --git a/config/crd/v1/bases/velero.io_downloadrequests.yaml b/config/crd/v1/bases/velero.io_downloadrequests.yaml index 45f229c44..498ee8b94 100644 --- a/config/crd/v1/bases/velero.io_downloadrequests.yaml +++ b/config/crd/v1/bases/velero.io_downloadrequests.yaml @@ -50,6 +50,8 @@ spec: - BackupResourceList - RestoreLog - RestoreResults + - CSIBackupVolumeSnapshots + - CSIBackupVolumeSnapshotContents type: string name: description: Name is the name of the kubernetes resource with diff --git a/design/CLI/PoC/base/CRDs.yaml b/design/CLI/PoC/base/CRDs.yaml index f6753953f..ae2f5f193 100644 --- a/design/CLI/PoC/base/CRDs.yaml +++ b/design/CLI/PoC/base/CRDs.yaml @@ -505,6 +505,8 @@ spec: - BackupResourceList - RestoreLog - RestoreResults + - CSIBackupVolumeSnapshots + - CSIBackupVolumeSnapshotContents type: string name: description: Name is the name of the kubernetes resource with diff --git a/pkg/apis/velero/v1/download_request_types.go b/pkg/apis/velero/v1/download_request_types.go index 7ca5dcb17..ad359ba88 100644 --- a/pkg/apis/velero/v1/download_request_types.go +++ b/pkg/apis/velero/v1/download_request_types.go @@ -29,13 +29,15 @@ type DownloadRequestSpec struct { type DownloadTargetKind string const ( - DownloadTargetKindBackupLog DownloadTargetKind = "BackupLog" - DownloadTargetKindBackupContents DownloadTargetKind = "BackupContents" - DownloadTargetKindBackupVolumeSnapshots DownloadTargetKind = "BackupVolumeSnapshots" - DownloadTargetKindBackupItemSnapshots DownloadTargetKind = "BackupItemSnapshots" - DownloadTargetKindBackupResourceList DownloadTargetKind = "BackupResourceList" - DownloadTargetKindRestoreLog DownloadTargetKind = "RestoreLog" - DownloadTargetKindRestoreResults DownloadTargetKind = "RestoreResults" + DownloadTargetKindBackupLog DownloadTargetKind = "BackupLog" + DownloadTargetKindBackupContents DownloadTargetKind = "BackupContents" + DownloadTargetKindBackupVolumeSnapshots DownloadTargetKind = "BackupVolumeSnapshots" + DownloadTargetKindBackupItemSnapshots DownloadTargetKind = "BackupItemSnapshots" + DownloadTargetKindBackupResourceList DownloadTargetKind = "BackupResourceList" + DownloadTargetKindRestoreLog DownloadTargetKind = "RestoreLog" + DownloadTargetKindRestoreResults DownloadTargetKind = "RestoreResults" + DownloadTargetKindCSIBackupVolumeSnapshots DownloadTargetKind = "CSIBackupVolumeSnapshots" + DownloadTargetKindCSIBackupVolumeSnapshotContents DownloadTargetKind = "CSIBackupVolumeSnapshotContents" ) // DownloadTarget is the specification for what kind of file to download, and the name of the diff --git a/pkg/persistence/object_store.go b/pkg/persistence/object_store.go index 20bf9328e..1c0b619e1 100644 --- a/pkg/persistence/object_store.go +++ b/pkg/persistence/object_store.go @@ -520,6 +520,10 @@ func (s *objectBackupStore) GetDownloadURL(target velerov1api.DownloadTarget) (s return s.objectStore.CreateSignedURL(s.bucket, s.layout.getRestoreLogKey(target.Name), DownloadURLTTL) case velerov1api.DownloadTargetKindRestoreResults: return s.objectStore.CreateSignedURL(s.bucket, s.layout.getRestoreResultsKey(target.Name), DownloadURLTTL) + case velerov1api.DownloadTargetKindCSIBackupVolumeSnapshots: + return s.objectStore.CreateSignedURL(s.bucket, s.layout.getCSIVolumeSnapshotKey(target.Name), DownloadURLTTL) + case velerov1api.DownloadTargetKindCSIBackupVolumeSnapshotContents: + return s.objectStore.CreateSignedURL(s.bucket, s.layout.getCSIVolumeSnapshotContentsKey(target.Name), DownloadURLTTL) default: return "", errors.Errorf("unsupported download target kind %q", target.Kind) }