diff --git a/test/e2e/backup/backup.go b/test/e2e/backup/backup.go index b0e7c06da..48ebd0500 100644 --- a/test/e2e/backup/backup.go +++ b/test/e2e/backup/backup.go @@ -26,6 +26,7 @@ import ( . "github.com/onsi/gomega" . "github.com/vmware-tanzu/velero/test" + "github.com/vmware-tanzu/velero/test/util/common" . "github.com/vmware-tanzu/velero/test/util/k8s" . "github.com/vmware-tanzu/velero/test/util/kibishii" . "github.com/vmware-tanzu/velero/test/util/velero" @@ -194,11 +195,10 @@ func BackupRestoreTest(backupRestoreTestConfig BackupRestoreTestConfig) { Expect(CreateSecretFromFiles(context.TODO(), *veleroCfg.ClientToInstallVelero, veleroCfg.VeleroNamespace, secretName, files)).To(Succeed()) // Create additional BSL using credential - additionalBsl := "add-bsl" Expect(VeleroCreateBackupLocation(context.TODO(), veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, - additionalBsl, + common.AdditionalBSLName, veleroCfg.AdditionalBSLProvider, veleroCfg.AdditionalBSLBucket, veleroCfg.AdditionalBSLPrefix, @@ -207,32 +207,25 @@ func BackupRestoreTest(backupRestoreTestConfig BackupRestoreTestConfig) { secretKey, )).To(Succeed()) - BSLs := []string{"default", additionalBsl} - - for _, bsl := range BSLs { - backupName = fmt.Sprintf("backup-%s", bsl) - restoreName = fmt.Sprintf("restore-%s", bsl) - // We limit the length of backup name here to avoid the issue of vsphere plugin https://github.com/vmware-tanzu/velero-plugin-for-vsphere/issues/370 - // We can remove the logic once the issue is fixed - if bsl == "default" { - backupName = fmt.Sprintf("%s-%s", backupName, UUIDgen) - restoreName = fmt.Sprintf("%s-%s", restoreName, UUIDgen) - } - veleroCfg.ProvideSnapshotsVolumeParam = !provideSnapshotVolumesParmInBackup - workloadNS := kibishiiNamespace + bsl - Expect( - RunKibishiiTests( - veleroCfg, - backupName, - restoreName, - bsl, - workloadNS, - useVolumeSnapshots, - !useVolumeSnapshots, - ), - ).To(Succeed(), - "Failed to successfully backup and restore Kibishii namespace using BSL %s", bsl) - } + // We limit the length of backup name here to avoid the issue of vsphere plugin + // https://github.com/vmware-tanzu/velero-plugin-for-vsphere/issues/370 + // We can remove the logic once the issue is fixed + backupName = "backup-" + common.AdditionalBSLName + restoreName = "restore-" + common.AdditionalBSLName + veleroCfg.ProvideSnapshotsVolumeParam = !provideSnapshotVolumesParmInBackup + workloadNS := kibishiiNamespace + common.AdditionalBSLName + Expect( + RunKibishiiTests( + veleroCfg, + backupName, + restoreName, + common.AdditionalBSLName, + workloadNS, + useVolumeSnapshots, + !useVolumeSnapshots, + ), + ).To(Succeed(), + "Failed to successfully backup and restore Kibishii namespace with additional BSL %s", common.AdditionalBSLName) }) }) } diff --git a/test/e2e/e2e_suite_test.go b/test/e2e/e2e_suite_test.go index ccbef8668..0159af8af 100644 --- a/test/e2e/e2e_suite_test.go +++ b/test/e2e/e2e_suite_test.go @@ -398,25 +398,25 @@ var _ = Describe( // Test backup and restore of Kibishii using restic var _ = Describe( "Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", - Label("Basic", "Restic"), + Label("Basic", "Restic", "AdditionalBSL"), BackupRestoreWithRestic, ) var _ = Describe( "Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups", - Label("Basic", "Snapshot", "SkipVanillaZfs"), + Label("Basic", "Snapshot", "SkipVanillaZfs", "AdditionalBSL"), BackupRestoreWithSnapshots, ) var _ = Describe( "Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups", - Label("Basic", "Snapshot", "RetainPV"), + Label("Basic", "Snapshot", "RetainPV", "AdditionalBSL"), BackupRestoreRetainedPVWithSnapshots, ) var _ = Describe( "Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups", - Label("Basic", "Restic", "RetainPV"), + Label("Basic", "Restic", "RetainPV", "AdditionalBSL"), BackupRestoreRetainedPVWithRestic, ) @@ -597,12 +597,12 @@ var _ = Describe( var _ = Describe( "Local backups will be deleted once the corresponding backup storage location is deleted", - Label("BSL", "Deletion", "Snapshot", "SkipVanillaZfs"), + Label("BSL", "Deletion", "Snapshot", "SkipVanillaZfs", "AdditionalBSL"), BslDeletionWithSnapshots, ) var _ = Describe( "Local backups and Restic repos will be deleted once the corresponding backup storage location is deleted", - Label("BSL", "Deletion", "Restic"), + Label("BSL", "Deletion", "Restic", "AdditionalBSL"), BslDeletionWithRestic, ) diff --git a/test/util/common/common.go b/test/util/common/common.go index e22a25662..853c0bfc9 100644 --- a/test/util/common/common.go +++ b/test/util/common/common.go @@ -17,6 +17,11 @@ const ( WorkerOSWindows string = "windows" ) +const ( + DefaultBSLName string = "default" + AdditionalBSLName string = "add-bsl" +) + type OsCommandLine struct { Cmd string Args []string diff --git a/test/util/kibishii/kibishii_utils.go b/test/util/kibishii/kibishii_utils.go index f75f2c363..f55b4226c 100644 --- a/test/util/kibishii/kibishii_utils.go +++ b/test/util/kibishii/kibishii_utils.go @@ -142,12 +142,25 @@ func RunKibishiiTests( fmt.Printf("VeleroBackupNamespace done %s\n", time.Now().Format("2006-01-02 15:04:05")) fmt.Printf("KibishiiVerifyAfterBackup %s\n", time.Now().Format("2006-01-02 15:04:05")) + + objectStoreProvider := veleroCfg.ObjectStoreProvider + cloudCredentialsFile := veleroCfg.CloudCredentialsFile + bslBucket := veleroCfg.BSLBucket + bslPrefix := veleroCfg.BSLPrefix + bslConfig := veleroCfg.BSLConfig + if backupLocation == common.AdditionalBSLName { + objectStoreProvider = veleroCfg.AdditionalBSLProvider + cloudCredentialsFile = veleroCfg.AdditionalBSLCredentials + bslBucket = veleroCfg.AdditionalBSLBucket + bslPrefix = veleroCfg.AdditionalBSLPrefix + bslConfig = veleroCfg.AdditionalBSLConfig + } backupVolumeInfo, err := GetVolumeInfo( - veleroCfg.ObjectStoreProvider, - veleroCfg.CloudCredentialsFile, - veleroCfg.BSLBucket, - veleroCfg.BSLPrefix, - veleroCfg.BSLConfig, + objectStoreProvider, + cloudCredentialsFile, + bslBucket, + bslPrefix, + bslConfig, backupName, BackupObjectsPrefix+"/"+backupName, ) @@ -187,27 +200,6 @@ func RunKibishiiTests( if pvbNum != pvCount { return errors.New(fmt.Sprintf("PVB count %d should be %d in namespace %s", pvbNum, pvCount, kibishiiNamespace)) } - if providerName != Vsphere { - // wait for a period to confirm no snapshots content exist for the backup - time.Sleep(1 * time.Minute) - if strings.EqualFold(veleroFeatures, FeatureCSI) { - _, err = BuildSnapshotCheckPointFromVolumeInfo(veleroCfg, backupVolumeInfo, 0, - kibishiiNamespace, backupName, KibishiiPVCNameList) - if err != nil { - return errors.Wrap(err, "failed to get snapshot checkPoint") - } - } else { - err = CheckSnapshotsInProvider( - veleroCfg, - backupName, - SnapshotCheckPoint{}, - false, - ) - if err != nil { - return errors.Wrap(err, "exceed waiting for snapshot created in cloud") - } - } - } } // Modify PV data right after backup. If PV's reclaim policy is retain, PV will be restored with the origin resource config