diff --git a/api/v1/types.go b/api/v1/types.go index 0bb5079c9..fd3e909fb 100644 --- a/api/v1/types.go +++ b/api/v1/types.go @@ -230,7 +230,7 @@ type Driver struct { // ForceRemoveDriver is the boolean flag used to remove driver deployment when CR is deleted // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Force Remove Driver" - ForceRemoveDriver bool `json:"forceRemoveDriver,omitempty" yaml:"forceRemoveDriver"` + ForceRemoveDriver *bool `json:"forceRemoveDriver,omitempty" yaml:"forceRemoveDriver"` } // ContainerTemplate template diff --git a/api/v1/zz_generated.deepcopy.go b/api/v1/zz_generated.deepcopy.go index 1e31ce79e..f7c974bb7 100644 --- a/api/v1/zz_generated.deepcopy.go +++ b/api/v1/zz_generated.deepcopy.go @@ -261,6 +261,11 @@ func (in *Driver) DeepCopyInto(out *Driver) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ForceRemoveDriver != nil { + in, out := &in.ForceRemoveDriver, &out.ForceRemoveDriver + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Driver. diff --git a/controllers/csm_controller.go b/controllers/csm_controller.go index 997a516c0..82cb15109 100644 --- a/controllers/csm_controller.go +++ b/controllers/csm_controller.go @@ -271,6 +271,12 @@ func (r *ContainerStorageModuleReconciler) Reconcile(_ context.Context, req ctrl ConfigDirectory: r.Config.ConfigDirectory, } + // Set default value for forceRemoveDriver to true if not specified by the user + if csm.Spec.Driver.ForceRemoveDriver == nil { + truebool := true + csm.Spec.Driver.ForceRemoveDriver = &truebool + } + // Set default components if using miminal manifest (without components) err = utils.LoadDefaultComponents(ctx, csm, *operatorConfig) if err != nil { @@ -289,7 +295,7 @@ func (r *ContainerStorageModuleReconciler) Reconcile(_ context.Context, req ctrl log.Infow("Delete request", "csm", req.Namespace, "Name", req.Name) // check for force cleanup - if csm.Spec.Driver.ForceRemoveDriver { + if *csm.Spec.Driver.ForceRemoveDriver { // remove all resources deployed from CR by operator if err := r.removeDriver(ctx, *csm, *operatorConfig); err != nil { r.EventRecorder.Event(csm, corev1.EventTypeWarning, csmv1.EventDeleted, fmt.Sprintf("Failed to remove driver: %s", err)) diff --git a/controllers/csm_controller_test.go b/controllers/csm_controller_test.go index 91e111651..1427b1047 100644 --- a/controllers/csm_controller_test.go +++ b/controllers/csm_controller_test.go @@ -2068,7 +2068,7 @@ func (suite *CSMControllerTestSuite) makeFakeCSM(name, ns string, withFinalizer csm.ObjectMeta.Finalizers = []string{CSMFinalizerName} } // remove driver when deleting csm - csm.Spec.Driver.ForceRemoveDriver = true + csm.Spec.Driver.ForceRemoveDriver = &truebool csm.Annotations[configVersionKey] = configVersion csm.Spec.Modules = modules @@ -2102,7 +2102,7 @@ func (suite *CSMControllerTestSuite) makeFakeResiliencyCSM(name, ns string, with csm.ObjectMeta.Finalizers = []string{CSMFinalizerName} } // remove driver when deleting csm - csm.Spec.Driver.ForceRemoveDriver = true + csm.Spec.Driver.ForceRemoveDriver = &truebool csm.Annotations[configVersionKey] = configVersion csm.Spec.Modules = modules @@ -2374,7 +2374,7 @@ func (suite *CSMControllerTestSuite) makeFakeRevProxyCSM(name string, ns string, csm.ObjectMeta.Finalizers = []string{CSMFinalizerName} } // remove driver when deleting csm - csm.Spec.Driver.ForceRemoveDriver = true + csm.Spec.Driver.ForceRemoveDriver = &trueBool csm.Spec.Modules = modules out, _ := json.Marshal(&csm) csm.Annotations[previouslyAppliedCustomResource] = string(out) diff --git a/pkg/drivers/commonconfig.go b/pkg/drivers/commonconfig.go index d710208a5..5a7d37170 100644 --- a/pkg/drivers/commonconfig.go +++ b/pkg/drivers/commonconfig.go @@ -171,7 +171,7 @@ func GetController(ctx context.Context, cr csmv1.ContainerStorageModule, operato crUID := cr.GetUID() bController := true - bOwnerDeletion := !cr.Spec.Driver.ForceRemoveDriver + bOwnerDeletion := cr.Spec.Driver.ForceRemoveDriver != nil && !*cr.Spec.Driver.ForceRemoveDriver kind := cr.Kind v1 := "apps/v1" controllerYAML.Deployment.OwnerReferences = []metacv1.OwnerReferenceApplyConfiguration{ diff --git a/tests/e2e/steps/steps_def.go b/tests/e2e/steps/steps_def.go index 9e2966231..d0d3f51f8 100644 --- a/tests/e2e/steps/steps_def.go +++ b/tests/e2e/steps/steps_def.go @@ -26,6 +26,8 @@ import ( "encoding/json" + "path/filepath" + "github.com/dell/csm-operator/pkg/constants" "github.com/dell/csm-operator/pkg/modules" "github.com/dell/csm-operator/pkg/utils" @@ -39,7 +41,6 @@ import ( "k8s.io/kubernetes/test/e2e/framework/kubectl" fpod "k8s.io/kubernetes/test/e2e/framework/pod" "k8s.io/utils/pointer" - "path/filepath" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" ) @@ -987,10 +988,47 @@ func (step *Step) enableForceRemoveDriver(res Resource, crNumStr string) error { return err } - found.Spec.Driver.ForceRemoveDriver = true + truebool := true + found.Spec.Driver.ForceRemoveDriver = &truebool return step.ctrlClient.Update(context.TODO(), found) } +func (step *Step) validateForceRemoveDriverEnabled(res Resource, crNumStr string) error { + crNum, _ := strconv.Atoi(crNumStr) + cr := res.CustomResource[crNum-1].(csmv1.ContainerStorageModule) + found := new(csmv1.ContainerStorageModule) + if err := step.ctrlClient.Get(context.TODO(), client.ObjectKey{ + Namespace: cr.Namespace, + Name: cr.Name, + }, found, + ); err != nil { + return err + } + + if found.Spec.Driver.ForceRemoveDriver != nil && *found.Spec.Driver.ForceRemoveDriver { + return nil + } + return fmt.Errorf("forceRemoveDriver is not set to true") +} + +func (step *Step) validateForceRemoveDriverDisabled(res Resource, crNumStr string) error { + crNum, _ := strconv.Atoi(crNumStr) + cr := res.CustomResource[crNum-1].(csmv1.ContainerStorageModule) + found := new(csmv1.ContainerStorageModule) + if err := step.ctrlClient.Get(context.TODO(), client.ObjectKey{ + Namespace: cr.Namespace, + Name: cr.Name, + }, found, + ); err != nil { + return err + } + + if found.Spec.Driver.ForceRemoveDriver != nil && !*found.Spec.Driver.ForceRemoveDriver { + return nil + } + return fmt.Errorf("forceRemoveDriver is not set to false") +} + func (step *Step) enableForceRemoveModule(res Resource, crNumStr string) error { crNum, _ := strconv.Atoi(crNumStr) cr := res.CustomResource[crNum-1].(csmv1.ContainerStorageModule) diff --git a/tests/e2e/steps/steps_runner.go b/tests/e2e/steps/steps_runner.go index db4a9c86b..d57fe8d91 100644 --- a/tests/e2e/steps/steps_runner.go +++ b/tests/e2e/steps/steps_runner.go @@ -44,6 +44,8 @@ func StepRunnerInit(runner *Runner, ctrlClient client.Client, clientSet *kuberne runner.addStep(`^Install \[([^"]*)\]$`, step.installThirdPartyModule) runner.addStep(`^Uninstall \[([^"]*)\]$`, step.uninstallThirdPartyModule) runner.addStep(`^Apply custom resource \[(\d+)\]$`, step.applyCustomResource) + runner.addStep(`^Validate \[(\d+)\] CSM has forceRemoveDriver set to true$`, step.validateForceRemoveDriverEnabled) + runner.addStep(`^Validate \[(\d+)\] CSM has forceRemoveDriver set to false$`, step.validateForceRemoveDriverDisabled) runner.addStep(`^Upgrade from custom resource \[(\d+)\] to \[(\d+)\]$`, step.upgradeCustomResource) runner.addStep(`^Validate custom resource \[(\d+)\]$`, step.validateCustomResourceStatus) runner.addStep(`^Validate \[([^"]*)\] driver from CR \[(\d+)\] is installed$`, step.validateDriverInstalled) diff --git a/tests/e2e/testfiles/minimal-testfiles/scenarios.yaml b/tests/e2e/testfiles/minimal-testfiles/scenarios.yaml index 18c275024..d2f4a29c8 100644 --- a/tests/e2e/testfiles/minimal-testfiles/scenarios.yaml +++ b/tests/e2e/testfiles/minimal-testfiles/scenarios.yaml @@ -74,6 +74,58 @@ - "Restore template [testfiles/powerstore-templates/powerstore-secret-template.yaml] for [pstore]" - "Restore template [testfiles/powerstore-templates/powerstore-storageclass-template.yaml] for [pstore]" +- scenario: "Install PowerStore Driver (Minimal, With no forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powerstore_with_no_forceRemoveDriver.yaml" + tags: + - "powerstore" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-pstore] and template [testfiles/powerstore-templates/powerstore-storageclass-template.yaml] for [pstore]" + - "Set up secret with template [testfiles/powerstore-templates/powerstore-secret-template.yaml] name [powerstore-config] in namespace [powerstore] for [pstore]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to true" + - "Validate [powerstore] driver from CR [1] is installed" + - "Run custom test" + # cleanup + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/powerstore-templates/powerstore-secret-template.yaml] for [pstore]" + - "Restore template [testfiles/powerstore-templates/powerstore-storageclass-template.yaml] for [pstore]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-pstore --chainNumber 2 --chainLength 2 + +- scenario: "Install PowerStore Driver (Minimal, With false forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powerstore_with_false_forceRemoveDriver.yaml" + tags: + - "powerstore" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-pstore] and template [testfiles/powerstore-templates/powerstore-storageclass-template.yaml] for [pstore]" + - "Set up secret with template [testfiles/powerstore-templates/powerstore-secret-template.yaml] name [powerstore-config] in namespace [powerstore] for [pstore]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to false" + - "Validate [powerstore] driver from CR [1] is installed" + - "Run custom test" + - "Delete custom resource [1]" + - "Validate [powerstore] driver from CR [1] is installed" + # cleanup + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/powerstore-templates/powerstore-secret-template.yaml] for [pstore]" + - "Restore template [testfiles/powerstore-templates/powerstore-storageclass-template.yaml] for [pstore]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-pstore --chainNumber 2 --chainLength 2 + - scenario: "Install Unity Driver (Minimal, Standalone)" paths: - "testfiles/minimal-testfiles/storage_csm_unity.yaml" @@ -97,6 +149,58 @@ run: - cert-csi test vio --sc op-e2e-unity --chainNumber 2 --chainLength 2 +- scenario: "Install Unity Driver (Minimal, With false forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_unity_with_false_forceRemoveDriver.yaml" + tags: + - "unity" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-unity] and template [testfiles/unity-templates/unity-storageclass-template.yaml] for [unity]" + - "Set up secret with template [testfiles/unity-templates/unity-secret-template.yaml] name [unity-creds] in namespace [unity] for [unity]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to false" + - "Validate [unity] driver from CR [1] is installed" + - "Run custom test" + - "Delete custom resource [1]" + - "Validate [unity] driver from CR [1] is installed" + # cleanup + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/unity-templates/unity-secret-template.yaml] for [unity]" + - "Restore template [testfiles/unity-templates/unity-storageclass-template.yaml] for [unity]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-unity --chainNumber 2 --chainLength 2 + +- scenario: "Install Unity Driver (Minimal, With no forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_unity_with_no_forceRemoveDriver.yaml" + tags: + - "unity" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-unity] and template [testfiles/unity-templates/unity-storageclass-template.yaml] for [unity]" + - "Set up secret with template [testfiles/unity-templates/unity-secret-template.yaml] name [unity-creds] in namespace [unity] for [unity]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to true" + - "Validate [unity] driver from CR [1] is installed" + - "Run custom test" + # cleanup + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/unity-templates/unity-secret-template.yaml] for [unity]" + - "Restore template [testfiles/unity-templates/unity-storageclass-template.yaml] for [unity]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-unity --chainNumber 2 --chainLength 2 + - scenario: "Install PowerFlex Driver (Minimal, Standalone)" paths: - "testfiles/minimal-testfiles/storage_csm_powerflex.yaml" @@ -121,6 +225,60 @@ run: - cert-csi test vio --sc op-e2e-vxflexos --chainNumber 2 --chainLength 2 +- scenario: "Install PowerFlex Driver (Minimal, With no forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powerflex_with_no_forceRemoveDriver.yaml" + tags: + - "powerflex" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-vxflexos] and template [testfiles/powerflex-templates/powerflex-storageclass-template.yaml] for [pflex]" + - "Set up secret with template [testfiles/powerflex-templates/powerflex-secret-template.yaml] name [test-vxflexos-config] in namespace [test-vxflexos] for [pflex]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to true" + - "Validate [powerflex] driver from CR [1] is installed" + - "Run custom test" + # cleanup + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/powerflex-templates/powerflex-secret-template.yaml] for [pflex]" + - "Restore template [testfiles/powerflex-templates/powerflex-storageclass-template.yaml] for [pflex]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-vxflexos --chainNumber 2 --chainLength 2 + +- scenario: "Install PowerFlex Driver (Minimal, With false forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powerflex_with_false_forceRemoveDriver.yaml" + tags: + - "powerflex" + + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-vxflexos] and template [testfiles/powerflex-templates/powerflex-storageclass-template.yaml] for [pflex]" + - "Set up secret with template [testfiles/powerflex-templates/powerflex-secret-template.yaml] name [test-vxflexos-config] in namespace [test-vxflexos] for [pflex]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to false" + - "Validate [powerflex] driver from CR [1] is installed" + - "Run custom test" + - "Delete custom resource [1]" + - "Validate [powerflex] driver from CR [1] is installed" + # cleanup + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Validate [powerflex] driver from CR [1] is not installed" + - "Restore template [testfiles/powerflex-templates/powerflex-secret-template.yaml] for [pflex]" + - "Restore template [testfiles/powerflex-templates/powerflex-storageclass-template.yaml] for [pflex]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-vxflexos --chainNumber 2 --chainLength 2 + - scenario: "Install PowerFlex Driver (Minimal, With Resiliency)" paths: - "testfiles/minimal-testfiles/storage_csm_powerflex_resiliency.yaml" @@ -304,6 +462,61 @@ run: - cert-csi test vio --sc op-e2e-isilon --chainNumber 2 --chainLength 2 +- scenario: "Install PowerScale Driver (Minimal, With no forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powerscale_with_no_forceRemoveDriver.yaml" + tags: + - "powerscale" + - "sanity" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-isilon] and template [testfiles/powerscale-templates/powerscale-storageclass-template.yaml] for [pscale]" + - "Set up secret with template [testfiles/powerscale-templates/powerscale-secret-template.yaml] name [isilon-creds] in namespace [isilon] for [pscale]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to true" + - "Validate [powerscale] driver from CR [1] is installed" + - "Run custom test" + # cleanup + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/powerscale-templates/powerscale-secret-template.yaml] for [pscale]" + - "Restore template [testfiles/powerscale-templates/powerscale-storageclass-template.yaml] for [pscale]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-isilon --chainNumber 2 --chainLength 2 + +- scenario: "Install PowerScale Driver (Minimal, With false forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powerscale_with_false_forceRemoveDriver.yaml" + tags: + - "powerscale" + - "sanity" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-isilon] and template [testfiles/powerscale-templates/powerscale-storageclass-template.yaml] for [pscale]" + - "Set up secret with template [testfiles/powerscale-templates/powerscale-secret-template.yaml] name [isilon-creds] in namespace [isilon] for [pscale]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to false" + - "Validate [powerscale] driver from CR [1] is installed" + - "Run custom test" + - "Delete custom resource [1]" + - "Validate [powerscale] driver from CR [1] is installed" + # cleanup + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Validate [powerscale] driver from CR [1] is not installed" + - "Restore template [testfiles/powerscale-templates/powerscale-secret-template.yaml] for [pscale]" + - "Restore template [testfiles/powerscale-templates/powerscale-storageclass-template.yaml] for [pscale]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-isilon --chainNumber 2 --chainLength 2 + - scenario: "Install PowerScale Driver (Minimal, Standalone), Enable/Disable Resiliency" paths: - "testfiles/minimal-testfiles/storage_csm_powerscale.yaml" @@ -629,6 +842,61 @@ run: - cert-csi test vio --sc op-e2e-pmax --chainLength 1 --chainNumber 1 +- scenario: "Install PowerMax Driver (Minimal, With no forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powermax_with_no_forceRemoveDriver.yaml" + tags: + - "powermax" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-pmax] and template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Set up creds with template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - "Set up configMap with template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] name [powermax-reverseproxy-config] in namespace [powermax] for [pmaxAuthSidecar]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to true" + - "Validate [powermax] driver from CR [1] is installed" + - "Run custom test" + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] for [pmaxAuthSidecar]" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-pmax --chainLength 1 --chainNumber 1 + +- scenario: "Install PowerMax Driver (Minimal, With false forceRemoveDriver)" + paths: + - "testfiles/minimal-testfiles/storage_csm_powermax_with_false_forceRemoveDriver.yaml" + tags: + - "powermax" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Create storageclass with name [op-e2e-pmax] and template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Set up creds with template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - "Set up configMap with template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] name [powermax-reverseproxy-config] in namespace [powermax] for [pmaxAuthSidecar]" + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Validate [1] CSM has forceRemoveDriver set to false" + - "Validate [powermax] driver from CR [1] is installed" + - "Run custom test" + - "Delete custom resource [1]" + - "Validate [powermax] driver from CR [1] is installed" + # cleanup + - "Apply custom resource [1]" + - "Validate custom resource [1]" + - "Enable forceRemoveDriver on CR [1]" + - "Delete custom resource [1]" + - "Restore template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] for [pmaxAuthSidecar]" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-pmax --chainLength 1 --chainNumber 1 + - scenario: "Install PowerMax Driver (Minimal, With Observability)" paths: - "testfiles/minimal-testfiles/storage_csm_powermax_observability.yaml" diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerflex_with_false_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerflex_with_false_forceRemoveDriver.yaml new file mode 100644 index 000000000..614822b6e --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerflex_with_false_forceRemoveDriver.yaml @@ -0,0 +1,10 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + csiDriverType: "powerflex" + configVersion: v2.12.0 + forceRemoveDriver: false diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerflex_with_no_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerflex_with_no_forceRemoveDriver.yaml new file mode 100644 index 000000000..30b3584b4 --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerflex_with_no_forceRemoveDriver.yaml @@ -0,0 +1,9 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: test-vxflexos + namespace: test-vxflexos +spec: + driver: + csiDriverType: "powerflex" + configVersion: v2.12.0 diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powermax_with_false_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powermax_with_false_forceRemoveDriver.yaml new file mode 100644 index 000000000..0e865127b --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powermax_with_false_forceRemoveDriver.yaml @@ -0,0 +1,10 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: powermax + namespace: powermax +spec: + driver: + csiDriverType: "powermax" + configVersion: v2.12.0 + forceRemoveDriver: false diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powermax_with_no_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powermax_with_no_forceRemoveDriver.yaml new file mode 100644 index 000000000..3faca3e15 --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powermax_with_no_forceRemoveDriver.yaml @@ -0,0 +1,9 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: powermax + namespace: powermax +spec: + driver: + csiDriverType: "powermax" + configVersion: v2.12.0 diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerscale_with_false_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerscale_with_false_forceRemoveDriver.yaml new file mode 100644 index 000000000..bf77c6951 --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerscale_with_false_forceRemoveDriver.yaml @@ -0,0 +1,10 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: isilon + namespace: isilon +spec: + driver: + csiDriverType: "isilon" + configVersion: v2.12.0 + forceRemoveDriver: false diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerscale_with_no_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerscale_with_no_forceRemoveDriver.yaml new file mode 100644 index 000000000..7e4e83a1d --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerscale_with_no_forceRemoveDriver.yaml @@ -0,0 +1,9 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: isilon + namespace: isilon +spec: + driver: + csiDriverType: "isilon" + configVersion: v2.12.0 diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerstore_with_false_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerstore_with_false_forceRemoveDriver.yaml new file mode 100644 index 000000000..2f9d6a24e --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerstore_with_false_forceRemoveDriver.yaml @@ -0,0 +1,13 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: powerstore + namespace: powerstore +spec: + driver: + csiDriverType: "powerstore" + configVersion: v2.12.0 + forceRemoveDriver: false + modules: + - name: resiliency + enabled: false diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerstore_with_no_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerstore_with_no_forceRemoveDriver.yaml new file mode 100644 index 000000000..35d292e15 --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_powerstore_with_no_forceRemoveDriver.yaml @@ -0,0 +1,12 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: powerstore + namespace: powerstore +spec: + driver: + csiDriverType: "powerstore" + configVersion: v2.12.0 + modules: + - name: resiliency + enabled: false diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_unity_with_false_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_unity_with_false_forceRemoveDriver.yaml new file mode 100644 index 000000000..3ac87c7ab --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_unity_with_false_forceRemoveDriver.yaml @@ -0,0 +1,10 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: unity + namespace: unity +spec: + driver: + csiDriverType: "unity" + configVersion: v2.12.0 + forceRemoveDriver: false diff --git a/tests/e2e/testfiles/minimal-testfiles/storage_csm_unity_with_no_forceRemoveDriver.yaml b/tests/e2e/testfiles/minimal-testfiles/storage_csm_unity_with_no_forceRemoveDriver.yaml new file mode 100644 index 000000000..3c67b03de --- /dev/null +++ b/tests/e2e/testfiles/minimal-testfiles/storage_csm_unity_with_no_forceRemoveDriver.yaml @@ -0,0 +1,9 @@ +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: unity + namespace: unity +spec: + driver: + csiDriverType: "unity" + configVersion: v2.12.0