mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-05 04:55:22 +00:00
Split plug-in provider into cloud provider/object provider Moved velero install/uninstall for tests into velero_utils Added remove of CRDs to test v elero uninstall Added remove of cluster role binding to test velero uninstall Added dump of velero describe and logs on error Added velero namespace argument to velero_utils functions Modified api group versions e2e tests to use VeleroInstall Added velero logs dumps for api group versions e2e testing Added DeleteNamespace to test/e2e/common.go Fixed VeleroInstall to use the image specified Changed enable_api_group_versions_test to use veleroNamespace instead of hardcoded "velero" Signed-off-by: Dave Smith-Uchida <dsmithuchida@vmware.com>
61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package e2e
|
|
|
|
import (
|
|
"context"
|
|
"flag"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
|
"k8s.io/client-go/kubernetes"
|
|
)
|
|
|
|
var (
|
|
uuidgen uuid.UUID
|
|
)
|
|
|
|
// Test backup and restore of Kibishi using restic
|
|
var _ = Describe("[Restic] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups", func() {
|
|
var (
|
|
client *kubernetes.Clientset
|
|
extensionsClient *apiextensionsclientset.Clientset
|
|
backupName string
|
|
restoreName string
|
|
)
|
|
|
|
BeforeEach(func() {
|
|
var err error
|
|
flag.Parse()
|
|
uuidgen, err = uuid.NewRandom()
|
|
Expect(err).To(Succeed())
|
|
if installVelero {
|
|
VeleroInstall(context.Background(), veleroImage, veleroNamespace, cloudProvider, objectStoreProvider, useVolumeSnapshots,
|
|
cloudCredentialsFile, bslBucket, bslPrefix, bslConfig, vslConfig, "")
|
|
}
|
|
client, extensionsClient, err = GetClusterClient()
|
|
Expect(err).To(Succeed(), "Failed to instantiate cluster client")
|
|
})
|
|
|
|
AfterEach(func() {
|
|
if installVelero {
|
|
timeoutCTX, _ := context.WithTimeout(context.Background(), time.Minute)
|
|
err := VeleroUninstall(timeoutCTX, client, extensionsClient, veleroNamespace)
|
|
Expect(err).To(Succeed())
|
|
}
|
|
|
|
})
|
|
|
|
Context("When kibishii is the sample workload", func() {
|
|
It("should be successfully backed up and restored", func() {
|
|
backupName = "backup-" + uuidgen.String()
|
|
restoreName = "restore-" + uuidgen.String()
|
|
// Even though we are using Velero's CloudProvider plugin for object storage, the kubernetes cluster is running on
|
|
// KinD. So use the kind installation for Kibishii.
|
|
Expect(RunKibishiiTests(client, cloudProvider, veleroCLI, veleroNamespace, backupName, restoreName)).To(Succeed(),
|
|
"Failed to successfully backup and restore Kibishii namespace")
|
|
})
|
|
})
|
|
})
|