diff --git a/.github/workflows/linter.yaml b/.github/workflows/linter.yaml index 51771fe081..e8f3178b6d 100644 --- a/.github/workflows/linter.yaml +++ b/.github/workflows/linter.yaml @@ -4,7 +4,7 @@ on: push: branches: [ main ] pull_request: - branches: [ main ] + branches: [ main , release-* ] jobs: lint: name: Lint Code Base diff --git a/.github/workflows/unit-test-reporter.yaml b/.github/workflows/unit-test-reporter.yaml index c25bdbf9e9..b593abb8b9 100644 --- a/.github/workflows/unit-test-reporter.yaml +++ b/.github/workflows/unit-test-reporter.yaml @@ -4,7 +4,7 @@ on: push: branches: [ main ] pull_request: - branches: [ main, release-1.7.0 ] + branches: [ main, release-* ] jobs: build-test: name: Build & Run Unit Test diff --git a/content/docs/deployment/csminstallationwizard/src/index.html b/content/docs/deployment/csminstallationwizard/src/index.html index 98f94f8105..c216af87cd 100644 --- a/content/docs/deployment/csminstallationwizard/src/index.html +++ b/content/docs/deployment/csminstallationwizard/src/index.html @@ -60,7 +60,7 @@ - + @@ -331,6 +331,22 @@ +
+
+ + +
+
+ +
+ +
+
+ +
+
+
+
@@ -506,4 +522,4 @@ })(); - \ No newline at end of file + diff --git a/content/docs/deployment/csminstallationwizard/src/static/js/generate-yaml.js b/content/docs/deployment/csminstallationwizard/src/static/js/generate-yaml.js index d317eb58a5..d2b926b7e9 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/generate-yaml.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/generate-yaml.js @@ -49,6 +49,8 @@ function setValues(csmMapValues, CONSTANTS_PARAM) { DriverValues.csmVersion = document.getElementById("csm-version").value DriverValues.driverVersion = csmMapValues.get("driverVersion"); DriverValues.imageRepository = document.getElementById("image-repository").value; + DriverValues.monitor = $("#monitor").prop('checked') ? true : false; + DriverValues.certSecretCount = document.getElementById("cert-secret-count").value; DriverValues.controllerCount = document.getElementById("controller-count").value; DriverValues.controllerPodsNodeSelector = $("#controller-pods-node-selector").prop('checked') ? true : false; DriverValues.nodePodsNodeSelector = $("#node-pods-node-selector").prop('checked') ? true : false; @@ -73,7 +75,7 @@ function setValues(csmMapValues, CONSTANTS_PARAM) { DriverValues.resiliency = $("#resiliency").prop('checked') ? true : false; DriverValues.storageCapacity = $("#storage-capacity").prop('checked') ? true : false; DriverValues.authorizationSkipCertValidation = $("#authorization-skip-cert-validation").prop('checked') ? true : false; - DriverValues.authorizationProxyHost = document.getElementById("authorization-proxy-host").value; + DriverValues.authorizationProxyHost = document.getElementById("authorization-proxy-host").value || '""'; DriverValues.vgsnapshotImage = DriverValues.imageRepository + CONSTANTS_PARAM.SLASH + csmMapValues.get("vgsnapshotImage"); DriverValues.replicationImage = DriverValues.imageRepository + CONSTANTS_PARAM.SLASH + csmMapValues.get("replicationImage"); DriverValues.migrationImage = DriverValues.imageRepository + CONSTANTS_PARAM.SLASH + csmMapValues.get("migrationImage"); @@ -117,6 +119,8 @@ function setValues(csmMapValues, CONSTANTS_PARAM) { function createYamlString(yaml, obj, driverParam, CONSTANTS_PARAM) { yaml = yaml.replaceAll("$IMAGE_REPOSITORY", obj.imageRepository); yaml = yaml.replaceAll("$VERSION", obj.driverVersion); + yaml = yaml.replaceAll("$MONITOR_ENABLED", obj.monitor); + yaml = yaml.replaceAll("$CERT_SECRET_COUNT", obj.certSecretCount); yaml = yaml.replaceAll("$CONTROLLER_COUNT", obj.controllerCount); yaml = yaml.replaceAll("$CONTROLLER_POD_NODE_SELECTOR", obj.controllerPodsNodeSelector); yaml = yaml.replaceAll("$NODE_POD_NODE_SELECTOR", obj.nodePodsNodeSelector); diff --git a/content/docs/deployment/csminstallationwizard/src/static/js/tests/generate-yaml.test.js b/content/docs/deployment/csminstallationwizard/src/static/js/tests/generate-yaml.test.js index 8216019e26..42fd4cbdac 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/tests/generate-yaml.test.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/tests/generate-yaml.test.js @@ -43,6 +43,7 @@ describe("GIVEN setValues function", () => { + @@ -67,6 +68,7 @@ describe("GIVEN setValues function", () => { csmVersion: "1.4.0", driverVersion: "v2.4.0", imageRepository: "dellemc", + certSecretCount: "0", controllerCount: "2", controllerPodsNodeSelector: '\n node-role.kubernetes.io/control-plane: ""', nodePodsNodeSelector: '\n node-role.kubernetes.io/control-plane: ""', @@ -92,6 +94,64 @@ describe("GIVEN setValues function", () => { expect(received).toEqual(received); }); + + test("SHOULD return expected DriverValues for csm version 1.6.0", () => { + document.body.innerHTML = ` + + + + + + + + + + + `; + + const testCSMMap = new Map([ + ["csmVersion", "1.6.0"], + ["imageRepository", "dellemc"], + ["controllerCount", "2"], + ["nodeSelectorLabel", "node-role.kubernetes.io/control-plane:"], + ["driverVersion", "v2.6.0"], + ["vgsnapshotImage", "csi-volumegroup-snapshotter:v1.2.0"], + ["replicationImage", "dell-csi-replicator:v1.4.0"], + ["authorizationImage", "csm-authorization-sidecar:v1.6.0"] + ]); + + const expected = { + csmVersion: "1.6.0", + driverVersion: "v2.6.0", + imageRepository: "dellemc", + certSecretCount: "0", + controllerCount: "2", + controllerPodsNodeSelector: '\n node-role.kubernetes.io/control-plane: ""', + nodePodsNodeSelector: '\n node-role.kubernetes.io/control-plane: ""', + nodeSelectorLabel: "node-role.kubernetes.io/control-plane:", + snapshot: true, + vgsnapshot: false, + resizer: true, + healthMonitor: false, + replication: false, + observability: false, + observabilityMetrics: false, + authorization: false, + authorizationSkipCertValidation: true, + vgsnapshotImage: "dellemc/csi-volumegroup-snapshotter:v1.2.0", + replicationImage: "dellemc/dell-csi-replicator:v1.4.0", + authorizationImage: "dellemc/csm-authorization-sidecar:v1.6.0", + applicationMobility: false, + certManagerEnabled: false, + singleNamespaceEnabled: false + }; + + const received = setValues(testCSMMap, CONSTANTS); + + expect(received).toEqual(received); + }); }); describe("GIVEN createYamlString function", () => { diff --git a/content/docs/deployment/csminstallationwizard/src/static/js/ui-functions.js b/content/docs/deployment/csminstallationwizard/src/static/js/ui-functions.js index 3961fe8d41..4895c0183b 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/ui-functions.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/ui-functions.js @@ -180,6 +180,7 @@ function displayModules(driverName, CONSTANTS_PARAM) { $(".storage-capacity").hide(); $(".migration").hide(); $(".vSphere").hide(); + $(".cert-secret-count-wrapper").hide(); const selectedCSMVersion = document.getElementById("csm-version").value; @@ -211,6 +212,8 @@ function displayModules(driverName, CONSTANTS_PARAM) { $(".vSphere").show(); break; case CONSTANTS_PARAM.POWERFLEX: + $(".resiliency").show(); + $(".cert-secret-count-wrapper").show(); break; case CONSTANTS_PARAM.UNITY: break; diff --git a/content/docs/deployment/csminstallationwizard/src/templates/csm-values.template b/content/docs/deployment/csminstallationwizard/src/templates/csm-values.template index b35ba8ba41..791205d749 100644 --- a/content/docs/deployment/csminstallationwizard/src/templates/csm-values.template +++ b/content/docs/deployment/csminstallationwizard/src/templates/csm-values.template @@ -127,6 +127,66 @@ csi-powermax: vCenterHost: "$VSPHERE_VCENTER_HOST" vCenterCredSecret: $VSPHERE_VCENTER_CRED_SECRET + +## CSI PowerFlex +######################## +csi-vxflexos: + enabled: $POWERFLEX_ENABLED + version: $VERSION + images: + driverRepository: $IMAGE_REPOSITORY + powerflexSdc: dellemc/sdc:3.6.0.6 + certSecretCount: $CERT_SECRET_COUNT + controller: + replication: + enabled: $REPLICATION_ENABLED + image: $REPLICATION_IMAGE + healthMonitor: + enabled: $HEALTH_MONITOR_ENABLED + controllerCount: $CONTROLLER_COUNT + snapshot: + enabled: $SNAPSHOT_ENABLED + resizer: + enabled: $RESIZER_ENABLED + nodeSelector: $CONTROLLER_POD_NODE_SELECTOR + node: + healthMonitor: + enabled: $HEALTH_MONITOR_ENABLED + nodeSelector: $NODE_POD_NODE_SELECTOR + tolerations: + # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled + # - key: "offline.vxflexos.storage.dell.com" + # operator: "Exists" + # effect: "NoSchedule" + # - key: "vxflexos.podmon.storage.dell.com" + # operator: "Exists" + # effect: "NoSchedule" + # - key: "offline.unity.storage.dell.com" + # operator: "Exists" + # effect: "NoSchedule" + # - key: "unity.podmon.storage.dell.com" + # operator: "Exists" + # effect: "NoSchedule" + # - key: "offline.isilon.storage.dell.com" + # operator: "Exists" + # effect: "NoSchedule" + # - key: "isilon.podmon.storage.dell.com" + # operator: "Exists" + # effect: "NoSchedule" + monitor: + enabled: $MONITOR_ENABLED + vgsnapshotter: + enabled: $VG_SNAPSHOT_ENABLED + image: $VG_SNAPSHOT_IMAGE + podmon: + enabled: $RESILIENCY_ENABLED + image: $PODMAN_IMAGE + authorization: + enabled: $AUTHORIZATION_ENABLED + sidecarProxyImage: $AUTHORIZATION_IMAGE + proxyHost: $AUTHORIZATION_PROXY_HOST + + ## K8S/Replication Module ATTRIBUTES ########################################## csm-replication: