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 @@
+
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 = `
+
+ PowerFlex
+
+
+ Helm
+
+
+
+ CSM 1.7.0
+
+
+
+
+
+
+ `;
+
+ 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
##########################################