mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-05 04:55:22 +00:00
Merge branch 'main' into issue-#9029
This commit is contained in:
@@ -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)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
@@ -17,6 +17,11 @@ const (
|
||||
WorkerOSWindows string = "windows"
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultBSLName string = "default"
|
||||
AdditionalBSLName string = "add-bsl"
|
||||
)
|
||||
|
||||
type OsCommandLine struct {
|
||||
Cmd string
|
||||
Args []string
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user