diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index c13e8e769f0..a4028e0688b 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -110,6 +110,8 @@ type TestContextType struct { FeatureGates map[string]bool // Node e2e specific test context NodeTestContextType + // Storage e2e specific test context + StorageTestContextType // Monitoring solution that is used in current cluster. ClusterMonitoringMode string // Separate Prometheus monitoring deployed in cluster @@ -157,6 +159,14 @@ type NodeTestContextType struct { SystemSpecName string } +// StorageConfig contains the shared settings for storage 2e2 tests. +type StorageTestContextType struct { + // CSIImageVersion overrides the builtin stable version numbers if set. + CSIImageVersion string + // CSIImageRegistry defines the image registry hosting the CSI container images. + CSIImageRegistry string +} + type CloudConfig struct { ApiEndpoint string ProjectID string @@ -290,6 +300,11 @@ func RegisterNodeFlags() { flag.StringVar(&TestContext.SystemSpecName, "system-spec-name", "", "The name of the system spec (e.g., gke) that's used in the node e2e test. The system specs are in test/e2e_node/system/specs/. This is used by the test framework to determine which tests to run for validating the system requirements.") } +func RegisterStorageFlags() { + flag.StringVar(&TestContext.CSIImageVersion, "csiImageVersion", "", "overrides the default tag used for hostpathplugin/csi-attacher/csi-provisioner/driver-registrar images") + flag.StringVar(&TestContext.CSIImageRegistry, "csiImageRegistry", "quay.io/k8scsi", "overrides the default repository used for hostpathplugin/csi-attacher/csi-provisioner/driver-registrar images") +} + // ViperizeFlags sets up all flag and config processing. Future configuration info should be added to viper, not to flags. func ViperizeFlags() { @@ -298,6 +313,7 @@ func ViperizeFlags() { // since go test 'flag's are sort of incompatible w/ flag, glog, etc. RegisterCommonFlags() RegisterClusterFlags() + RegisterStorageFlags() flag.Parse() // Part 2: Set Viper provided flags. diff --git a/test/e2e/storage/csi_objects.go b/test/e2e/storage/csi_objects.go index 2836f11d1c6..15fd7cf3282 100644 --- a/test/e2e/storage/csi_objects.go +++ b/test/e2e/storage/csi_objects.go @@ -20,7 +20,6 @@ limitations under the License. package storage import ( - "flag" "fmt" "time" @@ -44,19 +43,12 @@ var csiImageVersions = map[string]string{ "csi-provisioner": "v0.2.1", "driver-registrar": "v0.2.0", } -var csiImageVersion string -var csiImageRegistry string - -func init() { - flag.StringVar(&csiImageVersion, "csiImageVersion", "", "overrides the default tag used for hostpathplugin/csi-attacher/csi-provisioner/driver-registrar images") - flag.StringVar(&csiImageRegistry, "csiImageRegistry", "quay.io/k8scsi", "overrides the default repository used for hostpathplugin/csi-attacher/csi-provisioner/driver-registrar images") -} func csiContainerImage(image string) string { var fullName string - fullName += csiImageRegistry + "/" + image + ":" - if csiImageVersion != "" { - fullName += csiImageVersion + fullName += framework.TestContext.CSIImageRegistry + "/" + image + ":" + if framework.TestContext.CSIImageVersion != "" { + fullName += framework.TestContext.CSIImageVersion } else { fullName += csiImageVersions[image] }