From ca21ca9c20f9be4cb374503c7ab72e19168a3eea Mon Sep 17 00:00:00 2001 From: Harshita Pandey <88329939+harshitap26@users.noreply.github.com> Date: Fri, 27 Sep 2024 19:47:40 +0530 Subject: [PATCH] Adding E2E tests for Powermax Authorization 2.0 (#701) * Adding E2E tests for Powermax with Authorization v2 * Changes for configVersion v2.12.0 * E2E tests for Powermax with Auth and Observaility * Cleaning up exisitng tests for Powermax * Changes to existing tests --- tests/e2e/array-info.sh | 6 + tests/e2e/steps/steps_def.go | 25 +- .../powermax-array-config.yaml | 23 ++ tests/e2e/testfiles/scenarios.yaml | 128 +++++- tests/e2e/testfiles/storage_csm_powermax.yaml | 18 +- .../storage_csm_powermax_authorization.yaml | 36 +- .../storage_csm_powermax_observability.yaml | 20 +- ..._powermax_observability_authorization.yaml | 390 ++++++++++++++++++ .../storage_csm_powermax_resiliency.yaml | 16 +- .../storage_csm_powermax_sidecar.yaml | 18 +- 10 files changed, 611 insertions(+), 69 deletions(-) create mode 100644 tests/e2e/testfiles/powermax-templates/powermax-array-config.yaml create mode 100644 tests/e2e/testfiles/storage_csm_powermax_observability_authorization.yaml diff --git a/tests/e2e/array-info.sh b/tests/e2e/array-info.sh index 656ccc81e..9c6e9392e 100755 --- a/tests/e2e/array-info.sh +++ b/tests/e2e/array-info.sh @@ -64,11 +64,17 @@ export PMAX_PASS_ENCODED="password" export PMAX_SERVICE_LEVEL="Bronze" # The following are Authorization Proxy Server specific for powermax: export PMAX_POOL_V1="SRP_1" +export PMAX_POOL_V2="SRP_1" export PMAX_STORAGE="powermax" +export PMAX_VAULT_STORAGE_PATH="storage\/powermax" # escape / with \ export PMAX_QUOTA="0GB" export PMAX_ROLE="csmrole-powermax" export PMAX_TENANT="csmtenant-powermax" export PMAX_TENANT_PREFIX="tn1" +export PMAX_PORTGROUPS="" +export PMAX_PROTOCOL="" +export PMAX_ARRAYS="000000000000,000000000001" + # The following is PowerStore specific: export PSTORE_USER="username" diff --git a/tests/e2e/steps/steps_def.go b/tests/e2e/steps/steps_def.go index db9508740..74fc8b73d 100644 --- a/tests/e2e/steps/steps_def.go +++ b/tests/e2e/steps/steps_def.go @@ -63,11 +63,11 @@ var ( pmaxReverseProxyMap = map[string]string{"REPLACE_SYSTEMID": "PMAX_SYSTEMID", "REPLACE_AUTH_ENDPOINT": "PMAX_AUTH_ENDPOINT"} authSidecarRootCertMap = map[string]string{} amConfigMap = map[string]string{"REPLACE_ALT_BUCKET_NAME": "ALT_BUCKET_NAME", "REPLACE_BUCKET_NAME": "BUCKET_NAME", "REPLACE_S3URL": "BACKEND_STORAGE_URL", "REPLACE_CONTROLLER_IMAGE": "AM_CONTROLLER_IMAGE", "REPLACE_PLUGIN_IMAGE": "AM_PLUGIN_IMAGE"} + pmaxArrayConfigMap = map[string]string{"REPLACE_PORTGROUPS": "PMAX_PORTGROUPS", "REPLACE_PROTOCOL": "PMAX_PROTOCOL", "REPLACE_ARRAYS": "PMAX_ARRAYS", "REPLACE_AUTH_ENDPOINT": "PMAX_AUTH_ENDPOINT"} // Auth V2 - pflexCrMap = map[string]string{"REPLACE_STORAGE_NAME": "PFLEX_STORAGE", "REPLACE_STORAGE_TYPE": "PFLEX_STORAGE", "REPLACE_ENDPOINT": "PFLEX_ENDPOINT", "REPLACE_SYSTEM_ID": "PFLEX_SYSTEMID", "REPLACE_VAULT_STORAGE_PATH": "PFLEX_VAULT_STORAGE_PATH", "REPLACE_ROLE_NAME": "PFLEX_ROLE", "REPLACE_QUOTA": "PFLEX_QUOTA", "REPLACE_STORAGE_POOL_PATH": "PFLEX_POOL", "REPLACE_TENANT_NAME": "PFLEX_TENANT", "REPLACE_TENANT_ROLES": "PFLEX_ROLE", "REPLACE_TENANT_VOLUME_PREFIX": "PFLEX_TENANT_PREFIX"} - - // Auth V2 - pscaleCrMap = map[string]string{"REPLACE_STORAGE_NAME": "PSCALE_STORAGE", "REPLACE_STORAGE_TYPE": "PSCALE_STORAGE", "REPLACE_ENDPOINT": "PSCALE_ENDPOINT", "REPLACE_SYSTEM_ID": "PSCALE_CLUSTER", "REPLACE_VAULT_STORAGE_PATH": "PSCALE_VAULT_STORAGE_PATH", "REPLACE_ROLE_NAME": "PSCALE_ROLE", "REPLACE_QUOTA": "PSCALE_QUOTA", "REPLACE_STORAGE_POOL_PATH": "PSCALE_POOL_V2", "REPLACE_TENANT_NAME": "PSCALE_TENANT", "REPLACE_TENANT_ROLES": "PSCALE_ROLE", "REPLACE_TENANT_VOLUME_PREFIX": "PSCALE_TENANT_PREFIX", "REPLACE_PORT": "PSCALE_PORT"} + pflexCrMap = map[string]string{"REPLACE_STORAGE_NAME": "PFLEX_STORAGE", "REPLACE_STORAGE_TYPE": "PFLEX_STORAGE", "REPLACE_ENDPOINT": "PFLEX_ENDPOINT", "REPLACE_SYSTEM_ID": "PFLEX_SYSTEMID", "REPLACE_VAULT_STORAGE_PATH": "PFLEX_VAULT_STORAGE_PATH", "REPLACE_ROLE_NAME": "PFLEX_ROLE", "REPLACE_QUOTA": "PFLEX_QUOTA", "REPLACE_STORAGE_POOL_PATH": "PFLEX_POOL", "REPLACE_TENANT_NAME": "PFLEX_TENANT", "REPLACE_TENANT_ROLES": "PFLEX_ROLE", "REPLACE_TENANT_VOLUME_PREFIX": "PFLEX_TENANT_PREFIX"} + pscaleCrMap = map[string]string{"REPLACE_STORAGE_NAME": "PSCALE_STORAGE", "REPLACE_STORAGE_TYPE": "PSCALE_STORAGE", "REPLACE_ENDPOINT": "PSCALE_ENDPOINT", "REPLACE_SYSTEM_ID": "PSCALE_CLUSTER", "REPLACE_VAULT_STORAGE_PATH": "PSCALE_VAULT_STORAGE_PATH", "REPLACE_ROLE_NAME": "PSCALE_ROLE", "REPLACE_QUOTA": "PSCALE_QUOTA", "REPLACE_STORAGE_POOL_PATH": "PSCALE_POOL_V2", "REPLACE_TENANT_NAME": "PSCALE_TENANT", "REPLACE_TENANT_ROLES": "PSCALE_ROLE", "REPLACE_TENANT_VOLUME_PREFIX": "PSCALE_TENANT_PREFIX"} + pmaxCrMap = map[string]string{"REPLACE_STORAGE_NAME": "PMAX_STORAGE", "REPLACE_STORAGE_TYPE": "PMAX_STORAGE", "REPLACE_ENDPOINT": "PMAX_ENDPOINT", "REPLACE_SYSTEM_ID": "PMAX_SYSTEMID", "REPLACE_VAULT_STORAGE_PATH": "PMAX_VAULT_STORAGE_PATH", "REPLACE_ROLE_NAME": "PMAX_ROLE", "REPLACE_QUOTA": "PMAX_QUOTA", "REPLACE_STORAGE_POOL_PATH": "PMAX_POOL_V2", "REPLACE_TENANT_NAME": "PMAX_TENANT", "REPLACE_TENANT_ROLES": "PMAX_ROLE", "REPLACE_TENANT_VOLUME_PREFIX": "PMAX_TENANT_PREFIX"} pstoreSecretMap = map[string]string{"REPLACE_USER": "PSTORE_USER", "REPLACE_PASS": "PSTORE_PASS", "REPLACE_GLOBALID": "PSTORE_GLOBALID", "REPLACE_ENDPOINT": "PSTORE_ENDPOINT"} unitySecretMap = map[string]string{"REPLACE_USER": "UNITY_USER", "REPLACE_PASS": "UNITY_PASS", "REPLACE_ARRAYID": "UNITY_ARRAYID", "REPLACE_ENDPOINT": "UNITY_ENDPOINT", "REPLACE_POOL": "UNITY_POOL", "REPLACE_NAS": "UNITY_NAS"} @@ -832,6 +832,8 @@ func determineMap(crType string) (map[string]string, error) { mapValues = pmaxCredMap } else if crType == "pmaxReverseProxy" { mapValues = pmaxReverseProxyMap + } else if crType == "pmaxArrayConfig" { + mapValues = pmaxArrayConfigMap } else if crType == "authSidecarCert" { mapValues = authSidecarRootCertMap } else if crType == "application-mobility" { @@ -840,6 +842,8 @@ func determineMap(crType string) (map[string]string, error) { mapValues = pflexCrMap } else if crType == "pscaleAuthCRs" { mapValues = pscaleCrMap + } else if crType == "pmaxAuthCRs" { + mapValues = pmaxCrMap } else if crType == "pstore" { mapValues = pstoreSecretMap } else if crType == "unity" { @@ -1483,10 +1487,13 @@ func (step *Step) AuthorizationV2Resources(storageType, driver, driverNamespace, if driver == "powerflex" { crMap = "pflexAuthCRs" - updatedTemplateFile = "testfiles/authorization-templates/csm-authorization-crs-powerflex.yaml" + updatedTemplateFile = "testfiles/authorization-templates/storage_csm_authorization_crs_powerflex.yaml" } else if driver == "powerscale" { crMap = "pscaleAuthCRs" - updatedTemplateFile = "testfiles/authorization-templates/csm-authorization-crs-powerscale.yaml" + updatedTemplateFile = "testfiles/authorization-templates/storage_csm_authorization_crs_powerscale.yaml" + } else if driver == "powermax" { + crMap = "pmaxAuthCRs" + updatedTemplateFile = "testfiles/authorization-templates/storage_csm_authorization_crs_powermax.yaml" } copyFile := exec.Command("cp", templateFile, updatedTemplateFile) @@ -1858,9 +1865,11 @@ func (step *Step) validateCustomResourceDefinition(res Resource, crdName string) func (step *Step) deleteAuthorizationCRs(_ Resource, driver string) error { updatedTemplateFile := "" if driver == "powerflex" { - updatedTemplateFile = "testfiles/authorization-templates/csm-authorization-crs-powerflex.yaml" + updatedTemplateFile = "testfiles/authorization-templates/storage_csm_authorization_crs_powerflex.yaml" } else if driver == "powerscale" { - updatedTemplateFile = "testfiles/authorization-templates/csm-authorization-crs-powerscale.yaml" + updatedTemplateFile = "testfiles/authorization-templates/storage_csm_authorization_crs_powerscale.yaml" + } else if driver == "powermax" { + updatedTemplateFile = "testfiles/authorization-templates/storage_csm_authorization_crs_powermax.yaml" } cmd := exec.Command("kubectl", "delete", "-f", updatedTemplateFile) diff --git a/tests/e2e/testfiles/powermax-templates/powermax-array-config.yaml b/tests/e2e/testfiles/powermax-templates/powermax-array-config.yaml new file mode 100644 index 000000000..848ab8add --- /dev/null +++ b/tests/e2e/testfiles/powermax-templates/powermax-array-config.yaml @@ -0,0 +1,23 @@ +# Copyright © 2024 Dell Inc. or its subsidiaries. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# To create this configmap use: kubectl create -f powermax-array-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: powermax-array-config + namespace: powermax +data: + powermax-array-config.yaml: | + X_CSI_POWERMAX_PORTGROUPS: "REPLACE_PORTGROUPS" + X_CSI_TRANSPORT_PROTOCOL: "REPLACE_PROTOCOL" + X_CSI_POWERMAX_ENDPOINT: "https://REPLACE_AUTH_ENDPOINT:9400" + X_CSI_MANAGED_ARRAYS: "REPLACE_ARRAYS" diff --git a/tests/e2e/testfiles/scenarios.yaml b/tests/e2e/testfiles/scenarios.yaml index 08e4043bc..477e28a8b 100644 --- a/tests/e2e/testfiles/scenarios.yaml +++ b/tests/e2e/testfiles/scenarios.yaml @@ -1665,6 +1665,7 @@ name: verify app-mobility run: - /bin/bash verify-app-mobility.sh + - scenario: "Install PowerMax Driver(Standalone)" paths: - "testfiles/storage_csm_powermax.yaml" @@ -1672,18 +1673,21 @@ - "powermax" steps: - "Given an environment with k8s or openshift, and CSM operator installed" - - "Create storageclass with name [powermax] and template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "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]" - "Apply custom resource [1]" - "Validate custom resource [1]" - "Validate [powermax] driver from CR [1] is installed" - "Run custom test" - # Last two steps perform Clean Up - "Enable forceRemoveDriver on CR [1]" - "Delete custom resource [1]" + - "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 powermax --chainNumber 2 --chainLength 2 + - cert-csi test vio --sc op-e2e-pmax --chainNumber 2 --chainLength 2 + - scenario: "Install PowerMax Driver(Sidecar)" paths: - "testfiles/storage_csm_powermax_sidecar.yaml" @@ -1691,8 +1695,8 @@ - "powermax" steps: - "Given an environment with k8s or openshift, and CSM operator installed" - - "Create storageclass with name [powermax] and template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" - - "Set up secret with template [testfiles/powermax-templates/powermax-secret-template.yaml] name [powermax-creds] in namespace [powermax] for [pmax]" + - "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]" - "Apply custom resource [1]" - "Validate custom resource [1]" - "Validate [powermax] driver from CR [1] is installed" @@ -1700,12 +1704,13 @@ # Last two steps perform Clean Up - "Enable forceRemoveDriver on CR [1]" - "Delete custom resource [1]" - - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmax]" - - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmax]" + - "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 powermax --chainNumber 2 --chainLength 2 + - cert-csi test vio --sc op-e2e-pmax --chainNumber 2 --chainLength 2 + - scenario: "Install PowerMax Driver(With Observability)" paths: - "testfiles/storage_csm_powermax_observability.yaml" @@ -1715,7 +1720,7 @@ 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 secret with template [testfiles/powermax-templates/powermax-secret-template.yaml] name [powermax-creds] in namespace [powermax] for [pmax]" + - "Set up creds with template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" - "Apply custom resource [1]" - "Validate custom resource [1]" - "Validate [powermax] driver from CR [1] is installed" @@ -1723,9 +1728,10 @@ # cleanup - "Enable forceRemoveDriver on CR [1]" - "Delete custom resource [1]" - - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmax]" - - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmax]" -- scenario: "Install PowerMax Driver (With Auth module)" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + +- scenario: "Install PowerMax Driver (With Authorization V1)" paths: - "testfiles/authorization-templates/storage_csm_authorization_proxy_server_n_minus_1.yaml" - "testfiles/storage_csm_powermax_reverseproxy_authorization.yaml" @@ -1759,6 +1765,95 @@ name: Cert CSI run: - cert-csi test vio --sc op-e2e-pmax --chainNumber 2 --chainLength 2 + +- scenario: "Install Powermax Driver (With Authorization v2)" + paths: + - "testfiles/authorization-templates/storage_csm_authorization_proxy_server.yaml" + - "testfiles/authorization-templates/storage_csm_authorization_crds.yaml" + - "testfiles/storage_csm_powermax_authorization.yaml" + tags: + - "authorizationproxyserver" + - "authorization" + - "powermax" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Install Authorization CRDs [2]" + - "Create [authorization-proxy-server] prerequisites from CR [1]" + - "Apply custom resource [1]" + - "Validate [authorization-proxy-server] module from CR [1] is installed" + - "Configure authorization-proxy-server for [powermax] for CR [1]" + - "Create storageclass with name [op-e2e-pmax] and template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Set up secret with template [testfiles/powermax-templates/csm-authorization-config.json] name [karavi-authorization-config] in namespace [powermax] for [pmaxAuthSidecar]" + - "Set up creds with template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - "Set up creds with template [testfiles/powermax-templates/powermax-array-config.yaml] for [pmaxArrayConfig]" + - "Set up configMap with template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] name [powermax-reverseproxy-config] in namespace [powermax] for [pmaxReverseProxy]" + - "Apply custom resource [3]" + - "Validate custom resource [3]" + - "Validate [powermax] driver from CR [3] is installed" + - "Validate [authorization] module from CR [3] is installed" + - "Run custom test" + # cleanup + - "Enable forceRemoveDriver on CR [3]" + - "Delete custom resource [3]" + - "Delete Authorization CRs for [powermax]" + - "Delete custom resource [1]" + - "Delete Authorization CRDs [2]" + - "Restore template [testfiles/powermax-templates/csm-authorization-config.json] for [pmaxAuthSidecar]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - "Restore template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] for [pmaxReverseProxy]" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-array-config.yaml] for [pmaxArrayConfig]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-pmax --chainNumber 2 --chainLength 2 + +- scenario: "Install Powermax Driver (With Authorization v2 and Observability)" + paths: + - "testfiles/authorization-templates/storage_csm_authorization_proxy_server.yaml" + - "testfiles/authorization-templates/storage_csm_authorization_crds.yaml" + - "testfiles/storage_csm_powermax_observability_authorization.yaml" + tags: + - "authorizationproxyserver" + - "authorization" + - "powermax" + - "observability" + steps: + - "Given an environment with k8s or openshift, and CSM operator installed" + - "Install Authorization CRDs [2]" + - "Create [authorization-proxy-server] prerequisites from CR [1]" + - "Apply custom resource [1]" + - "Validate [authorization-proxy-server] module from CR [1] is installed" + - "Configure authorization-proxy-server for [powermax] for CR [1]" + - "Create storageclass with name [op-e2e-pmax] and template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Set up secret with template [testfiles/powermax-templates/csm-authorization-config.json] name [karavi-authorization-config] in namespace [powermax] for [pmaxAuthSidecar]" + - "Set up creds with template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - "Set up creds with template [testfiles/powermax-templates/powermax-array-config.yaml] for [pmaxArrayConfig]" + - "Set up configMap with template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] name [powermax-reverseproxy-config] in namespace [powermax] for [pmaxReverseProxy]" + - "Restore template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] for [pmaxReverseProxy]" + - "Set up configMap with template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] name [powermax-reverseproxy-config] in namespace [karavi] for [pmaxReverseProxy]" + - "Apply custom resource [3]" + - "Validate custom resource [3]" + - "Validate [powermax] driver from CR [3] is installed" + - "Validate [authorization] module from CR [3] is installed" + - "Validate [observability] module from CR [3] is installed" + - "Run custom test" + # cleanup + - "Enable forceRemoveDriver on CR [3]" + - "Delete custom resource [3]" + - "Delete Authorization CRs for [powermax]" + - "Delete custom resource [1]" + - "Delete Authorization CRDs [2]" + - "Restore template [testfiles/powermax-templates/csm-authorization-config.json] for [pmaxAuthSidecar]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - "Restore template [testfiles/powermax-templates/powermax_reverse_proxy_config.yaml] for [pmaxReverseProxy]" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-array-config.yaml] for [pmaxArrayConfig]" + customTest: + name: Cert CSI + run: + - cert-csi test vio --sc op-e2e-pmax --chainNumber 2 --chainLength 2 + - scenario: "Install Powermax Driver(Standalone), Enable Resiliency" paths: - "testfiles/storage_csm_powermax.yaml" @@ -1767,6 +1862,8 @@ - "resiliency" 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]" - "Apply custom resource [1]" - "Validate custom resource [1]" - "Validate [powermax] driver from CR [1] is installed" @@ -1777,6 +1874,9 @@ # cleanup - "Enable forceRemoveDriver on CR [1]" - "Delete custom resource [1]" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" + - scenario: "Install Powermax Driver(With Resiliency), Disable Resiliency module" paths: - "testfiles/storage_csm_powermax_resiliency.yaml" @@ -1785,6 +1885,8 @@ - "resiliency" 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]" - "Apply custom resource [1]" - "Validate custom resource [1]" - "Validate [powermax] driver from CR [1] is installed" @@ -1795,3 +1897,5 @@ # cleanup - "Enable forceRemoveDriver on CR [1]" - "Delete custom resource [1]" + - "Restore template [testfiles/powermax-templates/powermax-storageclass-template.yaml] for [pmax]" + - "Restore template [testfiles/powermax-templates/powermax-secret-template.yaml] for [pmaxCreds]" diff --git a/tests/e2e/testfiles/storage_csm_powermax.yaml b/tests/e2e/testfiles/storage_csm_powermax.yaml index 4851a8f4a..874a802e6 100644 --- a/tests/e2e/testfiles/storage_csm_powermax.yaml +++ b/tests/e2e/testfiles/storage_csm_powermax.yaml @@ -210,22 +210,22 @@ spec: sideCars: # 'pmax' represents a string prepended to each volume created by the CSI driver - name: provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v4.0.0 - args: ["--volume-name-prefix=pmax"] + image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.1 + args: [ "--volume-name-prefix=pmax" ] - name: attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.5.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1 - name: registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1 - name: resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.10.0 + image: registry.k8s.io/sig-storage/csi-resizer:v1.11.1 - name: snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v7.0.1 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 - name: csi-metadata-retriever - image: dellemc/csi-metadata-retriever:v1.7.3 + image: dellemc/csi-metadata-retriever:v1.8.0 # health monitor is disabled by default, refer to driver documentation before enabling it - name: external-health-monitor enabled: false - args: ["--monitor-interval=60s"] + args: [ "--monitor-interval=60s" ] image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.12.1 # Uncomment the following to configure how often external-provisioner polls the driver to detect changed capacity # Configure only when the storageCapacity is set as "true" @@ -260,7 +260,7 @@ spec: # set it true, if csm-auth is enabled / you want it as a sidecar container # set it false, if you want it as a deployment - name: "DeployAsSidecar" - value: "false" + value: "true" - name: resiliency # enabled: Enable/Disable Resiliency feature # Allowed values: diff --git a/tests/e2e/testfiles/storage_csm_powermax_authorization.yaml b/tests/e2e/testfiles/storage_csm_powermax_authorization.yaml index f12540908..fd6ec7092 100644 --- a/tests/e2e/testfiles/storage_csm_powermax_authorization.yaml +++ b/tests/e2e/testfiles/storage_csm_powermax_authorization.yaml @@ -1,5 +1,5 @@ # -# Copyright � 2024 Dell Inc. or its subsidiaries. All Rights Reserved. +# Copyright © 2023 Dell Inc. or its subsidiaries. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -22,6 +22,7 @@ spec: driver: csiDriverType: "powermax" csiDriverSpec: + # in OCP <= 4.16 and K8s <= 1.29, fsGroupPolicy is an immutable field # fsGroupPolicy: Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. # Allowed values: ReadWriteOnceWithFSType, File , None # Default value: ReadWriteOnceWithFSType @@ -31,8 +32,7 @@ spec: # true: enable storage capacity tracking # false: disable storage capacity tracking storageCapacity: true - # Config version for CSI PowerMax v2.10.1 driver - configVersion: v2.11.0 + configVersion: v2.12.0 # replica: Define the number of PowerMax controller nodes # to deploy to the Kubernetes release # Allowed values: n, where n > 0 @@ -44,7 +44,6 @@ spec: forceUpdate: false forceRemoveDriver: true common: - # Image for CSI PowerMax driver v2.10.1 image: dellemc/csi-powermax:nightly # imagePullPolicy: Policy to determine if the image should be pulled prior to starting the container. # Allowed values: @@ -87,11 +86,13 @@ spec: - name: X_CSI_POWERMAX_PORTGROUPS value: "" # "X_CSI_TRANSPORT_PROTOCOL" can be "FC" or "FIBRE" for fibrechannel, - # "ISCSI" for iSCSI, or "" for autoselection. + # "ISCSI" for iSCSI, + # "NVMETCP" for NVMeTCP or "" for autoselection. # Allowed values: # "FC" - Fiber Channel protocol # "FIBER" - Fiber Channel protocol # "ISCSI" - iSCSI protocol + # "NVMETCP" = NVMeTCP protocol # "" - Automatic selection of transport protocol # Default value: "" - name: X_CSI_TRANSPORT_PROTOCOL @@ -122,6 +123,16 @@ spec: # Default value: "" - name: "X_CSI_VCENTER_HOST" value: "" + # CSI driver log level + # Allowed values: "error", "warn"/"warning", "info", "debug" + # Default value: "debug" + - name: "CSI_LOG_LEVEL" + value: "debug" + # CSI driver log format + # Allowed values: "TEXT" or "JSON" + # Default value: "TEXT" + - name: "CSI_LOG_FORMAT" + value: "TEXT" controller: envs: # X_CSI_HEALTH_MONITOR_ENABLED: Enable/Disable health monitor of CSI volumes from node plugin- volume usage, volume condition @@ -210,18 +221,18 @@ spec: sideCars: # 'pmax' represents a string prepended to each volume created by the CSI driver - name: provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v4.0.0 + image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.1 args: ["--volume-name-prefix=pmax"] - name: attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.5.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1 - name: registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1 - name: resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.10.0 + image: registry.k8s.io/sig-storage/csi-resizer:v1.11.1 - name: snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v7.0.1 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 - name: csi-metadata-retriever - image: dellemc/csi-metadata-retriever:v1.7.3 + image: dellemc/csi-metadata-retriever:v1.8.0 # health monitor is disabled by default, refer to driver documentation before enabling it - name: external-health-monitor enabled: false @@ -243,7 +254,6 @@ spec: - name: csipowermax-reverseproxy # image: Define the container images used for the reverse proxy # Default value: None - # Example: "csipowermax-reverseproxy:v2.9.1" image: dellemc/csipowermax-reverseproxy:nightly envs: # "tlsSecret" defines the TLS secret that is created with certificate @@ -260,7 +270,7 @@ spec: # set it true, if csm-auth is enabled / you want it as a sidecar container # set it false, if you want it as a deployment - name: "DeployAsSidecar" - value: "false" + value: "true" # Authorization: enable csm-authorization for RBAC - name: authorization # enable: Enable/Disable csm-authorization diff --git a/tests/e2e/testfiles/storage_csm_powermax_observability.yaml b/tests/e2e/testfiles/storage_csm_powermax_observability.yaml index 070cd6931..7e6e0c180 100644 --- a/tests/e2e/testfiles/storage_csm_powermax_observability.yaml +++ b/tests/e2e/testfiles/storage_csm_powermax_observability.yaml @@ -45,7 +45,7 @@ spec: forceRemoveDriver: true common: # Image for CSI PowerMax driver v2.10.1 - image: dellemc/csi-powermax:v2.12.0 + image: dellemc/csi-powermax:nightly # imagePullPolicy: Policy to determine if the image should be pulled prior to starting the container. # Allowed values: # Always: Always pull the image. @@ -210,22 +210,22 @@ spec: sideCars: # 'pmax' represents a string prepended to each volume created by the CSI driver - name: provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v4.0.0 - args: ["--volume-name-prefix=pmax"] + image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.1 + args: [ "--volume-name-prefix=pmax" ] - name: attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.5.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1 - name: registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1 - name: resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.10.0 + image: registry.k8s.io/sig-storage/csi-resizer:v1.11.1 - name: snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v7.0.1 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 - name: csi-metadata-retriever - image: dellemc/csi-metadata-retriever:v1.7.3 + image: dellemc/csi-metadata-retriever:v1.8.0 # health monitor is disabled by default, refer to driver documentation before enabling it - name: external-health-monitor enabled: false - args: ["--monitor-interval=60s"] + args: [ "--monitor-interval=60s" ] image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.12.1 # Uncomment the following to configure how often external-provisioner polls the driver to detect changed capacity # Configure only when the storageCapacity is set as "true" @@ -260,7 +260,7 @@ spec: # set it true, if csm-auth is enabled / you want it as a sidecar container # set it false, if you want it as a deployment - name: "DeployAsSidecar" - value: "false" + value: "true" # observability: allows to configure observability - name: observability # enabled: Enable/Disable observability diff --git a/tests/e2e/testfiles/storage_csm_powermax_observability_authorization.yaml b/tests/e2e/testfiles/storage_csm_powermax_observability_authorization.yaml new file mode 100644 index 000000000..0df654ade --- /dev/null +++ b/tests/e2e/testfiles/storage_csm_powermax_observability_authorization.yaml @@ -0,0 +1,390 @@ +# +# Copyright © 2023 Dell Inc. or its subsidiaries. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# +apiVersion: storage.dell.com/v1 +kind: ContainerStorageModule +metadata: + name: powermax + namespace: powermax +spec: + # Add fields here + driver: + csiDriverType: "powermax" + csiDriverSpec: + # in OCP <= 4.16 and K8s <= 1.29, fsGroupPolicy is an immutable field + # fsGroupPolicy: Defines if the underlying volume supports changing ownership and permission of the volume before being mounted. + # Allowed values: ReadWriteOnceWithFSType, File , None + # Default value: ReadWriteOnceWithFSType + fSGroupPolicy: "ReadWriteOnceWithFSType" + # storageCapacity: Helps the scheduler to schedule the pod on a node satisfying the topology constraints, only if the requested capacity is available on the storage array + # Allowed values: + # true: enable storage capacity tracking + # false: disable storage capacity tracking + storageCapacity: true + configVersion: v2.12.0 + # replica: Define the number of PowerMax controller nodes + # to deploy to the Kubernetes release + # Allowed values: n, where n > 0 + # Default value: None + replicas: 2 + # Default credential secret for Powermax, if not set it to "" + authSecret: powermax-creds + dnsPolicy: ClusterFirstWithHostNet + forceUpdate: false + forceRemoveDriver: true + common: + image: dellemc/csi-powermax:nightly + # imagePullPolicy: Policy to determine if the image should be pulled prior to starting the container. + # Allowed values: + # Always: Always pull the image. + # IfNotPresent: Only pull the image if it does not already exist on the node. + # Never: Never pull the image. + # Default value: None + imagePullPolicy: IfNotPresent + envs: + # X_CSI_MANAGED_ARRAYS: Serial ID of the arrays that will be used for provisioning + # Default value: None + # Examples: "000000000001", "000000000002" + - name: X_CSI_MANAGED_ARRAYS + value: "000000000000,000000000001" + # X_CSI_POWERMAX_ENDPOINT: Address of the Unisphere server that is managing the PowerMax arrays + # In case of multi-array, provide an endpoint of locally attached array + # Default value: None + # Example: https://0.0.0.1:8443 + - name: X_CSI_POWERMAX_ENDPOINT + value: "https://0.0.0.0:8443/" + # X_CSI_K8S_CLUSTER_PREFIX: Define a prefix that is appended onto + # all resources created in the Array + # This should be unique per K8s/CSI deployment + # maximum length of this value is 3 characters + # Default value: None + # Examples: "XYZ", "EMC" + - name: X_CSI_K8S_CLUSTER_PREFIX + value: "XYZ" + # Specify kubelet config dir path. + # Ensure that the config.yaml file is present at this path. + # Default value: /var/lib/kubelet + - name: KUBELET_CONFIG_DIR + value: /var/lib/kubelet + # X_CSI_POWERMAX_PORTGROUPS: Define the set of existing port groups that the driver will use. + # It is a comma separated list of portgroup names. + # Required only in case of iSCSI port groups + # Allowed values: iSCSI Port Group names + # Default value: None + # Examples: "pg1", "pg1, pg2" + - name: X_CSI_POWERMAX_PORTGROUPS + value: "" + # "X_CSI_TRANSPORT_PROTOCOL" can be "FC" or "FIBRE" for fibrechannel, + # "ISCSI" for iSCSI, + # "NVMETCP" for NVMeTCP or "" for autoselection. + # Allowed values: + # "FC" - Fiber Channel protocol + # "FIBER" - Fiber Channel protocol + # "ISCSI" - iSCSI protocol + # "NVMETCP" = NVMeTCP protocol + # "" - Automatic selection of transport protocol + # Default value: "" + - name: X_CSI_TRANSPORT_PROTOCOL + value: "" + # VMware/vSphere virtualization support + # set X_CSI_VSPHERE_ENABLED to true, if you to enable VMware virtualized environment support via RDM + # Allowed values: + # "true" - vSphere volumes are enabled + # "false" - vSphere volumes are disabled + # Default value: "false" + - name: "X_CSI_VSPHERE_ENABLED" + value: "false" + # X_CSI_VSPHERE_PORTGROUP: An existing portGroup that driver will use for vSphere + # recommended format: csi-x-VC-PG, x can be anything of user choice + # Allowed value: valid existing port group on the array + # Default value: "" + - name: "X_CSI_VSPHERE_PORTGROUP" + value: "" + # X_CSI_VSPHERE_HOSTNAME: An existing host(initiator group)/ host group(cascaded initiator group) that driver will use for vSphere + # this host should contain initiators from all the ESXs/ESXi host where the cluster is deployed + # recommended format: csi-x-VC-HN, x can be anything of user choice + # Allowed value: valid existing host/host group on the array + # Default value: "" + - name: "X_CSI_VSPHERE_HOSTNAME" + value: "" + # X_CSI_VCENTER_HOST: URL/endpoint of the vCenter where all the ESX are present + # Allowed value: valid vCenter host endpoint + # Default value: "" + - name: "X_CSI_VCENTER_HOST" + value: "" + # CSI driver log level + # Allowed values: "error", "warn"/"warning", "info", "debug" + # Default value: "debug" + - name: "CSI_LOG_LEVEL" + value: "debug" + # CSI driver log format + # Allowed values: "TEXT" or "JSON" + # Default value: "TEXT" + - name: "CSI_LOG_FORMAT" + value: "TEXT" + controller: + envs: + # X_CSI_HEALTH_MONITOR_ENABLED: Enable/Disable health monitor of CSI volumes from node plugin- volume usage, volume condition + # Allowed values: + # true: enable checking of health condition of CSI volumes + # false: disable checking of health condition of CSI volumes + # Default value: false + - name: X_CSI_HEALTH_MONITOR_ENABLED + value: "false" + # nodeSelector: Define node selection constraints for controller pods. + # For the pod to be eligible to run on a node, the node must have each + # of the indicated key-value pairs as labels. + # Leave as blank to consider all nodes + # Allowed values: map of key-value pairs + # Default value: None + nodeSelector: + # Uncomment if nodes you wish to use have the node-role.kubernetes.io/control-plane taint + # node-role.kubernetes.io/control-plane: "" + + # tolerations: Define tolerations that would be applied to controller deployment + # Leave as blank to install controller on worker nodes + # Allowed values: map of key-value pairs + # Default value: None + tolerations: + # Uncomment if nodes you wish to use have the node-role.kubernetes.io/control-plane taint + # - key: "node-role.kubernetes.io/control-plane" + # operator: "Exists" + # effect: "NoSchedule" + node: + envs: + # X_CSI_POWERMAX_ISCSI_ENABLE_CHAP: Determine if the driver is going to configure + # ISCSI node databases on the nodes with the CHAP credentials + # If enabled, the CHAP secret must be provided in the credentials secret + # and set to the key "chapsecret" + # Allowed values: + # "true" - CHAP is enabled + # "false" - CHAP is disabled + # Default value: "false" + - name: X_CSI_POWERMAX_ISCSI_ENABLE_CHAP + value: "false" + # X_CSI_HEALTH_MONITOR_ENABLED: Enable/Disable health monitor of CSI volumes from node plugin- volume usage, volume condition + # Allowed values: + # true: enable checking of health condition of CSI volumes + # false: disable checking of health condition of CSI volumes + # Default value: false + - name: X_CSI_HEALTH_MONITOR_ENABLED + value: "false" + # X_CSI_TOPOLOGY_CONTROL_ENABLED provides a way to filter topology keys on a node based on array and transport protocol + # if enabled, user can create custom topology keys by editing node-topology-config configmap. + # Allowed values: + # true: enable the filtration based on config map + # false: disable the filtration based on config map + # Default value: false + - name: X_CSI_TOPOLOGY_CONTROL_ENABLED + value: "false" + # X_CSI_MAX_VOLUMES_PER_NODE: Defines the maximum PowerMax volumes that the controller can schedule on the node + # Allowed values: Any value greater than or equal to 0 + # Default value: "0" + - name: X_CSI_MAX_VOLUMES_PER_NODE + value: "0" + # nodeSelector: Define node selection constraints for node pods. + # For the pod to be eligible to run on a node, the node must have each + # of the indicated key-value pairs as labels. + # Leave as blank to consider all nodes + # Allowed values: map of key-value pairs + # Default value: None + nodeSelector: + # Uncomment if nodes you wish to use have the node-role.kubernetes.io/control-plane taint + # node-role.kubernetes.io/control-plane: "" + + # tolerations: Define tolerations that would be applied to node daemonset + # Add/Remove tolerations as per requirement + # Leave as blank if you wish to not apply any tolerations + # Allowed values: map of key-value pairs + # Default value: None + tolerations: + - key: "node.kubernetes.io/memory-pressure" + operator: "Exists" + effect: "NoExecute" + - key: "node.kubernetes.io/disk-pressure" + operator: "Exists" + effect: "NoExecute" + - key: "node.kubernetes.io/network-unavailable" + operator: "Exists" + effect: "NoExecute" + sideCars: + # 'pmax' represents a string prepended to each volume created by the CSI driver + - name: provisioner + image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.1 + args: ["--volume-name-prefix=pmax"] + - name: attacher + image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1 + - name: registrar + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1 + - name: resizer + image: registry.k8s.io/sig-storage/csi-resizer:v1.11.1 + - name: snapshotter + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 + - name: csi-metadata-retriever + image: dellemc/csi-metadata-retriever:v1.8.0 + # health monitor is disabled by default, refer to driver documentation before enabling it + - name: external-health-monitor + enabled: false + args: ["--monitor-interval=60s"] + image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.12.1 + # Uncomment the following to configure how often external-provisioner polls the driver to detect changed capacity + # Configure only when the storageCapacity is set as "true" + # Allowed values: 1m,2m,3m,...,10m,...,60m etc. Default value: 5m + # - name: provisioner + # args: ["--capacity-poll-interval=5m"] + modules: + # CSI Powermax Reverseproxy is a mandatory module for Powermax + - name: csireverseproxy + # enabled: Always set to true + enabled: true + forceRemoveModule: true + configVersion: v2.10.0 + components: + - name: csipowermax-reverseproxy + # image: Define the container images used for the reverse proxy + # Default value: None + image: dellemc/csipowermax-reverseproxy:nightly + envs: + # "tlsSecret" defines the TLS secret that is created with certificate + # and its associated key + # Default value: None + # Example: "tls-secret" + - name: X_CSI_REVPROXY_TLS_SECRET + value: "csirevproxy-tls-secret" + - name: X_CSI_REVPROXY_PORT + value: "2222" + - name: X_CSI_CONFIG_MAP_NAME + value: "powermax-reverseproxy-config" + # deployAsSidecar defines the way reversproxy is installed with the driver + # set it true, if csm-auth is enabled / you want it as a sidecar container + # set it false, if you want it as a deployment + - name: "DeployAsSidecar" + value: "true" + # Authorization: enable csm-authorization for RBAC + - name: authorization + # enabled: Enable/Disable csm-authorization + enabled: true + configVersion: v1.11.0 + components: + - name: karavi-authorization-proxy + image: dellemc/csm-authorization-sidecar:nightly + envs: + # proxyHost: hostname of the csm-authorization server + - name: "PROXY_HOST" + value: "authorization-ingress-nginx-controller.authorization.svc.cluster.local" + # skipCertificateValidation: Enable/Disable certificate validation of the csm-authorization server + - name: "SKIP_CERTIFICATE_VALIDATION" + value: "true" + # observability: allows to configure observability + - name: observability + # enabled: Enable/Disable observability + enabled: true + configVersion: v1.10.0 + components: + - name: topology + # enabled: Enable/Disable topology + enabled: true + # image: Defines karavi-topology image. This shouldn't be changed + # Allowed values: string + image: dellemc/csm-topology:nightly + # certificate: base64-encoded certificate for cert/private-key pair -- add cert here to use custom certificates + # for self-signed certs, leave empty string + # Allowed values: string + certificate: "" + # privateKey: base64-encoded private key for cert/private-key pair -- add private key here to use custom certificates + # for self-signed certs, leave empty string + # Allowed values: string + privateKey: "" + envs: + # topology log level + # Valid values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, PANIC + # Default value: "INFO" + - name: "TOPOLOGY_LOG_LEVEL" + value: "INFO" + - name: otel-collector + # enabled: Enable/Disable OpenTelemetry Collector + enabled: true + # image: Defines otel-collector image. This shouldn't be changed + # Allowed values: string + image: otel/opentelemetry-collector:0.42.0 + # certificate: base64-encoded certificate for cert/private-key pair -- add cert here to use custom certificates + # for self-signed certs, leave empty string + # Allowed values: string + certificate: "" + # privateKey: base64-encoded private key for cert/private-key pair -- add private key here to use custom certificates + # for self-signed certs, leave empty string + # Allowed values: string + privateKey: "" + envs: + # image of nginx proxy image + # Allowed values: string + # Default value: "nginxinc/nginx-unprivileged:1.20" + - name: "NGINX_PROXY_IMAGE" + value: "nginxinc/nginx-unprivileged:1.20" + - name: cert-manager + # enabled: Enable/Disable cert-manager + # Allowed values: + # true: enable deployment of cert-manager + # false: disable deployment of cert-manager only if it's already deployed + # Default value: false + enabled: true + - name: metrics-powermax + # enabled: Enable/Disable PowerMax metrics + enabled: true + # image: Defines PowerMax metrics image. This shouldn't be changed + image: dellemc/csm-metrics-powermax:nightly + envs: + # POWERMAX_MAX_CONCURRENT_QUERIES: set the default max concurrent queries to PowerMax + # Allowed values: int + # Default value: 10 + - name: "POWERMAX_MAX_CONCURRENT_QUERIES" + value: "10" + # POWERMAX_CAPACITY_METRICS_ENABLED: enable/disable collection of capacity metrics + # Allowed values: ture, false + # Default value: true + - name: "POWERMAX_CAPACITY_METRICS_ENABLED" + value: "true" + # POWERMAX_PERFORMANCE_METRICS_ENABLED: enable/disable collection of volume performance metrics + # Allowed values: ture, false + # Default value: true + - name: "POWERMAX_PERFORMANCE_METRICS_ENABLED" + value: "true" + # POWERMAX_CAPACITY_POLL_FREQUENCY: set polling frequency to get capacity metrics data + # Allowed values: int + # Default value: 10 + - name: "POWERMAX_CAPACITY_POLL_FREQUENCY" + value: "10" + # POWERMAX_PERFORMANCE_POLL_FREQUENCY: set polling frequency to get volume performance data + # Allowed values: int + # Default value: 10 + - name: "POWERMAX_PERFORMANCE_POLL_FREQUENCY" + value: "10" + # PowerMax metrics log level + # Valid values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL, PANIC + # Default value: "INFO" + - name: "POWERMAX_LOG_LEVEL" + value: "INFO" + # PowerMax Metrics Output logs in the specified format + # Valid values: TEXT, JSON + # Default value: "TEXT" + - name: "POWERMAX_LOG_FORMAT" + value: "TEXT" + # otel collector address + # Allowed values: String + # Default value: "otel-collector:55680" + - name: "COLLECTOR_ADDRESS" + value: "otel-collector:55680" + # configMap name which has all array/endpoint related info + - name: "X_CSI_CONFIG_MAP_NAME" + value: "powermax-reverseproxy-config" diff --git a/tests/e2e/testfiles/storage_csm_powermax_resiliency.yaml b/tests/e2e/testfiles/storage_csm_powermax_resiliency.yaml index 5ac8aa248..9015b90f7 100644 --- a/tests/e2e/testfiles/storage_csm_powermax_resiliency.yaml +++ b/tests/e2e/testfiles/storage_csm_powermax_resiliency.yaml @@ -210,22 +210,22 @@ spec: sideCars: # 'pmax' represents a string prepended to each volume created by the CSI driver - name: provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v4.0.0 - args: ["--volume-name-prefix=pmax"] + image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.1 + args: [ "--volume-name-prefix=pmax" ] - name: attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.5.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1 - name: registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1 - name: resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.10.0 + image: registry.k8s.io/sig-storage/csi-resizer:v1.11.1 - name: snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v7.0.1 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 - name: csi-metadata-retriever - image: dellemc/csi-metadata-retriever:v1.7.3 + image: dellemc/csi-metadata-retriever:v1.8.0 # health monitor is disabled by default, refer to driver documentation before enabling it - name: external-health-monitor enabled: false - args: ["--monitor-interval=60s"] + args: [ "--monitor-interval=60s" ] image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.12.1 # Uncomment the following to configure how often external-provisioner polls the driver to detect changed capacity # Configure only when the storageCapacity is set as "true" diff --git a/tests/e2e/testfiles/storage_csm_powermax_sidecar.yaml b/tests/e2e/testfiles/storage_csm_powermax_sidecar.yaml index dd71497cf..839c1f2b5 100644 --- a/tests/e2e/testfiles/storage_csm_powermax_sidecar.yaml +++ b/tests/e2e/testfiles/storage_csm_powermax_sidecar.yaml @@ -32,7 +32,7 @@ spec: # false: disable storage capacity tracking storageCapacity: true # Config version for CSI PowerMax v2.10.1 driver - configVersion: v2.11.0 + configVersion: v2.12.0 # replica: Define the number of PowerMax controller nodes # to deploy to the Kubernetes release # Allowed values: n, where n > 0 @@ -210,22 +210,22 @@ spec: sideCars: # 'pmax' represents a string prepended to each volume created by the CSI driver - name: provisioner - image: registry.k8s.io/sig-storage/csi-provisioner:v4.0.0 - args: ["--volume-name-prefix=pmax"] + image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.1 + args: [ "--volume-name-prefix=pmax" ] - name: attacher - image: registry.k8s.io/sig-storage/csi-attacher:v4.5.0 + image: registry.k8s.io/sig-storage/csi-attacher:v4.6.1 - name: registrar - image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.0 + image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.10.1 - name: resizer - image: registry.k8s.io/sig-storage/csi-resizer:v1.10.0 + image: registry.k8s.io/sig-storage/csi-resizer:v1.11.1 - name: snapshotter - image: registry.k8s.io/sig-storage/csi-snapshotter:v7.0.1 + image: registry.k8s.io/sig-storage/csi-snapshotter:v8.0.1 - name: csi-metadata-retriever - image: dellemc/csi-metadata-retriever:v1.7.3 + image: dellemc/csi-metadata-retriever:v1.8.0 # health monitor is disabled by default, refer to driver documentation before enabling it - name: external-health-monitor enabled: false - args: ["--monitor-interval=60s"] + args: [ "--monitor-interval=60s" ] image: registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.12.1 # Uncomment the following to configure how often external-provisioner polls the driver to detect changed capacity # Configure only when the storageCapacity is set as "true"