diff --git a/test/e2e/backup/backup.go b/test/e2e/backup/backup.go index 0703c7ce01..a88745c769 100644 --- a/test/e2e/backup/backup.go +++ b/test/e2e/backup/backup.go @@ -99,7 +99,7 @@ func BackupRestoreTest(backupRestoreTestConfig BackupRestoreTestConfig) { AfterEach(func() { if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.ClientToInstallVelero) + DeleteAllBackups(context.Background(), &veleroCfg) if backupRestoreTestConfig.isRetainPVTest { CleanAllRetainedPV(context.Background(), *veleroCfg.ClientToInstallVelero) } diff --git a/test/e2e/backups/deletion.go b/test/e2e/backups/deletion.go index ff929e1f52..a59ddfdfb4 100644 --- a/test/e2e/backups/deletion.go +++ b/test/e2e/backups/deletion.go @@ -69,7 +69,7 @@ func backup_deletion_test(useVolumeSnapshots bool) { AfterEach(func() { if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.ClientToInstallVelero) + DeleteAllBackups(context.Background(), &veleroCfg) }) } }) @@ -157,7 +157,7 @@ func runBackupDeletionTests(client TestClient, veleroCfg VeleroConfig, backupNam return errors.Wrap(err, "exceed waiting for snapshot created in cloud") } } - err = DeleteBackupResource(context.Background(), veleroCLI, backupName) + err = DeleteBackupResource(context.Background(), backupName, &veleroCfg) if err != nil { return err } @@ -207,7 +207,7 @@ func runBackupDeletionTests(client TestClient, veleroCfg VeleroConfig, backupNam return err } - err = DeleteBackupResource(context.Background(), veleroCLI, backupName) + err = DeleteBackupResource(context.Background(), backupName, &veleroCfg) if err != nil { return errors.Wrapf(err, "|| UNEXPECTED || - Failed to delete backup %q", backupName) } else { diff --git a/test/e2e/backups/sync_backups.go b/test/e2e/backups/sync_backups.go index 65e1a7d87b..fd7e076c3c 100644 --- a/test/e2e/backups/sync_backups.go +++ b/test/e2e/backups/sync_backups.go @@ -53,25 +53,24 @@ func BackupsSyncTest() { var ( err error ) - + veleroCfg := VeleroCfg BeforeEach(func() { flag.Parse() if InstallVelero { - veleroCfg := VeleroCfg veleroCfg.UseVolumeSnapshots = false - Expect(VeleroInstall(context.Background(), &VeleroCfg, false)).To(Succeed()) + Expect(VeleroInstall(context.Background(), &veleroCfg, false)).To(Succeed()) } }) AfterEach(func() { - if !VeleroCfg.Debug { + if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *VeleroCfg.ClientToInstallVelero) + DeleteAllBackups(context.Background(), &veleroCfg) }) if InstallVelero { ctx, ctxCancel := context.WithTimeout(context.Background(), time.Minute*5) defer ctxCancel() - Expect(VeleroUninstall(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To(Succeed()) + Expect(VeleroUninstall(ctx, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace)).To(Succeed()) } } @@ -82,11 +81,11 @@ func BackupsSyncTest() { ctx, ctxCancel := context.WithTimeout(context.Background(), 30*time.Minute) defer ctxCancel() By(fmt.Sprintf("Prepare workload as target to backup by creating namespace %s namespace", test.testNS)) - Expect(CreateNamespace(ctx, *VeleroCfg.ClientToInstallVelero, test.testNS)).To(Succeed(), + Expect(CreateNamespace(ctx, *veleroCfg.ClientToInstallVelero, test.testNS)).To(Succeed(), fmt.Sprintf("Failed to create %s namespace", test.testNS)) - if !VeleroCfg.Debug { + if !veleroCfg.Debug { defer func() { - Expect(DeleteNamespace(ctx, *VeleroCfg.ClientToInstallVelero, test.testNS, false)).To(Succeed(), fmt.Sprintf("Failed to delete the namespace %s", test.testNS)) + Expect(DeleteNamespace(ctx, *veleroCfg.ClientToInstallVelero, test.testNS, false)).To(Succeed(), fmt.Sprintf("Failed to delete the namespace %s", test.testNS)) }() } @@ -97,25 +96,25 @@ func BackupsSyncTest() { BackupCfg.UseVolumeSnapshots = false BackupCfg.Selector = "" By(fmt.Sprintf("Backup the workload in %s namespace", test.testNS), func() { - Expect(VeleroBackupNamespace(ctx, VeleroCfg.VeleroCLI, - VeleroCfg.VeleroNamespace, BackupCfg)).To(Succeed(), func() string { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, test.backupName, "") + Expect(VeleroBackupNamespace(ctx, veleroCfg.VeleroCLI, + veleroCfg.VeleroNamespace, BackupCfg)).To(Succeed(), func() string { + RunDebug(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, test.backupName, "") return "Fail to backup workload" }) }) By("Uninstall velero", func() { - Expect(VeleroUninstall(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace)).To(Succeed()) + Expect(VeleroUninstall(ctx, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace)).To(Succeed()) }) By("Install velero", func() { veleroCfg := VeleroCfg veleroCfg.UseVolumeSnapshots = false - Expect(VeleroInstall(ctx, &VeleroCfg, false)).To(Succeed()) + Expect(VeleroInstall(ctx, &veleroCfg, false)).To(Succeed()) }) By("Check all backups in object storage are synced to Velero", func() { - Expect(test.IsBackupsSynced(ctx, ctxCancel)).To(Succeed(), fmt.Sprintf("Failed to sync backup %s from object storage", test.backupName)) + Expect(test.IsBackupsSynced(ctx, &veleroCfg, ctxCancel)).To(Succeed(), fmt.Sprintf("Failed to sync backup %s from object storage", test.backupName)) }) }) @@ -124,12 +123,12 @@ func BackupsSyncTest() { ctx, ctxCancel := context.WithTimeout(context.Background(), 30*time.Minute) defer ctxCancel() By(fmt.Sprintf("Prepare workload as target to backup by creating namespace in %s namespace", test.testNS), func() { - Expect(CreateNamespace(ctx, *VeleroCfg.ClientToInstallVelero, test.testNS)).To(Succeed(), + Expect(CreateNamespace(ctx, *veleroCfg.ClientToInstallVelero, test.testNS)).To(Succeed(), fmt.Sprintf("Failed to create %s namespace", test.testNS)) }) - if !VeleroCfg.Debug { + if !veleroCfg.Debug { defer func() { - Expect(DeleteNamespace(ctx, *VeleroCfg.ClientToInstallVelero, test.testNS, false)).To(Succeed(), + Expect(DeleteNamespace(ctx, *veleroCfg.ClientToInstallVelero, test.testNS, false)).To(Succeed(), fmt.Sprintf("Failed to delete the namespace %s", test.testNS)) }() } @@ -140,32 +139,32 @@ func BackupsSyncTest() { BackupCfg.UseVolumeSnapshots = false BackupCfg.Selector = "" By(fmt.Sprintf("Backup the workload in %s namespace", test.testNS), func() { - Expect(VeleroBackupNamespace(ctx, VeleroCfg.VeleroCLI, - VeleroCfg.VeleroNamespace, BackupCfg)).To(Succeed(), func() string { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, test.backupName, "") + Expect(VeleroBackupNamespace(ctx, veleroCfg.VeleroCLI, + veleroCfg.VeleroNamespace, BackupCfg)).To(Succeed(), func() string { + RunDebug(context.Background(), veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, test.backupName, "") return "Fail to backup workload" }) }) By(fmt.Sprintf("Delete %s backup files in object store", test.backupName), func() { - err = DeleteObjectsInBucket(VeleroCfg.ObjectStoreProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, - VeleroCfg.BSLPrefix, VeleroCfg.BSLConfig, test.backupName, BackupObjectsPrefix) + err = DeleteObjectsInBucket(veleroCfg.ObjectStoreProvider, veleroCfg.CloudCredentialsFile, veleroCfg.BSLBucket, + veleroCfg.BSLPrefix, veleroCfg.BSLConfig, test.backupName, BackupObjectsPrefix) Expect(err).To(Succeed(), fmt.Sprintf("Failed to delete object in bucket %s with err %v", test.backupName, err)) }) By(fmt.Sprintf("Check %s backup files in object store is deleted", test.backupName), func() { - err = ObjectsShouldNotBeInBucket(VeleroCfg.ObjectStoreProvider, VeleroCfg.CloudCredentialsFile, VeleroCfg.BSLBucket, - VeleroCfg.BSLPrefix, VeleroCfg.BSLConfig, test.backupName, BackupObjectsPrefix, 1) + err = ObjectsShouldNotBeInBucket(veleroCfg.ObjectStoreProvider, veleroCfg.CloudCredentialsFile, veleroCfg.BSLBucket, + veleroCfg.BSLPrefix, veleroCfg.BSLConfig, test.backupName, BackupObjectsPrefix, 1) Expect(err).To(Succeed(), fmt.Sprintf("Failed to delete object in bucket %s with err %v", test.backupName, err)) }) By("Check if backups are deleted as a result of sync from BSL", func() { - Expect(WaitBackupDeleted(ctx, VeleroCfg.VeleroCLI, test.backupName, time.Minute*10)).To(Succeed(), fmt.Sprintf("Failed to check backup %s deleted", test.backupName)) + Expect(WaitBackupDeleted(ctx, test.backupName, time.Minute*10, &veleroCfg)).To(Succeed(), fmt.Sprintf("Failed to check backup %s deleted", test.backupName)) }) }) } -func (b *SyncBackups) IsBackupsSynced(ctx context.Context, ctxCancel context.CancelFunc) error { +func (b *SyncBackups) IsBackupsSynced(ctx context.Context, veleroCfg *VeleroConfig, ctxCancel context.CancelFunc) error { defer ctxCancel() - return WaitForBackupToBeCreated(ctx, VeleroCfg.VeleroCLI, b.backupName, 10*time.Minute) + return WaitForBackupToBeCreated(ctx, b.backupName, 10*time.Minute, veleroCfg) } diff --git a/test/e2e/backups/ttl.go b/test/e2e/backups/ttl.go index b66af4e2eb..329e95ea3d 100644 --- a/test/e2e/backups/ttl.go +++ b/test/e2e/backups/ttl.go @@ -77,7 +77,7 @@ func TTLTest() { veleroCfg.GCFrequency = "" if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.ClientToInstallVelero) + DeleteAllBackups(context.Background(), &veleroCfg) }) ctx, ctxCancel := context.WithTimeout(context.Background(), time.Minute*5) defer ctxCancel() @@ -175,7 +175,7 @@ func TTLTest() { }) By("Check if backups are deleted by GC", func() { - Expect(WaitBackupDeleted(ctx, veleroCfg.VeleroCLI, test.backupName, time.Minute*10)).To(Succeed(), fmt.Sprintf("Backup %s was not deleted by GC", test.backupName)) + Expect(WaitBackupDeleted(ctx, test.backupName, time.Minute*10, &veleroCfg)).To(Succeed(), fmt.Sprintf("Backup %s was not deleted by GC", test.backupName)) }) By("Backup file from cloud object storage should be deleted", func() { diff --git a/test/e2e/basic/api-group/enable_api_group_extentions.go b/test/e2e/basic/api-group/enable_api_group_extentions.go index af6d323043..05eeb8256d 100644 --- a/test/e2e/basic/api-group/enable_api_group_extentions.go +++ b/test/e2e/basic/api-group/enable_api_group_extentions.go @@ -69,7 +69,7 @@ func APIExtensionsVersionsTest() { AfterEach(func() { if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.DefaultClient) + DeleteAllBackups(context.Background(), &veleroCfg) }) if InstallVelero { By("Uninstall Velero and delete CRD ", func() { @@ -135,7 +135,7 @@ func APIExtensionsVersionsTest() { }) By(fmt.Sprintf("Waiting for backups sync to Velero in cluster-B (%s)", veleroCfg.StandbyClusterContext), func() { - Expect(WaitForBackupToBeCreated(context.Background(), veleroCfg.VeleroCLI, backupName, 5*time.Minute)).To(Succeed()) + Expect(WaitForBackupToBeCreated(context.Background(), backupName, 5*time.Minute, &veleroCfg)).To(Succeed()) }) By(fmt.Sprintf("CRD %s should not exist in cluster-B (%s)", crdName, veleroCfg.StandbyClusterContext), func() { diff --git a/test/e2e/basic/api-group/enable_api_group_versions.go b/test/e2e/basic/api-group/enable_api_group_versions.go index 47a3c34205..489c7edd2f 100644 --- a/test/e2e/basic/api-group/enable_api_group_versions.go +++ b/test/e2e/basic/api-group/enable_api_group_versions.go @@ -94,7 +94,7 @@ func APIGropuVersionsTest() { } By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.ClientToInstallVelero) + DeleteAllBackups(context.Background(), &veleroCfg) }) if InstallVelero { By("Uninstall Velero in api group version case", func() { diff --git a/test/e2e/basic/namespace-mapping.go b/test/e2e/basic/namespace-mapping.go index 5cc18921af..c85fe247e0 100644 --- a/test/e2e/basic/namespace-mapping.go +++ b/test/e2e/basic/namespace-mapping.go @@ -9,7 +9,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" . "github.com/vmware-tanzu/velero/test/util/kibishii" @@ -33,8 +32,6 @@ func (n *NamespaceMapping) Init() error { n.CaseBaseName = "ns-mp-" + n.UUIDgen n.BackupName = "backup-" + n.CaseBaseName n.RestoreName = "restore-" + n.CaseBaseName - n.VeleroCfg = VeleroCfg - n.Client = *n.VeleroCfg.ClientToInstallVelero n.VeleroCfg.UseVolumeSnapshots = n.UseVolumeSnapshots n.VeleroCfg.UseNodeAgent = !n.UseVolumeSnapshots n.kibishiiData = &KibishiiData{Levels: 2, DirsPerLevel: 10, FilesPerLevel: 10, FileLength: 1024, BlockSize: 1024, PassNum: 0, ExpectedNodes: 2} @@ -70,7 +67,7 @@ func (n *NamespaceMapping) Init() error { "create", "--namespace", n.VeleroCfg.VeleroNamespace, "backup", n.BackupName, "--include-namespaces", strings.Join(*n.NSIncluded, ","), "--wait", } - if VeleroCfg.CloudProvider == "kind" { + if n.VeleroCfg.CloudProvider == "kind" { // don't test volume snapshotter or file system backup on kind n.BackupArgs = append(n.BackupArgs, "--snapshot-volumes=false") n.UseVolumeSnapshots = false diff --git a/test/e2e/basic/nodeport.go b/test/e2e/basic/nodeport.go index 7bb9d5f108..811e2fca4e 100644 --- a/test/e2e/basic/nodeport.go +++ b/test/e2e/basic/nodeport.go @@ -12,8 +12,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" - - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" . "github.com/vmware-tanzu/velero/test/util/velero" @@ -37,8 +35,6 @@ func (n *NodePort) Init() error { n.BackupName = "backup-" + n.CaseBaseName n.RestoreName = "restore-" + n.CaseBaseName n.serviceName = "nginx-service-" + n.CaseBaseName - n.VeleroCfg = VeleroCfg - n.Client = *n.VeleroCfg.ClientToInstallVelero n.NamespacesTotal = 1 n.TestMsg = &TestMSG{ Desc: "Nodeport preservation", @@ -55,11 +51,11 @@ func (n *NodePort) Init() error { } n.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", n.BackupName, + "create", "--namespace", n.VeleroCfg.VeleroNamespace, "backup", n.BackupName, "--include-namespaces", strings.Join(*n.NSIncluded, ","), "--wait", } n.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", + "create", "--namespace", n.VeleroCfg.VeleroNamespace, "restore", "--from-backup", n.BackupName, "--wait", } diff --git a/test/e2e/basic/pvc-selected-node-changing.go b/test/e2e/basic/pvc-selected-node-changing.go index 2cb0973673..d9227f1012 100644 --- a/test/e2e/basic/pvc-selected-node-changing.go +++ b/test/e2e/basic/pvc-selected-node-changing.go @@ -9,7 +9,6 @@ import ( . "github.com/onsi/gomega" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" @@ -38,8 +37,6 @@ func (p *PVCSelectedNodeChanging) Init() error { p.CaseBaseName = "psnc-" + p.UUIDgen p.namespace = p.CaseBaseName p.mappedNS = p.namespace + "-mapped" - p.VeleroCfg = VeleroCfg - p.Client = *p.VeleroCfg.ClientToInstallVelero p.TestMsg = &TestMSG{ Desc: "Changing PVC node selector", FailedMSG: "Failed to changing PVC node selector", @@ -55,12 +52,12 @@ func (p *PVCSelectedNodeChanging) Init() error { p.pvcName = "pvc-1" p.ann = "volume.kubernetes.io/selected-node" p.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", p.BackupName, + "create", "--namespace", p.VeleroCfg.VeleroNamespace, "backup", p.BackupName, "--include-namespaces", p.namespace, "--snapshot-volumes=false", "--wait", } p.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", p.RestoreName, + "create", "--namespace", p.VeleroCfg.VeleroNamespace, "restore", p.RestoreName, "--from-backup", p.BackupName, "--namespace-mappings", fmt.Sprintf("%s:%s", p.namespace, p.mappedNS), "--wait", } return nil @@ -78,7 +75,7 @@ func (p *PVCSelectedNodeChanging) CreateResources() error { }) By(fmt.Sprintf("Create a storage class %s.", StorageClassName), func() { - Expect(InstallTestStorageClasses(fmt.Sprintf("../testdata/storage-class/%s.yaml", VeleroCfg.CloudProvider))).To(Succeed(), "Failed to install storage class") + Expect(InstallTestStorageClasses(fmt.Sprintf("../testdata/storage-class/%s.yaml", p.VeleroCfg.CloudProvider))).To(Succeed(), "Failed to install storage class") }) By(fmt.Sprintf("Create pod %s in namespace %s", p.podName, p.namespace), func() { diff --git a/test/e2e/basic/resources-check/namespaces.go b/test/e2e/basic/resources-check/namespaces.go index 78386fb9b9..e4a88d4a77 100644 --- a/test/e2e/basic/resources-check/namespaces.go +++ b/test/e2e/basic/resources-check/namespaces.go @@ -25,7 +25,6 @@ import ( "github.com/pkg/errors" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -42,9 +41,6 @@ func (m *MultiNSBackup) Init() error { m.CaseBaseName = "nstest-" + m.UUIDgen m.BackupName = "backup-" + m.CaseBaseName m.RestoreName = "restore-" + m.CaseBaseName - - m.VeleroCfg = VeleroCfg - m.Client = *m.VeleroCfg.ClientToInstallVelero m.NSExcluded = &[]string{} if m.IsScalTest { diff --git a/test/e2e/basic/resources-check/namespaces_annotation.go b/test/e2e/basic/resources-check/namespaces_annotation.go index 3f81c456d7..c8642c22c7 100644 --- a/test/e2e/basic/resources-check/namespaces_annotation.go +++ b/test/e2e/basic/resources-check/namespaces_annotation.go @@ -24,7 +24,6 @@ import ( "github.com/pkg/errors" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -41,8 +40,6 @@ func (n *NSAnnotationCase) Init() error { n.NamespacesTotal = 1 n.NSIncluded = &[]string{} - n.VeleroCfg = VeleroCfg - n.Client = *n.VeleroCfg.ClientToInstallVelero for nsNum := 0; nsNum < n.NamespacesTotal; nsNum++ { createNSName := fmt.Sprintf("%s-%00000d", n.CaseBaseName, nsNum) *n.NSIncluded = append(*n.NSIncluded, createNSName) @@ -53,13 +50,13 @@ func (n *NSAnnotationCase) Init() error { FailedMSG: "Failed to successfully backup and restore multiple namespaces", } n.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", n.BackupName, + "create", "--namespace", n.VeleroCfg.VeleroNamespace, "backup", n.BackupName, "--include-namespaces", strings.Join(*n.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } n.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", n.RestoreName, + "create", "--namespace", n.VeleroCfg.VeleroNamespace, "restore", n.RestoreName, "--from-backup", n.BackupName, "--wait", } return nil diff --git a/test/e2e/basic/resources-check/rbac.go b/test/e2e/basic/resources-check/rbac.go index 6df97cc57c..37e2ce5fbc 100644 --- a/test/e2e/basic/resources-check/rbac.go +++ b/test/e2e/basic/resources-check/rbac.go @@ -40,7 +40,6 @@ import ( "github.com/pkg/errors" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -56,6 +55,7 @@ func (r *RBACCase) Init() error { r.RestoreName = "restore-" + r.CaseBaseName r.NamespacesTotal = 1 r.NSIncluded = &[]string{} + for nsNum := 0; nsNum < r.NamespacesTotal; nsNum++ { createNSName := fmt.Sprintf("%s-%00000d", r.CaseBaseName, nsNum) *r.NSIncluded = append(*r.NSIncluded, createNSName) @@ -66,17 +66,15 @@ func (r *RBACCase) Init() error { FailedMSG: "Failed to successfully backup and restore RBAC", } r.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", r.BackupName, + "create", "--namespace", r.VeleroCfg.VeleroNamespace, "backup", r.BackupName, "--include-namespaces", strings.Join(*r.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } - r.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", r.RestoreName, + "create", "--namespace", r.VeleroCfg.VeleroNamespace, "restore", r.RestoreName, "--from-backup", r.BackupName, "--wait", } - r.VeleroCfg = VeleroCfg - r.Client = *r.VeleroCfg.ClientToInstallVelero + return nil } diff --git a/test/e2e/basic/storage-class-changing.go b/test/e2e/basic/storage-class-changing.go index 456523fd12..5b35c91d05 100644 --- a/test/e2e/basic/storage-class-changing.go +++ b/test/e2e/basic/storage-class-changing.go @@ -9,7 +9,6 @@ import ( . "github.com/onsi/gomega" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" @@ -42,8 +41,6 @@ func (s *StorageClasssChanging) Init() error { s.BackupName = "backup-" + s.CaseBaseName s.RestoreName = "restore-" + s.CaseBaseName s.mappedNS = s.namespace + "-mapped" - s.VeleroCfg = VeleroCfg - s.Client = *s.VeleroCfg.ClientToInstallVelero s.TestMsg = &TestMSG{ Desc: "Changing PV/PVC Storage Classes", FailedMSG: "Failed to changing PV/PVC Storage Classes", @@ -60,12 +57,12 @@ func (s *StorageClasssChanging) Init() error { s.pvcName = fmt.Sprintf("pvc-%s", s.volume) s.podName = "pod-1" s.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", s.BackupName, + "create", "--namespace", s.VeleroCfg.VeleroNamespace, "backup", s.BackupName, "--include-namespaces", s.namespace, "--snapshot-volumes=false", "--wait", } s.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", s.RestoreName, + "create", "--namespace", s.VeleroCfg.VeleroNamespace, "restore", s.RestoreName, "--from-backup", s.BackupName, "--namespace-mappings", fmt.Sprintf("%s:%s", s.namespace, s.mappedNS), "--wait", } return nil diff --git a/test/e2e/bsl-mgmt/deletion.go b/test/e2e/bsl-mgmt/deletion.go index 5cd9f9d87b..0ff5a9fa98 100644 --- a/test/e2e/bsl-mgmt/deletion.go +++ b/test/e2e/bsl-mgmt/deletion.go @@ -76,7 +76,8 @@ func BslDeletionTest(useVolumeSnapshots bool) { AfterEach(func() { if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.DefaultClient) + veleroCfg.ClientToInstallVelero = veleroCfg.DefaultClient + DeleteAllBackups(context.Background(), &veleroCfg) }) By(fmt.Sprintf("Delete sample workload namespace %s", bslDeletionTestNs), func() { Expect(DeleteNamespace(context.Background(), *veleroCfg.ClientToInstallVelero, bslDeletionTestNs, @@ -255,13 +256,13 @@ func BslDeletionTest(useVolumeSnapshots bool) { } By(fmt.Sprintf("Backup 1 %s should be created.", backupName_1), func() { - Expect(WaitForBackupToBeCreated(context.Background(), veleroCfg.VeleroCLI, - backupName_1, 10*time.Minute)).To(Succeed()) + Expect(WaitForBackupToBeCreated(context.Background(), + backupName_1, 10*time.Minute, &veleroCfg)).To(Succeed()) }) By(fmt.Sprintf("Backup 2 %s should be created.", backupName_2), func() { - Expect(WaitForBackupToBeCreated(context.Background(), veleroCfg.VeleroCLI, - backupName_2, 10*time.Minute)).To(Succeed()) + Expect(WaitForBackupToBeCreated(context.Background(), + backupName_2, 10*time.Minute, &veleroCfg)).To(Succeed()) }) backupsInBSL1, err := GetBackupsFromBsl(context.Background(), veleroCfg.VeleroCLI, backupLocation_1) @@ -283,7 +284,7 @@ func BslDeletionTest(useVolumeSnapshots bool) { By(fmt.Sprintf("Delete one of backup locations - %s", backupLocation_1), func() { Expect(DeleteBslResource(context.Background(), veleroCfg.VeleroCLI, backupLocation_1)).To(Succeed()) - Expect(WaitForBackupsToBeDeleted(context.Background(), veleroCfg.VeleroCLI, backupsInBSL1, 10*time.Minute)).To(Succeed()) + Expect(WaitForBackupsToBeDeleted(context.Background(), backupsInBSL1, 10*time.Minute, &veleroCfg)).To(Succeed()) }) By("Get all backups from 2 BSLs after deleting one of them", func() { diff --git a/test/e2e/migration/migration.go b/test/e2e/migration/migration.go index 56f0a9e6b7..0db2d983c1 100644 --- a/test/e2e/migration/migration.go +++ b/test/e2e/migration/migration.go @@ -295,7 +295,7 @@ func MigrationTest(useVolumeSnapshots bool, veleroCLI2Version VeleroCLI2Version) veleroCfg.UseRestic = false if veleroCfg.SnapshotMoveData { veleroCfg.UseNodeAgent = true - // For SnapshotMoveData pipelines, we should use standby clustr setting for Velero installation + // For SnapshotMoveData pipelines, we should use standby cluster setting for Velero installation // In nightly CI, StandbyClusterPlugins is set properly if pipeline is for SnapshotMoveData. veleroCfg.Plugins = veleroCfg.StandbyClusterPlugins veleroCfg.ObjectStoreProvider = veleroCfg.StandbyClusterObjectStoreProvider @@ -305,8 +305,8 @@ func MigrationTest(useVolumeSnapshots bool, veleroCLI2Version VeleroCLI2Version) }) By(fmt.Sprintf("Waiting for backups sync to Velero in cluster-B (%s)", veleroCfg.StandbyClusterContext), func() { - Expect(WaitForBackupToBeCreated(context.Background(), veleroCfg.VeleroCLI, backupName, 5*time.Minute)).To(Succeed()) - Expect(WaitForBackupToBeCreated(context.Background(), veleroCfg.VeleroCLI, backupScName, 5*time.Minute)).To(Succeed()) + Expect(WaitForBackupToBeCreated(context.Background(), backupName, 5*time.Minute, &veleroCfg)).To(Succeed()) + Expect(WaitForBackupToBeCreated(context.Background(), backupScName, 5*time.Minute, &veleroCfg)).To(Succeed()) }) By(fmt.Sprintf("Restore %s", migrationNamespace), func() { @@ -346,7 +346,8 @@ func MigrationTest(useVolumeSnapshots bool, veleroCLI2Version VeleroCLI2Version) // TODO: delete backup created by case self, not all By("Clean backups after test", func() { - DeleteBackups(context.Background(), *veleroCfg.DefaultClient, backupNames) + veleroCfg.ClientToInstallVelero = veleroCfg.DefaultClient + DeleteBackups(context.Background(), backupNames, &veleroCfg) }) }) }) diff --git a/test/e2e/pv-backup/pv-backup-filter.go b/test/e2e/pv-backup/pv-backup-filter.go index 556dfeb702..07b14d0c16 100644 --- a/test/e2e/pv-backup/pv-backup-filter.go +++ b/test/e2e/pv-backup/pv-backup-filter.go @@ -35,8 +35,6 @@ func (p *PVBackupFiltering) Init() error { p.CaseBaseName = "pv-filter-" + p.UUIDgen p.BackupName = "backup-" + p.CaseBaseName + p.id p.RestoreName = "restore-" + p.CaseBaseName + p.id - p.VeleroCfg = VeleroCfg - p.Client = *p.VeleroCfg.ClientToInstallVelero p.VeleroCfg.UseVolumeSnapshots = false p.VeleroCfg.UseNodeAgent = true p.NSIncluded = &[]string{fmt.Sprintf("%s-%s-%d", p.CaseBaseName, p.id, 1), fmt.Sprintf("%s-%s-%d", p.CaseBaseName, p.id, 2)} @@ -48,7 +46,7 @@ func (p *PVBackupFiltering) Init() error { } p.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", p.BackupName, + "create", "--namespace", p.VeleroCfg.VeleroNamespace, "backup", p.BackupName, "--include-namespaces", strings.Join(*p.NSIncluded, ","), "--snapshot-volumes=false", "--wait", } @@ -59,7 +57,7 @@ func (p *PVBackupFiltering) Init() error { } p.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", p.RestoreName, + "create", "--namespace", p.VeleroCfg.VeleroNamespace, "restore", p.RestoreName, "--from-backup", p.BackupName, "--wait", } return nil @@ -67,7 +65,7 @@ func (p *PVBackupFiltering) Init() error { func (p *PVBackupFiltering) CreateResources() error { p.Ctx, p.CtxCancel = context.WithTimeout(context.Background(), 30*time.Minute) - err := InstallStorageClass(p.Ctx, fmt.Sprintf("../testdata/storage-class/%s.yaml", VeleroCfg.CloudProvider)) + err := InstallStorageClass(p.Ctx, fmt.Sprintf("../testdata/storage-class/%s.yaml", p.VeleroCfg.CloudProvider)) if err != nil { return errors.Wrapf(err, "failed to install storage class for pv backup filtering test") } diff --git a/test/e2e/resource-filtering/base.go b/test/e2e/resource-filtering/base.go index 9d45adba21..61be331c37 100644 --- a/test/e2e/resource-filtering/base.go +++ b/test/e2e/resource-filtering/base.go @@ -24,7 +24,6 @@ import ( "github.com/pkg/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -46,16 +45,14 @@ func (f *FilteringCase) Init() error { f.replica = int32(2) f.labels = map[string]string{"resourcefiltering": "true"} f.labelSelector = "resourcefiltering" - f.VeleroCfg = VeleroCfg - f.Client = *f.VeleroCfg.ClientToInstallVelero f.NamespacesTotal = 3 f.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", f.BackupName, + "create", "--namespace", f.VeleroCfg.VeleroNamespace, "backup", f.BackupName, "--default-volumes-to-fs-backup", "--wait", } f.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", f.RestoreName, + "create", "--namespace", f.VeleroCfg.VeleroNamespace, "restore", f.RestoreName, "--from-backup", f.BackupName, "--wait", } diff --git a/test/e2e/resource-filtering/exclude_label.go b/test/e2e/resource-filtering/exclude_label.go index 50167ddd71..76465ae5b7 100644 --- a/test/e2e/resource-filtering/exclude_label.go +++ b/test/e2e/resource-filtering/exclude_label.go @@ -23,11 +23,9 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - apierrors "k8s.io/apimachinery/pkg/api/errors" - "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -64,13 +62,13 @@ func (e *ExcludeFromBackup) Init() error { e.labelSelector = "velero.io/exclude-from-backup" e.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "backup", e.BackupName, "--include-namespaces", e.CaseBaseName, "--default-volumes-to-fs-backup", "--wait", } e.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "restore", e.RestoreName, "--from-backup", e.BackupName, "--wait", } return nil diff --git a/test/e2e/resource-filtering/exclude_namespaces.go b/test/e2e/resource-filtering/exclude_namespaces.go index a31dfa625b..096ddcfb98 100644 --- a/test/e2e/resource-filtering/exclude_namespaces.go +++ b/test/e2e/resource-filtering/exclude_namespaces.go @@ -25,7 +25,6 @@ import ( "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -81,27 +80,27 @@ func (e *ExcludeNamespaces) Init() error { } if e.IsTestInBackup { e.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "backup", e.BackupName, "--exclude-namespaces", strings.Join(*e.nsExcluded, ","), "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } e.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "restore", e.RestoreName, "--from-backup", e.BackupName, "--wait", } } else { *e.NSIncluded = append(*e.NSIncluded, *e.nsExcluded...) e.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "backup", e.BackupName, "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } e.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "restore", e.RestoreName, "--exclude-namespaces", strings.Join(*e.nsExcluded, ","), "--from-backup", e.BackupName, "--wait", } diff --git a/test/e2e/resource-filtering/exclude_resources.go b/test/e2e/resource-filtering/exclude_resources.go index 033fe95ffe..5c2f37e737 100644 --- a/test/e2e/resource-filtering/exclude_resources.go +++ b/test/e2e/resource-filtering/exclude_resources.go @@ -62,14 +62,14 @@ func (e *ExcludeResources) Init() error { e.BackupName = "backup-" + e.CaseBaseName e.RestoreName = "restore-" + UUIDgen.String() e.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "backup", e.BackupName, "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--exclude-resources", "secrets", "--default-volumes-to-fs-backup", "--wait", } e.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "restore", e.RestoreName, "--from-backup", e.BackupName, "--wait", } } else { // testing case restore with exclude-resources option @@ -81,12 +81,12 @@ func (e *ExcludeResources) Init() error { FailedMSG: "Failed to restore with resource exclude", } e.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", e.BackupName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "backup", e.BackupName, "--include-namespaces", strings.Join(*e.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } e.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", e.RestoreName, + "create", "--namespace", e.VeleroCfg.VeleroNamespace, "restore", e.RestoreName, "--exclude-resources", "secrets", "--from-backup", e.BackupName, "--wait", } diff --git a/test/e2e/resource-filtering/include_namespaces.go b/test/e2e/resource-filtering/include_namespaces.go index 6d3b32b72b..e670d123c9 100644 --- a/test/e2e/resource-filtering/include_namespaces.go +++ b/test/e2e/resource-filtering/include_namespaces.go @@ -25,7 +25,6 @@ import ( "github.com/pkg/errors" apierrors "k8s.io/apimachinery/pkg/api/errors" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -71,13 +70,13 @@ func (i *IncludeNamespaces) Init() error { Text: fmt.Sprintf("should backup %d namespaces of %d", i.namespacesIncluded, i.NamespacesTotal), } i.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "backup", i.BackupName, "--include-namespaces", strings.Join(*i.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } i.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "restore", i.RestoreName, "--from-backup", i.BackupName, "--wait", } @@ -90,13 +89,13 @@ func (i *IncludeNamespaces) Init() error { Text: fmt.Sprintf("should restore %d namespaces of %d", i.namespacesIncluded, i.NamespacesTotal), } i.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "backup", i.BackupName, "--include-namespaces", strings.Join(*i.allTestNamespaces, ","), "--default-volumes-to-fs-backup", "--wait", } i.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "restore", i.RestoreName, "--include-namespaces", strings.Join(*i.NSIncluded, ","), "--from-backup", i.BackupName, "--wait", } diff --git a/test/e2e/resource-filtering/include_resources.go b/test/e2e/resource-filtering/include_resources.go index 4b6ac7126d..23199d2de2 100644 --- a/test/e2e/resource-filtering/include_resources.go +++ b/test/e2e/resource-filtering/include_resources.go @@ -24,7 +24,6 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -60,13 +59,13 @@ func (i *IncludeResources) Init() error { i.BackupName = "backup-" + i.CaseBaseName i.RestoreName = "restore-" + i.UUIDgen i.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "backup", i.BackupName, "--include-resources", "deployments,configmaps", "--default-volumes-to-fs-backup", "--wait", } i.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "restore", i.RestoreName, "--from-backup", i.BackupName, "--wait", } } else { // testing case restore with include-resources option @@ -78,12 +77,12 @@ func (i *IncludeResources) Init() error { i.BackupName = "backup-" + i.UUIDgen i.RestoreName = "restore-" + i.CaseBaseName i.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", i.BackupName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "backup", i.BackupName, "--include-namespaces", strings.Join(*i.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } i.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", i.RestoreName, + "create", "--namespace", i.VeleroCfg.VeleroNamespace, "restore", i.RestoreName, "--include-resources", "deployments,configmaps", "--from-backup", i.BackupName, "--wait", } diff --git a/test/e2e/resource-filtering/label_selector.go b/test/e2e/resource-filtering/label_selector.go index 56712a3d7b..21610ec040 100644 --- a/test/e2e/resource-filtering/label_selector.go +++ b/test/e2e/resource-filtering/label_selector.go @@ -26,7 +26,6 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -62,14 +61,14 @@ func (l *LabelSelector) Init() error { } l.labelSelector = "resourcefiltering" l.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", l.BackupName, + "create", "--namespace", l.VeleroCfg.VeleroNamespace, "backup", l.BackupName, "--selector", "resourcefiltering=true", "--include-namespaces", strings.Join(*l.NSIncluded, ","), "--default-volumes-to-fs-backup", "--wait", } l.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", l.RestoreName, + "create", "--namespace", l.VeleroCfg.VeleroNamespace, "restore", l.RestoreName, "--from-backup", l.BackupName, "--wait", } return nil diff --git a/test/e2e/resourcemodifiers/resource_modifiers.go b/test/e2e/resourcemodifiers/resource_modifiers.go index e32ce4d97d..7f72a94642 100644 --- a/test/e2e/resourcemodifiers/resource_modifiers.go +++ b/test/e2e/resourcemodifiers/resource_modifiers.go @@ -24,10 +24,8 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - "github.com/pkg/errors" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" ) @@ -74,19 +72,17 @@ func (r *ResourceModifiersCase) Init() error { // assign values to the inner variable for specific case r.yamlConfig = yamlData - r.VeleroCfg = VeleroCfg - r.Client = *r.VeleroCfg.ClientToInstallVelero r.VeleroCfg.UseVolumeSnapshots = false r.VeleroCfg.UseNodeAgent = false r.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", r.BackupName, + "create", "--namespace", r.VeleroCfg.VeleroNamespace, "backup", r.BackupName, "--include-namespaces", strings.Join(*r.NSIncluded, ","), "--snapshot-volumes=false", "--wait", } r.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", r.RestoreName, + "create", "--namespace", r.VeleroCfg.VeleroNamespace, "restore", r.RestoreName, "--resource-modifier-configmap", r.cmName, "--from-backup", r.BackupName, "--wait", } diff --git a/test/e2e/resourcepolicies/resource_policies.go b/test/e2e/resourcepolicies/resource_policies.go index df96bc3d91..82265da9e4 100644 --- a/test/e2e/resourcepolicies/resource_policies.go +++ b/test/e2e/resourcepolicies/resource_policies.go @@ -76,14 +76,12 @@ func (r *ResourcePoliciesCase) Init() error { // assign values to the inner variable for specific case r.yamlConfig = yamlData - r.VeleroCfg = VeleroCfg - r.Client = *r.VeleroCfg.ClientToInstallVelero r.VeleroCfg.UseVolumeSnapshots = false r.VeleroCfg.UseNodeAgent = true // NEED explicitly specify the value of the variables for snapshot-volumes or default-volumes-to-fs-backup r.BackupArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "backup", r.BackupName, + "create", "--namespace", r.VeleroCfg.VeleroNamespace, "backup", r.BackupName, "--resource-policies-configmap", r.cmName, "--include-namespaces", strings.Join(*r.NSIncluded, ","), "--default-volumes-to-fs-backup", @@ -91,7 +89,7 @@ func (r *ResourcePoliciesCase) Init() error { } r.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", r.RestoreName, + "create", "--namespace", r.VeleroCfg.VeleroNamespace, "restore", r.RestoreName, "--from-backup", r.BackupName, "--wait", } @@ -109,7 +107,7 @@ func (r *ResourcePoliciesCase) CreateResources() error { r.Ctx, r.CtxCancel = context.WithTimeout(context.Background(), 10*time.Minute) By(("Installing storage class..."), func() { - Expect(InstallTestStorageClasses(fmt.Sprintf("../testdata/storage-class/%s.yaml", VeleroCfg.CloudProvider))).To(Succeed(), "Failed to install storage class") + Expect(InstallTestStorageClasses(fmt.Sprintf("../testdata/storage-class/%s.yaml", r.VeleroCfg.CloudProvider))).To(Succeed(), "Failed to install storage class") }) By(fmt.Sprintf("Create configmap %s in namespaces %s for workload\n", r.cmName, r.VeleroCfg.VeleroNamespace), func() { diff --git a/test/e2e/schedule/ordered_resources.go b/test/e2e/schedule/ordered_resources.go index 9d327d00b4..4724c7d7c7 100644 --- a/test/e2e/schedule/ordered_resources.go +++ b/test/e2e/schedule/ordered_resources.go @@ -30,7 +30,6 @@ import ( kbclient "sigs.k8s.io/controller-runtime/pkg/client" velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" . "github.com/vmware-tanzu/velero/test/util/velero" @@ -51,8 +50,6 @@ func (o *OrderedResources) Init() error { o.CaseBaseName = "ordered-resources-" + o.UUIDgen o.ScheduleName = "schedule-" + o.CaseBaseName o.Namespace = o.CaseBaseName + "-" + o.UUIDgen - o.VeleroCfg = VeleroCfg - o.Client = *o.VeleroCfg.ClientToInstallVelero o.OrderMap = map[string]string{ "deployments": fmt.Sprintf("deploy-%s", o.CaseBaseName), "secrets": fmt.Sprintf("secret-%s", o.CaseBaseName), diff --git a/test/e2e/schedule/schedule-backup-creation.go b/test/e2e/schedule/schedule-backup-creation.go index c9a7a79172..fd2c8d2d43 100644 --- a/test/e2e/schedule/schedule-backup-creation.go +++ b/test/e2e/schedule/schedule-backup-creation.go @@ -10,7 +10,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" . "github.com/vmware-tanzu/velero/test/util/velero" @@ -37,9 +36,7 @@ func (n *ScheduleBackupCreation) Init() error { n.TestCase.Init() n.CaseBaseName = "schedule-backup-creation-test" + n.UUIDgen n.ScheduleName = "schedule-" + n.CaseBaseName - n.namespace = n.CaseBaseName - n.VeleroCfg = VeleroCfg - n.Client = *n.VeleroCfg.ClientToInstallVelero + n.namespace = n.GetTestCase().CaseBaseName n.Period = 3 // Unit is minute n.verifyTimes = 5 // More larger verify times more confidence we have podSleepDurationStr := "300s" @@ -91,8 +88,8 @@ func (n *ScheduleBackupCreation) Backup() error { now := time.Now().Minute() triggerNow := now % n.Period if triggerNow == 0 { - Expect(VeleroScheduleCreate(n.Ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, n.ScheduleName, n.ScheduleArgs)).To(Succeed(), func() string { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", "") + Expect(VeleroScheduleCreate(n.Ctx, n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, n.ScheduleName, n.ScheduleArgs)).To(Succeed(), func() string { + RunDebug(context.Background(), n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, "", "") return "Fail to create schedule" }) break @@ -110,7 +107,7 @@ func (n *ScheduleBackupCreation) Backup() error { mi, _ := time.ParseDuration("60s") time.Sleep(n.podSleepDuration + mi) bMap := make(map[string]string) - backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, VeleroCfg.VeleroCLI, "default", n.ScheduleName) + backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, n.VeleroCfg.VeleroCLI, "default", n.ScheduleName) Expect(err).To(Succeed()) Expect(len(backupsInfo) == i).To(Equal(true)) for index, bi := range backupsInfo { diff --git a/test/e2e/schedule/schedule.go b/test/e2e/schedule/schedule.go index 3c18c2dd3f..db1bc1cad3 100644 --- a/test/e2e/schedule/schedule.go +++ b/test/e2e/schedule/schedule.go @@ -10,7 +10,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" - . "github.com/vmware-tanzu/velero/test" . "github.com/vmware-tanzu/velero/test/e2e/test" . "github.com/vmware-tanzu/velero/test/util/k8s" . "github.com/vmware-tanzu/velero/test/util/velero" @@ -33,8 +32,6 @@ func (n *ScheduleBackup) Init() error { n.NSIncluded = &[]string{n.CaseBaseName} n.ScheduleName = "schedule-" + n.CaseBaseName n.RestoreName = "restore-" + n.CaseBaseName - n.VeleroCfg = VeleroCfg - n.Client = *n.VeleroCfg.ClientToInstallVelero n.Period = 3 // Unit is minute n.verifyTimes = 5 // More larger verify times more confidence we have n.TestMsg = &TestMSG{ @@ -77,8 +74,8 @@ func (n *ScheduleBackup) Backup() error { now := time.Now().Minute() triggerNow := now % n.Period if triggerNow == 0 { - Expect(VeleroScheduleCreate(n.Ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, n.ScheduleName, n.ScheduleArgs)).To(Succeed(), func() string { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", "") + Expect(VeleroScheduleCreate(n.Ctx, n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, n.ScheduleName, n.ScheduleArgs)).To(Succeed(), func() string { + RunDebug(context.Background(), n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, "", "") return "Fail to create schedule" }) break @@ -87,7 +84,7 @@ func (n *ScheduleBackup) Backup() error { }) By(fmt.Sprintf("Schedule %s is created without any delay\n", n.ScheduleName), func() { - creationTimestamp, err := GetSchedule(n.Ctx, VeleroCfg.VeleroNamespace, n.ScheduleName) + creationTimestamp, err := GetSchedule(n.Ctx, n.VeleroCfg.VeleroNamespace, n.ScheduleName) Expect(err).To(Succeed()) creationTime, err := time.Parse(time.RFC3339, strings.Replace(creationTimestamp, "'", "", -1)) @@ -105,7 +102,7 @@ func (n *ScheduleBackup) Backup() error { fmt.Printf("Get backup for #%d time at %v\n", i, now) //Ignore the last minute in the period avoiding met the 1st backup by schedule if i != n.Period-1 { - backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, VeleroCfg.VeleroCLI, "default", n.ScheduleName) + backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, n.VeleroCfg.VeleroCLI, "default", n.ScheduleName) Expect(err).To(Succeed()) Expect(len(backupsInfo) == 0).To(Equal(true)) } @@ -121,7 +118,7 @@ func (n *ScheduleBackup) Backup() error { fmt.Printf("Start to sleep %d minute #%d time...\n", n.Period, i+1) time.Sleep(time.Duration(n.Period) * time.Minute) bMap := make(map[string]string) - backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, VeleroCfg.VeleroCLI, "default", n.ScheduleName) + backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, n.VeleroCfg.VeleroCLI, "default", n.ScheduleName) Expect(err).To(Succeed()) Expect(len(backupsInfo) == i+2).To(Equal(true)) for index, bi := range backupsInfo { @@ -141,19 +138,19 @@ func (n *ScheduleBackup) Backup() error { n.BackupName = strings.Replace(n.randBackupName, " ", "", -1) n.RestoreArgs = []string{ - "create", "--namespace", VeleroCfg.VeleroNamespace, "restore", n.RestoreName, + "create", "--namespace", n.VeleroCfg.VeleroNamespace, "restore", n.RestoreName, "--from-backup", n.BackupName, "--wait", } - backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, VeleroCfg.VeleroCLI, "default", n.ScheduleName) + backupsInfo, err := GetScheduledBackupsCreationTime(n.Ctx, n.VeleroCfg.VeleroCLI, "default", n.ScheduleName) Expect(err).To(Succeed(), fmt.Sprintf("Fail to get backups from schedule %s", n.ScheduleName)) fmt.Println(backupsInfo) backupCount := len(backupsInfo) By(fmt.Sprintf("Pause schedule %s ......\n", n.ScheduleName), func() { - Expect(VeleroSchedulePause(n.Ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, n.ScheduleName)).To(Succeed(), func() string { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", "") + Expect(VeleroSchedulePause(n.Ctx, n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, n.ScheduleName)).To(Succeed(), func() string { + RunDebug(context.Background(), n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, "", "") return "Fail to pause schedule" }) }) @@ -164,7 +161,7 @@ func (n *ScheduleBackup) Backup() error { time.Sleep(sleepDuration) }) - backupsInfo, err = GetScheduledBackupsCreationTime(n.Ctx, VeleroCfg.VeleroCLI, "default", n.ScheduleName) + backupsInfo, err = GetScheduledBackupsCreationTime(n.Ctx, n.VeleroCfg.VeleroCLI, "default", n.ScheduleName) Expect(err).To(Succeed(), fmt.Sprintf("Fail to get backups from schedule %s", n.ScheduleName)) backupCountPostPause := len(backupsInfo) @@ -175,8 +172,8 @@ func (n *ScheduleBackup) Backup() error { }) By(fmt.Sprintf("Unpause schedule %s ......\n", n.ScheduleName), func() { - Expect(VeleroScheduleUnpause(n.Ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, n.ScheduleName)).To(Succeed(), func() string { - RunDebug(context.Background(), VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, "", "") + Expect(VeleroScheduleUnpause(n.Ctx, n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, n.ScheduleName)).To(Succeed(), func() string { + RunDebug(context.Background(), n.VeleroCfg.VeleroCLI, n.VeleroCfg.VeleroNamespace, "", "") return "Fail to unpause schedule" }) }) @@ -185,7 +182,7 @@ func (n *ScheduleBackup) Backup() error { time.Sleep(sleepDuration) }) - backupsInfo, err = GetScheduledBackupsCreationTime(n.Ctx, VeleroCfg.VeleroCLI, "default", n.ScheduleName) + backupsInfo, err = GetScheduledBackupsCreationTime(n.Ctx, n.VeleroCfg.VeleroCLI, "default", n.ScheduleName) Expect(err).To(Succeed(), fmt.Sprintf("Fail to get backups from schedule %s", n.ScheduleName)) fmt.Println(backupsInfo) backupCountPostUnpause := len(backupsInfo) diff --git a/test/e2e/test/test.go b/test/e2e/test/test.go index eaf9eda455..3eac6213f6 100644 --- a/test/e2e/test/test.go +++ b/test/e2e/test/test.go @@ -125,6 +125,8 @@ func TestFuncWithMultiIt(tests []VeleroBackupRestoreTest) func() { func (t *TestCase) Init() error { t.Ctx, t.CtxCancel = context.WithTimeout(context.Background(), 1*time.Hour) t.UUIDgen = t.GenerateUUID() + t.VeleroCfg = VeleroCfg + t.Client = *t.VeleroCfg.ClientToInstallVelero return nil } @@ -190,7 +192,8 @@ func (t *TestCase) Clean() error { CleanupNamespaces(t.Ctx, t.Client, t.CaseBaseName) }) By("Clean backups after test", func() { - DeleteAllBackups(t.Ctx, t.Client) + veleroCfg.ClientToInstallVelero = &t.Client + DeleteAllBackups(t.Ctx, &veleroCfg) }) } return nil diff --git a/test/e2e/upgrade/upgrade.go b/test/e2e/upgrade/upgrade.go index 25c4b1ab62..2ff0dcf1e5 100644 --- a/test/e2e/upgrade/upgrade.go +++ b/test/e2e/upgrade/upgrade.go @@ -87,7 +87,7 @@ func BackupUpgradeRestoreTest(useVolumeSnapshots bool, veleroCLI2Version VeleroC AfterEach(func() { if !veleroCfg.Debug { By("Clean backups after test", func() { - DeleteAllBackups(context.Background(), *veleroCfg.ClientToInstallVelero) + DeleteAllBackups(context.Background(), &veleroCfg) }) By(fmt.Sprintf("Delete sample workload namespace %s", upgradeNamespace), func() { DeleteNamespace(context.Background(), *veleroCfg.ClientToInstallVelero, upgradeNamespace, true) diff --git a/test/util/velero/install.go b/test/util/velero/install.go index 5a19eb064a..633ef113fd 100644 --- a/test/util/velero/install.go +++ b/test/util/velero/install.go @@ -105,7 +105,7 @@ func VeleroInstall(ctx context.Context, veleroCfg *VeleroConfig, isStandbyCluste if veleroCfg.ObjectStoreProvider == "" { veleroCfg.ObjectStoreProvider = "aws" } - if err := configvSpherePlugin(*veleroCfg.ClientToInstallVelero); err != nil { + if err := configvSpherePlugin(veleroCfg); err != nil { return errors.WithMessagef(err, "Failed to config vsphere plugin") } } @@ -162,34 +162,35 @@ func VeleroInstall(ctx context.Context, veleroCfg *VeleroConfig, isStandbyCluste } // configvSpherePlugin refers to https://github.com/vmware-tanzu/velero-plugin-for-vsphere/blob/v1.3.0/docs/vanilla.md -func configvSpherePlugin(cli TestClient) error { +func configvSpherePlugin(veleroCfg *VeleroConfig) error { + cli := veleroCfg.ClientToInstallVelero var err error vsphereSecret := "velero-vsphere-config-secret" configmaptName := "velero-vsphere-plugin-config" - if err := clearupvSpherePluginConfig(cli.ClientGo, VeleroCfg.VeleroNamespace, vsphereSecret, configmaptName); err != nil { - return errors.WithMessagef(err, "Failed to clear up vsphere plugin config %s namespace", VeleroCfg.VeleroNamespace) + if err := clearupvSpherePluginConfig(cli.ClientGo, veleroCfg.VeleroNamespace, vsphereSecret, configmaptName); err != nil { + return errors.WithMessagef(err, "Failed to clear up vsphere plugin config %s namespace", veleroCfg.VeleroNamespace) } - if err := CreateNamespace(context.Background(), cli, VeleroCfg.VeleroNamespace); err != nil { - return errors.WithMessagef(err, "Failed to create Velero %s namespace", VeleroCfg.VeleroNamespace) + if err := CreateNamespace(context.Background(), *cli, veleroCfg.VeleroNamespace); err != nil { + return errors.WithMessagef(err, "Failed to create Velero %s namespace", veleroCfg.VeleroNamespace) } - if err := createVCCredentialSecret(cli.ClientGo, VeleroCfg.VeleroNamespace); err != nil { - return errors.WithMessagef(err, "Failed to create virtual center credential secret in %s namespace", VeleroCfg.VeleroNamespace) + if err := createVCCredentialSecret(cli.ClientGo, veleroCfg.VeleroNamespace); err != nil { + return errors.WithMessagef(err, "Failed to create virtual center credential secret in %s namespace", veleroCfg.VeleroNamespace) } - if err := WaitForSecretsComplete(cli.ClientGo, VeleroCfg.VeleroNamespace, vsphereSecret); err != nil { + if err := WaitForSecretsComplete(cli.ClientGo, veleroCfg.VeleroNamespace, vsphereSecret); err != nil { return errors.Wrap(err, "Failed to ensure velero-vsphere-config-secret secret completion in namespace kube-system") } - _, err = CreateConfigMap(cli.ClientGo, VeleroCfg.VeleroNamespace, configmaptName, map[string]string{ + _, err = CreateConfigMap(cli.ClientGo, veleroCfg.VeleroNamespace, configmaptName, map[string]string{ "cluster_flavor": "VANILLA", "vsphere_secret_name": vsphereSecret, - "vsphere_secret_namespace": VeleroCfg.VeleroNamespace, + "vsphere_secret_namespace": veleroCfg.VeleroNamespace, }, nil) if err != nil { - return errors.WithMessagef(err, "Failed to create velero-vsphere-plugin-config configmap in %s namespace", VeleroCfg.VeleroNamespace) + return errors.WithMessagef(err, "Failed to create velero-vsphere-plugin-config configmap in %s namespace", veleroCfg.VeleroNamespace) } - fmt.Println("configvSpherePlugin: WaitForConfigMapComplete") - err = WaitForConfigMapComplete(cli.ClientGo, VeleroCfg.VeleroNamespace, configmaptName) + + err = WaitForConfigMapComplete(cli.ClientGo, veleroCfg.VeleroNamespace, configmaptName) if err != nil { - return errors.Wrap(err, fmt.Sprintf("Failed to ensure configmap %s completion in namespace: %s", configmaptName, VeleroCfg.VeleroNamespace)) + return errors.Wrap(err, fmt.Sprintf("Failed to ensure configmap %s completion in namespace: %s", configmaptName, veleroCfg.VeleroNamespace)) } return nil } @@ -559,7 +560,9 @@ func waitVeleroReady(ctx context.Context, namespace string, useNodeAgent bool) e return nil } -func IsVeleroReady(ctx context.Context, namespace string, useNodeAgent bool) (bool, error) { +func IsVeleroReady(ctx context.Context, veleroCfg *VeleroConfig) (bool, error) { + namespace := veleroCfg.VeleroNamespace + useNodeAgent := veleroCfg.UseNodeAgent if useNodeAgent { stdout, stderr, err := velerexec.RunCommand(exec.CommandContext(ctx, "kubectl", "get", "daemonset/node-agent", "-o", "json", "-n", namespace)) @@ -594,14 +597,14 @@ func IsVeleroReady(ctx context.Context, namespace string, useNodeAgent bool) (bo stdout, stderr, err = velerexec.RunCommand(exec.CommandContext(ctx, "kubectl", "get", "bsl", "default", "-o", "json", "-n", namespace)) if err != nil { - return false, errors.Wrapf(err, "failed to get bsl %s stdout=%s, stderr=%s", VeleroCfg.BSLBucket, stdout, stderr) + return false, errors.Wrapf(err, "failed to get bsl %s stdout=%s, stderr=%s", veleroCfg.BSLBucket, stdout, stderr) } else { bsl := &velerov1api.BackupStorageLocation{} if err = json.Unmarshal([]byte(stdout), bsl); err != nil { return false, errors.Wrapf(err, "failed to unmarshal the velero bsl") } if bsl.Status.Phase != velerov1api.BackupStorageLocationPhaseAvailable { - return false, fmt.Errorf("current bsl %s is not available", VeleroCfg.BSLBucket) + return false, fmt.Errorf("current bsl %s is not available", veleroCfg.BSLBucket) } } @@ -609,7 +612,7 @@ func IsVeleroReady(ctx context.Context, namespace string, useNodeAgent bool) (bo } func PrepareVelero(ctx context.Context, caseName string, veleroCfg VeleroConfig) error { - ready, err := IsVeleroReady(context.Background(), veleroCfg.VeleroNamespace, veleroCfg.UseNodeAgent) + ready, err := IsVeleroReady(context.Background(), &veleroCfg) if err != nil { fmt.Printf("error in checking velero status with %v", err) ctx, ctxCancel := context.WithTimeout(context.Background(), time.Minute*5) diff --git a/test/util/velero/velero_utils.go b/test/util/velero/velero_utils.go index 29d0afc140..0fc850b417 100644 --- a/test/util/velero/velero_utils.go +++ b/test/util/velero/velero_utils.go @@ -935,8 +935,9 @@ func getVeleroCliTarball(cliTarballUrl string) (*os.File, error) { return tmpfile, nil } -func DeleteBackupResource(ctx context.Context, veleroCLI string, backupName string) error { - args := []string{"--namespace", VeleroCfg.VeleroNamespace, "backup", "delete", backupName, "--confirm"} +func DeleteBackupResource(ctx context.Context, backupName string, velerocfg *VeleroConfig) error { + veleroCLI := velerocfg.VeleroCLI + args := []string{"--namespace", velerocfg.VeleroNamespace, "backup", "delete", backupName, "--confirm"} cmd := exec.CommandContext(ctx, veleroCLI, args...) fmt.Println("Delete backup Command:" + cmd.String()) @@ -948,7 +949,7 @@ func DeleteBackupResource(ctx context.Context, veleroCLI string, backupName stri output := strings.Replace(stdout, "\n", " ", -1) fmt.Println("Backup delete command output:" + output) - args = []string{"--namespace", VeleroCfg.VeleroNamespace, "backup", "get", backupName} + args = []string{"--namespace", velerocfg.VeleroNamespace, "backup", "get", backupName} retryTimes := 5 for i := 1; i < retryTimes+1; i++ { @@ -967,14 +968,15 @@ func DeleteBackupResource(ctx context.Context, veleroCLI string, backupName stri return nil } -func GetBackup(ctx context.Context, veleroCLI, backupName string) (string, string, error) { - args := []string{"--namespace", VeleroCfg.VeleroNamespace, "backup", "get", backupName} +func GetBackup(ctx context.Context, backupName string, veleroCfg *VeleroConfig) (string, string, error) { + veleroCLI := veleroCfg.VeleroCLI + args := []string{"--namespace", veleroCfg.VeleroNamespace, "backup", "get", backupName} cmd := exec.CommandContext(ctx, veleroCLI, args...) return veleroexec.RunCommand(cmd) } -func IsBackupExist(ctx context.Context, veleroCLI, backupName string) (bool, error) { - out, outerr, err := GetBackup(ctx, veleroCLI, backupName) +func IsBackupExist(ctx context.Context, backupName string, veleroCfg *VeleroConfig) (bool, error) { + out, outerr, err := GetBackup(ctx, backupName, veleroCfg) if err != nil { if strings.Contains(outerr, "not found") { fmt.Printf("Backup CR %s was not found\n", backupName) @@ -986,9 +988,9 @@ func IsBackupExist(ctx context.Context, veleroCLI, backupName string) (bool, err return true, nil } -func WaitBackupDeleted(ctx context.Context, veleroCLI, backupName string, timeout time.Duration) error { +func WaitBackupDeleted(ctx context.Context, backupName string, timeout time.Duration, veleroCfg *VeleroConfig) error { return wait.PollImmediate(10*time.Second, timeout, func() (bool, error) { - if exist, err := IsBackupExist(ctx, veleroCLI, backupName); err != nil { + if exist, err := IsBackupExist(ctx, backupName, veleroCfg); err != nil { return false, err } else { if exist { @@ -1001,10 +1003,10 @@ func WaitBackupDeleted(ctx context.Context, veleroCLI, backupName string, timeou }) } -func WaitForExpectedStateOfBackup(ctx context.Context, veleroCLI, backupName string, - timeout time.Duration, existing bool) error { +func WaitForExpectedStateOfBackup(ctx context.Context, backupName string, + timeout time.Duration, existing bool, veleroCfg *VeleroConfig) error { return wait.PollImmediate(10*time.Second, timeout, func() (bool, error) { - if exist, err := IsBackupExist(ctx, veleroCLI, backupName); err != nil { + if exist, err := IsBackupExist(ctx, backupName, veleroCfg); err != nil { return false, err } else { msg := "does not exist as expect" @@ -1022,19 +1024,19 @@ func WaitForExpectedStateOfBackup(ctx context.Context, veleroCLI, backupName str }) } -func WaitForBackupToBeCreated(ctx context.Context, veleroCLI, backupName string, timeout time.Duration) error { - return WaitForExpectedStateOfBackup(ctx, veleroCLI, backupName, timeout, true) +func WaitForBackupToBeCreated(ctx context.Context, backupName string, timeout time.Duration, veleroCfg *VeleroConfig) error { + return WaitForExpectedStateOfBackup(ctx, backupName, timeout, true, veleroCfg) } -func WaitForBackupToBeDeleted(ctx context.Context, veleroCLI string, backupName string, timeout time.Duration) error { - return WaitForExpectedStateOfBackup(ctx, veleroCLI, backupName, timeout, false) +func WaitForBackupToBeDeleted(ctx context.Context, backupName string, timeout time.Duration, veleroCfg *VeleroConfig) error { + return WaitForExpectedStateOfBackup(ctx, backupName, timeout, false, veleroCfg) } -func WaitForBackupsToBeDeleted(ctx context.Context, veleroCLI string, backups []string, timeout time.Duration) error { +func WaitForBackupsToBeDeleted(ctx context.Context, backups []string, timeout time.Duration, veleroCfg *VeleroConfig) error { var err error for _, backupName := range backups { fmt.Println("Waiting for deletion of backup <" + backupName + ">") - err = WaitForExpectedStateOfBackup(ctx, veleroCLI, backupName, timeout, false) + err = WaitForExpectedStateOfBackup(ctx, backupName, timeout, false, veleroCfg) if err != nil { return err } @@ -1236,17 +1238,17 @@ func GetRepositories(ctx context.Context, veleroNamespace, targetNamespace strin return common.GetListByCmdPipes(ctx, cmds) } -func GetSnapshotCheckPoint(client TestClient, VeleroCfg VeleroConfig, expectCount int, namespaceBackedUp, backupName string, KibishiiPVCNameList []string) (SnapshotCheckPoint, error) { +func GetSnapshotCheckPoint(client TestClient, veleroCfg VeleroConfig, expectCount int, namespaceBackedUp, backupName string, KibishiiPVCNameList []string) (SnapshotCheckPoint, error) { var snapshotCheckPoint SnapshotCheckPoint snapshotCheckPoint.ExpectCount = expectCount snapshotCheckPoint.NamespaceBackedUp = namespaceBackedUp snapshotCheckPoint.PodName = KibishiiPVCNameList - if (VeleroCfg.CloudProvider == "azure" || VeleroCfg.CloudProvider == "aws") && strings.EqualFold(VeleroCfg.Features, FeatureCSI) { + if (veleroCfg.CloudProvider == "azure" || veleroCfg.CloudProvider == "aws") && strings.EqualFold(veleroCfg.Features, FeatureCSI) { snapshotCheckPoint.EnableCSI = true resourceName := "snapshot.storage.k8s.io" - srcVersions, err := GetAPIVersions(VeleroCfg.DefaultClient, resourceName) + srcVersions, err := GetAPIVersions(veleroCfg.DefaultClient, resourceName) if err != nil { return snapshotCheckPoint, err @@ -1292,30 +1294,32 @@ func GetVersionList(veleroCli, veleroVersion string) []VeleroCLI2Version { } return veleroCLI2VersionList } -func DeleteAllBackups(ctx context.Context, client TestClient) error { +func DeleteAllBackups(ctx context.Context, veleroCfg *VeleroConfig) error { + client := veleroCfg.ClientToInstallVelero backupList := new(velerov1api.BackupList) - if err := client.Kubebuilder.List(ctx, backupList, &kbclient.ListOptions{Namespace: VeleroCfg.VeleroNamespace}); err != nil { - return fmt.Errorf("failed to list backup object in %s namespace with err %v", VeleroCfg.VeleroNamespace, err) + if err := client.Kubebuilder.List(ctx, backupList, &kbclient.ListOptions{Namespace: veleroCfg.VeleroNamespace}); err != nil { + return fmt.Errorf("failed to list backup object in %s namespace with err %v", veleroCfg.VeleroNamespace, err) } for _, backup := range backupList.Items { fmt.Printf("Backup %s is going to be deleted...\n", backup.Name) - if err := VeleroBackupDelete(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup.Name); err != nil { + if err := VeleroBackupDelete(ctx, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, backup.Name); err != nil { return err } } return nil } -func DeleteBackups(ctx context.Context, client TestClient, backupNames []string) error { +func DeleteBackups(ctx context.Context, backupNames []string, veleroCfg *VeleroConfig) error { + client := veleroCfg.ClientToInstallVelero backupList := new(velerov1api.BackupList) - if err := client.Kubebuilder.List(ctx, backupList, &kbclient.ListOptions{Namespace: VeleroCfg.VeleroNamespace}); err != nil { - return fmt.Errorf("failed to list backup object in %s namespace with err %v", VeleroCfg.VeleroNamespace, err) + if err := client.Kubebuilder.List(ctx, backupList, &kbclient.ListOptions{Namespace: veleroCfg.VeleroNamespace}); err != nil { + return fmt.Errorf("failed to list backup object in %s namespace with err %v", veleroCfg.VeleroNamespace, err) } for _, backup := range backupList.Items { for _, bn := range backupNames { if backup.Name == bn { fmt.Printf("Backup %s is going to be deleted...\n", backup.Name) - if err := VeleroBackupDelete(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, backup.Name); err != nil { + if err := VeleroBackupDelete(ctx, veleroCfg.VeleroCLI, veleroCfg.VeleroNamespace, backup.Name); err != nil { return err } } @@ -1324,20 +1328,6 @@ func DeleteBackups(ctx context.Context, client TestClient, backupNames []string) return nil } -func DeleteRestores(ctx context.Context, client TestClient) error { - restoreList := new(velerov1api.RestoreList) - if err := client.Kubebuilder.List(ctx, restoreList, &kbclient.ListOptions{Namespace: VeleroCfg.VeleroNamespace}); err != nil { - return fmt.Errorf("failed to list restore object in %s namespace with err %v", VeleroCfg.VeleroNamespace, err) - } - for _, restore := range restoreList.Items { - fmt.Printf("Restore %s is going to be deleted...\n", restore.Name) - if err := VeleroRestoreDelete(ctx, VeleroCfg.VeleroCLI, VeleroCfg.VeleroNamespace, restore.Name); err != nil { - return err - } - } - return nil -} - func GetSchedule(ctx context.Context, veleroNamespace, scheduleName string) (string, error) { checkSnapshotCmd := exec.CommandContext(ctx, "kubectl", "get", "schedule", "-n", veleroNamespace, scheduleName, "-o=jsonpath='{.metadata.creationTimestamp}'")