flag.StringVar(&VeleroCfg.CloudProvider,"cloud-provider","","cloud that Velero will be installed into. Required.")
flag.StringVar(&VeleroCfg.ObjectStoreProvider,"object-store-provider","","provider of object store plugin. Required if cloud-provider is kind, otherwise ignored.")
flag.StringVar(&VeleroCfg.BSLBucket,"bucket","","name of the object storage bucket where backups from e2e tests should be stored. Required.")
flag.StringVar(&VeleroCfg.CloudCredentialsFile,"credentials-file","","file containing credentials for backup and volume provider. Required.")
flag.StringVar(&VeleroCfg.VeleroCLI,"velerocli","velero","path to the velero application to use.")
flag.StringVar(&VeleroCfg.VeleroImage,"velero-image","velero/velero:main","image for the velero server to be tested.")
flag.StringVar(&VeleroCfg.Plugins,"plugins","","provider plugins to be tested.")
flag.StringVar(&VeleroCfg.AddBSLPlugins,"additional-bsl-plugins","","additional plugins to be tested.")
flag.StringVar(&VeleroCfg.VeleroVersion,"velero-version","main","image version for the velero server to be tested with.")
flag.StringVar(&VeleroCfg.UpgradeFromVeleroCLI,"upgrade-from-velero-cli","","comma-separated list of velero application for the pre-upgrade velero server.")
flag.StringVar(&VeleroCfg.UpgradeFromVeleroVersion,"upgrade-from-velero-version","v1.7.1","comma-separated list of Velero version to be tested with for the pre-upgrade velero server.")
flag.StringVar(&VeleroCfg.MigrateFromVeleroCLI,"migrate-from-velero-cli","","comma-separated list of velero application on source cluster.")
flag.StringVar(&VeleroCfg.MigrateFromVeleroVersion,"migrate-from-velero-version","self","comma-separated list of Velero version to be tested with on source cluster.")
flag.BoolVar(&VeleroCfg.UseVolumeSnapshots,"use-volume-snapshots",true,"whether or not to create snapshot location automatically. Set to false if you do not plan to create volume snapshots via a storage provider.")
flag.StringVar(&VeleroCfg.RegistryCredentialFile,"registry-credential-file","","file containing credential for the image registry, follows the same format rules as the ~/.docker/config.json file. Optional.")
flag.StringVar(&VeleroCfg.KibishiiDirectory,"kibishii-directory","github.com/vmware-tanzu-experiments/distributed-data-generator/kubernetes/yaml/","file directory or URL path to install Kibishii. Optional.")
flag.StringVar(&VeleroCfg.AdditionalBSLProvider,"additional-bsl-object-store-provider","","provider of object store plugin for additional backup storage location. Required if testing multiple credentials support.")
flag.StringVar(&VeleroCfg.AdditionalBSLBucket,"additional-bsl-bucket","","name of the object storage bucket for additional backup storage location. Required if testing multiple credentials support.")
flag.StringVar(&VeleroCfg.AdditionalBSLPrefix,"additional-bsl-prefix","","prefix under which all Velero data should be stored within the bucket for additional backup storage location. Optional.")
flag.StringVar(&VeleroCfg.AdditionalBSLConfig,"additional-bsl-config","","configuration to use for the additional backup storage location. Format is key1=value1,key2=value2")
flag.StringVar(&VeleroCfg.AdditionalBSLCredentials,"additional-bsl-credentials-file","","file containing credentials for additional backup storage location provider. Required if testing multiple credentials support.")
flag.StringVar(&VeleroCfg.UploaderType,"uploader-type","","type of uploader for persistent volume backup.")
flag.BoolVar(&VeleroCfg.VeleroServerDebugMode,"velero-server-debug-mode",false,"a switch for enable or disable having debug log of Velero server.")
flag.BoolVar(&VeleroCfg.SnapshotMoveData,"snapshot-move-data",false,"a Switch for taking backup with Velero's data mover, if data-mover-plugin is not provided, using built-in plugin")
flag.StringVar(&VeleroCfg.DataMoverPlugin,"data-mover-plugin","","customized plugin for data mover.")
flag.StringVar(&VeleroCfg.StandbyClusterCloudProvider,"standby-cluster-cloud-provider","","cloud provider for standby cluster.")
flag.StringVar(&VeleroCfg.StandbyClusterPlugins,"standby-cluster-plugins","","plugins provider for standby cluster.")
var_=Describe("[APIGroup][APIVersion][SKIP_KIND] Velero tests with various CRD API group versions",APIGropuVersionsTest)
var_=Describe("[APIGroup][APIExtensions][SKIP_KIND] CRD of apiextentions v1beta1 should be B/R successfully from cluster(k8s version < 1.22) to cluster(k8s version >= 1.22)",APIExtensionsVersionsTest)
var_=Describe("[Basic][Restic] Velero tests on cluster using the plugin provider for object storage and Restic for volume backups",BackupRestoreWithRestic)
var_=Describe("[Basic][Snapshot][SkipVanillaZfs] Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups",BackupRestoreWithSnapshots)
var_=Describe("[Basic][Snapshot][RetainPV] Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups",BackupRestoreRetainedPVWithSnapshots)
var_=Describe("[Basic][Restic][RetainPV] Velero tests on cluster using the plugin provider for object storage and snapshots for volume backups",BackupRestoreRetainedPVWithRestic)
var_=Describe("[Upgrade][Restic] Velero upgrade tests on cluster using the plugin provider for object storage and Restic for volume backups",BackupUpgradeRestoreWithRestic)
var_=Describe("[Upgrade][Snapshot][SkipVanillaZfs] Velero upgrade tests on cluster using the plugin provider for object storage and snapshots for volume backups",BackupUpgradeRestoreWithSnapshots)
// test filter objects by namespace, type, or labels when backup or restore.
var_=Describe("[ResourceFiltering][ExcludeFromBackup] Resources with the label velero.io/exclude-from-backup=true are not included in backup",ExcludeFromBackupTest)
var_=Describe("[ResourceFiltering][ExcludeNamespaces][Backup] Velero test on exclude namespace from the cluster backup",BackupWithExcludeNamespaces)
var_=Describe("[ResourceFiltering][ExcludeNamespaces][Restore] Velero test on exclude namespace from the cluster restore",RestoreWithExcludeNamespaces)
var_=Describe("[ResourceFiltering][ExcludeResources][Backup] Velero test on exclude resources from the cluster backup",BackupWithExcludeResources)
var_=Describe("[ResourceFiltering][ExcludeResources][Restore] Velero test on exclude resources from the cluster restore",RestoreWithExcludeResources)
var_=Describe("[ResourceFiltering][IncludeNamespaces][Backup] Velero test on include namespace from the cluster backup",BackupWithIncludeNamespaces)
var_=Describe("[ResourceFiltering][IncludeNamespaces][Restore] Velero test on include namespace from the cluster restore",RestoreWithIncludeNamespaces)
var_=Describe("[ResourceFiltering][IncludeResources][Backup] Velero test on include resources from the cluster backup",BackupWithIncludeResources)
var_=Describe("[ResourceFiltering][IncludeResources][Restore] Velero test on include resources from the cluster restore",RestoreWithIncludeResources)
var_=Describe("[ResourceFiltering][LabelSelector] Velero test on backup include resources matching the label selector",BackupWithLabelSelector)
var_=Describe("[Backups][Deletion][Snapshot][SkipVanillaZfs] Velero tests of snapshot backup deletion",BackupDeletionWithSnapshots)
var_=Describe("[Backups][TTL][LongTime][Snapshot][SkipVanillaZfs] Local backups and restic repos will be deleted once the corresponding backup storage location is deleted",TTLTest)
var_=Describe("[Backups][BackupsSync] Backups in object storage are synced to a new Velero and deleted backups in object storage are synced to be deleted in Velero",BackupsSyncTest)
var_=Describe("[Schedule][OrderedResources] Backup resources should follow the specific order in schedule",ScheduleOrderedResources)
var_=Describe("[Schedule][BackupCreation][SKIP_KIND] Schedule controller wouldn't create a new backup when it still has pending or InProgress backup",ScheduleBackupCreationTest)
var_=Describe("[BSL][Deletion][Snapshot][SkipVanillaZfs] Local backups will be deleted once the corresponding backup storage location is deleted",BslDeletionWithSnapshots)
var_=Describe("[BSL][Deletion][Restic] Local backups and restic repos will be deleted once the corresponding backup storage location is deleted",BslDeletionWithRestic)
var_=Describe("[NamespaceMapping][Single][Snapshot][SkipVanillaZfs] Backup resources should follow the specific order in schedule",OneNamespaceMappingSnapshotTest)
var_=Describe("[NamespaceMapping][Multiple][Snapshot]SkipVanillaZfs] Backup resources should follow the specific order in schedule",MultiNamespacesMappingSnapshotTest)
var_=Describe("[Basic][StorageClass] Storage class of persistent volumes and persistent volume claims can be changed during restores",StorageClasssChangingTest)
var_=Describe("[Basic][SelectedNode][SKIP_KIND] Node selectors of persistent volume claims can be changed during restores",PVCSelectedNodeChangingTest)
// 2. E2E tests require a Kubernetes cluster to install and run velero which further requires more configuration. See above referenced command line flags.
t.Error(errors.New("No object store provider specified - must be specified when using kind as the cloud provider"))// Must have an object store provider