diff --git a/content/docs/deployment/csminstallationwizard/release/_index.md b/content/docs/deployment/csminstallationwizard/release/_index.md index 5d267c8379..cf735551df 100644 --- a/content/docs/deployment/csminstallationwizard/release/_index.md +++ b/content/docs/deployment/csminstallationwizard/release/_index.md @@ -14,6 +14,8 @@ description: Release notes for CSM Installation Wizard - Helm and Operator based manifest file generation is supported for CSM-1.7 and CSM 1.8 releases - Volume Limit and Storage Capacity Tracking features have been added. +- Rename SDC and approve SDC feature added for CSM-1.7 and CSM-1.8 for CSI-PowerFlex driver. +- NFS volume feature added for CSM-1.8 for CSI-PowerFlex driver. ### Fixed Issues diff --git a/content/docs/deployment/csminstallationwizard/src/csm-versions/default-values.properties b/content/docs/deployment/csminstallationwizard/src/csm-versions/default-values.properties index 150565a2a4..3d58dac929 100644 --- a/content/docs/deployment/csminstallationwizard/src/csm-versions/default-values.properties +++ b/content/docs/deployment/csminstallationwizard/src/csm-versions/default-values.properties @@ -9,4 +9,5 @@ certSecretCount=1 pollRate=60 driverPodLabel=dell-storage arrayThreshold=3 -maxVolumesPerNode=0 \ No newline at end of file +maxVolumesPerNode=0 +nfsAcls=0777 \ No newline at end of file diff --git a/content/docs/deployment/csminstallationwizard/src/index.html b/content/docs/deployment/csminstallationwizard/src/index.html index 9b078c17b2..ec94cff288 100644 --- a/content/docs/deployment/csminstallationwizard/src/index.html +++ b/content/docs/deployment/csminstallationwizard/src/index.html @@ -347,6 +347,27 @@ +
+
+ + +
+
+ +
+
+ +
+
+
+ +
+
+ + +
+
+
@@ -375,6 +396,30 @@
+
+
NFS volume operations
+
+ +
+
+ +
+ +
+
+ +
+
+ + +
+
+
+
Other configurations for installation
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 b1b2a38687..5bf69212bf 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/generate-yaml.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/generate-yaml.js @@ -125,6 +125,11 @@ function setValues(csmMapValues, CONSTANTS_PARAM) { DriverValues.vSphereFCHostName = $("#vSphere-fc-host-name").val(); DriverValues.vSphereVCenterHost = $("#vSphere-vCenter-host").val(); DriverValues.vSphereVCenterCredSecret = $("#vSphere-vCenter-cred-secret").val(); + DriverValues.renameSDC = $("#rename-sdc").prop('checked') ? true : false; + DriverValues.sdcPrefix = $("#sdc-prefix").val(); + DriverValues.approveSDC = $("#approve-sdc").prop('checked') ? true : false; + DriverValues.nfsAcls = $("#nfs-acls").val(); + DriverValues.enableQuota = $("#enable-quota").prop('checked') ? true : false; return DriverValues } @@ -182,6 +187,11 @@ function createYamlString(yamlTpl, yamlTplValues, driverParam, CONSTANTS_PARAM) yamlTpl = yamlTpl.replaceAll("$NODE_TOLERATIONS", yamlTplValues.nodeTolerations); yamlTpl = yamlTpl.replaceAll("$TARGET_ARRAY_ID", yamlTplValues.targetArrayID); yamlTpl = yamlTpl.replaceAll("$TARGET_UNISPHERE", yamlTplValues.targetUnisphere); + yamlTpl = yamlTpl.replaceAll("$RENAME_SDC_ENABLED", yamlTplValues.renameSDC); + yamlTpl = yamlTpl.replaceAll("$SDC_PREFIX", yamlTplValues.sdcPrefix); + yamlTpl = yamlTpl.replaceAll("$APPROVE_SDC_ENABLED", yamlTplValues.approveSDC); + yamlTpl = yamlTpl.replaceAll("$NFS_ACLS", yamlTplValues.nfsAcls); + yamlTpl = yamlTpl.replaceAll("$QUOTA_ENABLED", yamlTplValues.enableQuota); if (driverParam === CONSTANTS_PARAM.POWERSTORE) { 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 a7327981ef..cd7845d408 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 @@ -115,6 +115,11 @@ describe("GIVEN setValues function", () => { + + + + + `; const expected = { @@ -184,6 +189,11 @@ describe("GIVEN setValues function", () => { observabilityOperatorTopology: false, topologyEnabled: false, transportProtocol: "", + renameSDC: false, + sdcPrefix: "", + approveSDC: false, + nfsAcls: "0777", + enableQuota: false, }; const received = setValues(testCSMMap, CONSTANTS); @@ -232,6 +242,11 @@ describe("GIVEN setValues function", () => { + + + + + `; const expected = { @@ -301,6 +316,11 @@ describe("GIVEN setValues function", () => { observabilityOperatorTopology: false, topologyEnabled: false, transportProtocol: "", + renameSDC: false, + sdcPrefix: "", + approveSDC: false, + nfsAcls: "0777", + enableQuota: false, }; const received = setValues(testCSMMap, CONSTANTS); @@ -514,6 +534,11 @@ describe("GIVEN createYamlString function", () => { healthMonitor: enabled: $HEALTH_MONITOR_ENABLED nodeSelector: $NODE_POD_NODE_SELECTOR + renameSDC: + enabled: $RENAME_SDC_ENABLED + sdcPrefix: $SDC_PREFIX + approveSDC: + enabled: $APPROVE_SDC_ENABLED tolerations: # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" @@ -677,7 +702,10 @@ describe("GIVEN createYamlString function", () => { vSphereFCHostName: "csi-vsphere-VC-HN", vSphereVCenterHost: "00.000.000.00", vSphereVCenterCredSecret: "vcenter-creds", - migration: false + migration: false, + renameSDC: false, + sdcPrefix: "sdc-test", + approveSDC: false }; test("SHOULD return generated yaml file string for driver csi-powerstore", () => { @@ -822,6 +850,11 @@ describe("GIVEN createYamlString function", () => { healthMonitor: enabled: false nodeSelector: false + renameSDC: + enabled: false + sdcPrefix: sdc-test + approveSDC: + enabled: false tolerations: # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" @@ -1091,6 +1124,11 @@ describe("GIVEN createYamlString function", () => { healthMonitor: enabled: false nodeSelector: false + renameSDC: + enabled: false + sdcPrefix: sdc-test + approveSDC: + enabled: false tolerations: # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" @@ -1361,6 +1399,11 @@ describe("GIVEN createYamlString function", () => { healthMonitor: enabled: false nodeSelector: false + renameSDC: + enabled: false + sdcPrefix: sdc-test + approveSDC: + enabled: false tolerations: # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" @@ -1633,6 +1676,11 @@ describe("GIVEN createYamlString function", () => { healthMonitor: enabled: false nodeSelector: false + renameSDC: + enabled: false + sdcPrefix: sdc-test + approveSDC: + enabled: false tolerations: # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" @@ -1904,6 +1952,11 @@ describe("GIVEN createYamlString function", () => { healthMonitor: enabled: false nodeSelector: false + renameSDC: + enabled: false + sdcPrefix: sdc-test + approveSDC: + enabled: false tolerations: # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" diff --git a/content/docs/deployment/csminstallationwizard/src/static/js/tests/ui-functions.test.js b/content/docs/deployment/csminstallationwizard/src/static/js/tests/ui-functions.test.js index dfb35ee775..abb8b3b54e 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/tests/ui-functions.test.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/tests/ui-functions.test.js @@ -31,6 +31,7 @@ const { resetControllerCount, resetVolNamePrefix, resetSnapNamePrefix, + resetNfsAcls, resetDriverPodLabel, resetArrayPollRate, resetArrayConnectionLossThreshold, @@ -464,6 +465,22 @@ describe("GIVEN resetArrayPollRate function", () => { }); }); +describe("GIVEN resetNfsAcls function", () => { + const testCSMMap = new Map([ + ["nfsAcls", "0777"] + ]); + + test("SHOULD invoke resetNfsAcls function", () => { + document.body.innerHTML = ` + + `; + + resetNfsAcls(testCSMMap); + + expect(document.getElementById("nfs-acls").value).toEqual("0777"); + }); +}); + describe("GIVEN resetArrayConnectionLossThreshold function", () => { const testCSMMap = new Map([ ["arrayThreshold", "3"] diff --git a/content/docs/deployment/csminstallationwizard/src/static/js/tests/utility.test.js b/content/docs/deployment/csminstallationwizard/src/static/js/tests/utility.test.js index 3b9cb875f6..c46d40a523 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/tests/utility.test.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/tests/utility.test.js @@ -275,6 +275,37 @@ describe("GIVEN validateForm functions", () => { expect(validateForm(CONSTANT_PARAM)).toBe(true); }); + + const powerflexTestHtml = ` + + + + + + + + + + `; + + test("SHOULD return true IF rename-sdc value is unchecked", () => { + document.body.innerHTML = powerflexTestHtml; + + expect(validateForm(CONSTANT_PARAM)).toBe(true); + }); + + test("SHOULD return false IF rename-sdc value is checked AND sdc-prefix value is empty", () => { + document.body.innerHTML = powerflexTestHtml; + $("#rename-sdc").prop('checked', true); + + expect(validateForm(CONSTANT_PARAM)).toBe(true); + }); }); describe("GIVEN setMap function", () => { @@ -315,6 +346,7 @@ describe("GIVEN setDefaultValues function", () => { + `; const testCSMMap = new Map([ 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 84f1cb489d..ccc42061b3 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/ui-functions.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/ui-functions.js @@ -88,6 +88,7 @@ function onArrayChange() { onVSphereChange(); onReplicationChange(replicationNote); validateInput(validateForm, CONSTANTS); + onRenameSDCChange(driver, CONSTANTS); }); } @@ -212,6 +213,16 @@ function onNodeSelectorChange(nodeSelectorNoteValue, csmMapValue) { } } +function onRenameSDCChange(driverName, CONSTANTS_PARAM) { + if ($("#rename-sdc").prop('checked') === true) { + if (driverName === POWERFLEX){ + $('div.sdc-prefix').show(); + } + } else { + $('div.sdc-prefix').hide(); + } +} + const onCSMVersionChange = () => { document.getElementById("csm-version").value !== ""? loadTemplate(document.getElementById("array").value, document.getElementById("installation-type").value, document.getElementById("csm-version").value) : null; displayModules(installationType, driver, CONSTANTS); @@ -253,6 +264,10 @@ const resetSnapNamePrefix = csmMapValue => { document.getElementById("snapshot-prefix").value = String(csmMapValue.get("snapNamePrefix")); } +const resetNfsAcls = csmMapValue => { + document.getElementById("nfs-acls").value = String(csmMapValue.get("nfsAcls")); +} + const resetNodeSelectorLabel = csmMapValue => { document.getElementById("node-selector-label").value = String(csmMapValue.get("nodeSelectorLabel")); } @@ -334,6 +349,9 @@ function displayModules(installationType, driverName, CONSTANTS_PARAM) { $(".replication-operator-clusterid").hide(); $(".replication-helm-arrayid").hide(); $(".replication-helm-unisphere").hide(); + $(".rename-sdc-feature").hide(); + $(".approve-sdc").hide(); + $(".nfs-feature").hide(); switch (driverName) { case CONSTANTS_PARAM.POWERSTORE: @@ -422,6 +440,12 @@ function displayModules(installationType, driverName, CONSTANTS_PARAM) { $(".cert-secret-count-wrapper").show(); $("div#snap-prefix").hide(); $(".storage-capacity").show(); + $(".rename-sdc-feature").show(); + $(".approve-sdc").show(); + if (document.getElementById("csm-version").value === "1.8.0") { + $(".max-volumes-per-node").show(); + $(".nfs-feature").show(); + } document.getElementById("driver-namespace").value = CONSTANTS_PARAM.POWERFLEX_NAMESPACE; break; case CONSTANTS_PARAM.UNITY: @@ -526,6 +550,7 @@ if (typeof exports !== 'undefined') { onVSphereChange, onNodeSelectorChange, onCopyButtonClickHandler, + onRenameSDCChange, resetImageRepository, resetMaxVolumesPerNode, resetControllerCount, @@ -542,6 +567,7 @@ if (typeof exports !== 'undefined') { hideFields, validateInput, resetVolNamePrefix, - resetSnapNamePrefix + resetSnapNamePrefix, + resetNfsAcls }; } diff --git a/content/docs/deployment/csminstallationwizard/src/static/js/utility.js b/content/docs/deployment/csminstallationwizard/src/static/js/utility.js index a7f961ee53..bcc6bbdd6d 100644 --- a/content/docs/deployment/csminstallationwizard/src/static/js/utility.js +++ b/content/docs/deployment/csminstallationwizard/src/static/js/utility.js @@ -48,6 +48,9 @@ function validateForm(CONSTANTS_PARAM) { const powermaxSelected = document.getElementById('array').value.trim() === CONSTANTS_PARAM.POWERMAX; const vSphereEnabled = $("#vSphere").prop('checked') ? true : false; + const powerflexSelected = document.getElementById('array').value.trim() === CONSTANTS_PARAM.POWERFLEX; + const renameSDCEnabled = $("#rename-sdc").prop('checked') ? true : false; + if (powermaxSelected) { if (document.getElementById('installation-type').value === CONSTANTS_PARAM.HELM) { if (document.getElementById('storage-array-id').value.trim() === "") { @@ -84,6 +87,15 @@ function validateForm(CONSTANTS_PARAM) { } } } + if (powerflexSelected) { + if (document.getElementById('installation-type').value === CONSTANTS_PARAM.HELM) { + if (renameSDCEnabled) { + if (document.getElementById('sdc-prefix').value.trim() === "") { + return false; + } + } + } + } if ($('#controller-pods-node-selector').prop('checked') || $('#node-pods-node-selector').prop('checked')){ if (document.getElementById('node-selector-label').value.trim() === "") { return false; @@ -118,6 +130,7 @@ function setDefaultValues(defaultValuesParam, csmMapValues) { document.getElementById("controller-count").value = String(csmMapValues.get("controllerCount")); document.getElementById("vol-name-prefix").value = csmMapValues.get("volNamePrefix"); document.getElementById("snapshot-prefix").value = csmMapValues.get("snapNamePrefix"); + document.getElementById("nfs-acls").value = csmMapValues.get("nfsAcls"); document.getElementById("cert-secret-count").value = csmMapValues.get("certSecretCount"); document.getElementById("taint").value = csmMapValues.get("taint"); document.getElementById("poll-rate").value = csmMapValues.get("pollRate"); diff --git a/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.7.0-values.template b/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.7.0-values.template index ceb4675c5f..ccb49400f9 100644 --- a/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.7.0-values.template +++ b/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.7.0-values.template @@ -181,6 +181,11 @@ csi-vxflexos: healthMonitor: enabled: $HEALTH_MONITOR_ENABLED nodeSelector: $NODE_POD_NODE_SELECTOR + renameSDC: + enabled: $RENAME_SDC_ENABLED + sdcPrefix: $SDC_PREFIX + approveSDC: + enabled: $APPROVE_SDC_ENABLED tolerations: $NODE_TOLERATIONS # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" diff --git a/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.8.0-values.template b/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.8.0-values.template index 7c5868ca36..89e2ac7035 100644 --- a/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.8.0-values.template +++ b/content/docs/deployment/csminstallationwizard/src/templates/helm/csm-1.8.0-values.template @@ -185,6 +185,11 @@ csi-vxflexos: healthMonitor: enabled: $HEALTH_MONITOR_ENABLED nodeSelector: $NODE_POD_NODE_SELECTOR + renameSDC: + enabled: $RENAME_SDC_ENABLED + sdcPrefix: $SDC_PREFIX + approveSDC: + enabled: $APPROVE_SDC_ENABLED tolerations: $NODE_TOLERATIONS # Uncomment if CSM for Resiliency and CSI Driver pods monitor is enabled # - key: "offline.vxflexos.storage.dell.com" @@ -207,6 +212,8 @@ csi-vxflexos: # effect: "NoSchedule" storageCapacity: enabled: $STORAGE_CAPACITY_ENABLED + nfsAcls: $NFS_ACLS + enableQuota: $QUOTA_ENABLED monitor: enabled: $MONITOR_ENABLED vgsnapshotter: @@ -238,6 +245,7 @@ csi-vxflexos: sidecarProxyImage: dellemc/csm-authorization-sidecar:v1.8.0 proxyHost: $AUTHORIZATION_PROXY_HOST skipCertificateValidation: $AUTHORIZATION_SKIP_CERTIFICATE_VALIDATION + maxPowerflexVolumesPerNode: $MAX_VOLUMES_PER_NODE ## K8S/CSI-PowerScale ATTRIBUTES ##########################################