Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Powermax operator support wizard #754

Merged
merged 15 commits into from
Aug 21, 2023
93 changes: 92 additions & 1 deletion content/docs/deployment/csminstallationwizard/src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,50 @@
</div>
</div>

<div class="row mb-4 observability-operator">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="observability-operator" value="" onchange="onObservabilityOperatorChange()">
shanmydell marked this conversation as resolved.
Show resolved Hide resolved
<label for="observability-operator" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable Observability module">Observability</label>
</div>
<div class="row mt-3 observability child-level-one" id="observability-operator-metrics-wrapper">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="observability-operator-metrics" value="">
<label for="observability-operator-metrics" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable Observability Metrics">Observability Metrics</label>
</div>
</div>
<div class="row mt-3 observability child-level-one" id="observability-operator-topology-wrapper">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="observability-operator-topology" value="">
<label for="observability-operator-topology" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable Observability Metrics">Observability Topology</label>
</div>
</div>
<div class="row mt-3 observability child-level-one" id="observability-operator-otel-wrapper">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="observability-operator-otel" value="">
<label for="observability-operator-otel" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable Observability Otel collector">Observability Otel Collector</label>
</div>
</div>
</div>


<div class="row mb-4 replication-mod">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="replication" value="">
<input class="form-check-input" type="checkbox" id="replication" value="" onchange="onReplicationChange(replicationNote)">
<label for="replication" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable Replication module">Replication</label>
</div>
<div class="was-validated row mt-3 child-level-one replication-operator">
<label for="target-cluster-id" class="col-sm-3 col-form-label" data-bs-toggle="tooltip" data-bs-placement="right" title="List of cluster IDs of the targets clusters">Target Cluster ID</label>
<div class="col-sm-9"></div>
<div class="col-sm-2">
<input class="form-control input-lg" type="text" id="target-cluster-id" placeholder="target-cluster-id" required>
</div>
</div>
<div class="row child-level-one replication-operator" id="replication-operator-note-wrapper">
<div class="mt-3 py-2 note">
<i class="icon dds__icon dds__icon--alert-info-cir"></i>
<span class="h6" id="replication-operator-note"></span>
</div>
</div>
</div>

<div class="row mb-4 resiliency col-sm-11">
Expand Down Expand Up @@ -341,6 +380,26 @@
</div>
</div>

<div class="managedArrays mb-4">
<div class="row mb-4">
<label for="manage-array-id" class="col-sm-2 col-form-label" data-bs-toggle="tooltip" data-bs-placement="right" title="This refers to PowerMax Symmetrix ID" style="width: 140px;">Managed Array Id</label>
<div class="col-sm-9"></div>
<div class="was-validated col-sm-3">
<input class="form-control input-lg" type="text" id="manage-array-id" placeholder="Example: 000000000001" oninput="validateInput(validateForm, CONSTANTS)" required>
</div>
</div>

<div class="row mb-4">
<label for="manage-array-endpoint-url" class="col-sm-3 col-form-label" data-bs-toggle="tooltip" data-bs-placement="right" title="This refers to the URL of the Unisphere server managing storageArrayId." style="width: 225px;">Managed Array Endpoint URL</label>
<div class="row">
<div class="was-validated col-sm-3">
<input class="form-control input-lg" type="text" id="manage-array-endpoint-url" placeholder="Example: https://primary-1.unisphe.re:8443" oninput="validateInput(validateForm, CONSTANTS)" required>
</div>
</div>
</div>
</div>


<div class="row mb-3 powermax-csi-reverse-proxy">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="powermax-csi-reverse-proxy" value="" checked>
Expand Down Expand Up @@ -368,6 +427,38 @@
</div>
</div>

<div class="transport-protocol">
<div class="row mb-4">
<label for="transport-protocol" class="col-sm-2 col-form-label" data-bs-toggle="tooltip" data-bs-placement="right" title="Define the Transport Protocol for the driver to use to provision to nodes. Optional" style="width: 110px;">Transport Protocol</label>
<div class="col-sm-9"></div>
<div class="col-sm-3">
<input class="form-control input-lg" type="text" id="transport-protocol" placeholder="Example: ISCSI ,FC or FIBRE " required>
</div>
</div>
</div>

<div class="row mb-4 iscsichap">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="iscsichap" value="" >
<label for="iscsichap" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable ISCSI CHAPfeature">iSCSI CHAP</label>
</div>
</div>

<div class="row mb-4 col-sm-11 topology">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="topology" value="" onchange="onTopologyChange(topologyNote)">
<label for="topology" class="form-check-label ms-2 text-dark" data-bs-toggle="tooltip" data-bs-placement="right" title="Enable/Disable Node Topology feature">Node Topology</label>
</div>
<div class="row child-level-one" id="topology-note-wrapper">
<div class="mt-3 py-2 note">
<i class="icon dds__icon dds__icon--alert-info-cir"></i>
<span class="h6" id="topology-note"></span>
</div>
</div>
</div>



<div class="row mb-4 vSphere">
<div class="col-sm-12">
<input class="form-check-input" type="checkbox" id="vSphere" value="" onchange="onVSphereChange()" oninput="validateInput(validateForm, CONSTANTS)">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ const certmanagerNote = 'If cert-manager is enabled, ensure the cert-manager CRD
const veleroNote = 'If Velero is enabled, please add the respective credentials and configurations in the YAML file.';
const podmonNote = 'Uncomment tolerations under node property, if CSM for Resiliency and CSI Driver pods monitor are enabled in the generated YAML';
const authorizationNote = 'Only the Authorization sidecar is enabled by the CSM Installation Wizard. The Proxy Server has to be installed and configured separately';
const topologyNote = 'If Node Topology is enabled, make sure topology configmap is created';
const replicationNote = 'If Replication is enabled, ensure the Replication CRDs are installed and secrets are created. Enter the target cluster ID or "self" in case of stretched/single cluster';
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ const CONSTANTS = {
POWERSCALE_NAMESPACE: "isilon",
UNITY_NAMESPACE: "unity",
POWERSTORE_LABEL_VALUE: "csi-powerstore",
POWERMAX_LABEL_VALUE: "csi-powermax",
POWERSCALE_LABEL_VALUE: "csi-isilon",
VALUES: "values",
TEMP_DIR: "templates",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@
var template = "";
var version = "";
var observabilityEnabled = false;
var observabilityOperatorEnabled = false;
var authorizationEnabled = false;
var replicationEnabled = false;


function generateYamlFile(tmpl) {
var yamlFile = null;
setMap(version);
Expand All @@ -46,6 +48,7 @@ function setValues(csmMapValues, CONSTANTS_PARAM) {
DriverValues.controllerCount = document.getElementById("controller-count").value;
DriverValues.volNamePrefix = document.getElementById("vol-name-prefix").value;
DriverValues.snapNamePrefix = document.getElementById("snapshot-prefix").value;
DriverValues.targetClusterId = document.getElementById("target-cluster-id").value;
DriverValues.fsGroupPolicy = document.getElementById("fsGroup-Policy").value;
DriverValues.driverNamespace = document.getElementById("driver-namespace").value;
DriverValues.labelValue = document.getElementById("label-value").value;
Expand Down Expand Up @@ -82,27 +85,37 @@ function setValues(csmMapValues, CONSTANTS_PARAM) {
DriverValues.snapshot = $("#snapshot").prop('checked') ? true : false;
DriverValues.vgsnapshot = $("#vgsnapshot").prop('checked') ? true : false;
DriverValues.resizer = $("#resizer").prop('checked') ? true : false;
DriverValues.iscsichap = $("#iscsichap").prop('checked') ? true : false;
DriverValues.healthMonitor = $("#health-monitor").prop('checked') ? true : false;
DriverValues.replication = $("#replication").prop('checked') ? true : false;
DriverValues.migration = $("#migration").prop('checked') ? true : false;
DriverValues.observability = $("#observability").prop('checked') ? true : false;
DriverValues.observabilityMetrics = $("#observability-metrics").prop('checked') ? true : false;
DriverValues.observabilityOperator = $("#observability-operator").prop('checked') ? true : false;
DriverValues.observabilityOperatorMetrics = $("#observability-operator-metrics").prop('checked') ? true : false;
DriverValues.observabilityOperatorTopology = $("#observability-operator-topology").prop('checked') ? true : false;
DriverValues.observabilityOperatorOtel = $("#observability-operator-otel").prop('checked') ? true : false;
DriverValues.authorization = $("#authorization").prop('checked') ? true : false;
DriverValues.resiliency = $("#resiliency").prop('checked') ? true : false;
DriverValues.operatorResiliency = $("#operator-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.certManagerEnabled = $("#certmanager").prop('checked') ? true : false;
DriverValues.topologyEnabled = $("#topology").prop('checked') ? true : false;
observabilityEnabled = DriverValues.observability;
observabilityOperatorEnabled = DriverValues.observabilityOperator;
authorizationEnabled = DriverValues.authorization;
replicationEnabled = DriverValues.replication;

DriverValues.storageArrayId = $("#storage-array-id").val();
DriverValues.storageArrayEndpointUrl = $("#storage-array-endpoint-url").val() || '""';
DriverValues.storageArrayBackupEndpointUrl = $("#storage-array-backup-endpoint-url").val() || '""';
DriverValues.manageArrayId = $("#manage-array-id").val() || '""';
DriverValues.manageArrayEndpointUrl = $("#manage-array-endpoint-url").val() || '""';
DriverValues.clusterPrefix = $("#cluster-prefix").val();
DriverValues.portGroups = $("#port-groups").val();
DriverValues.transportProtocol = $("#transport-protocol").val();

DriverValues.vSphereEnabled = $("#vSphere").prop('checked') ? true : false;
DriverValues.vSphereFCPortGroup = $("#vSphere-fc-port-group").val();
Expand All @@ -117,6 +130,7 @@ function createYamlString(yamlTpl, yamlTplValues, driverParam, CONSTANTS_PARAM)
yamlTpl = yamlTpl.replaceAll("$CONTROLLER_COUNT", yamlTplValues.controllerCount);
yamlTpl = yamlTpl.replaceAll("$VOLUME_NAME_PREFIX", yamlTplValues.volNamePrefix);
yamlTpl = yamlTpl.replaceAll("$SNAP_NAME_PREFIX", yamlTplValues.snapNamePrefix);
yamlTpl = yamlTpl.replaceAll("$TARGET_CLUSTER_ID", yamlTplValues.targetClusterId);
yamlTpl = yamlTpl.replaceAll("$FSGROUP_POLICY", yamlTplValues.fsGroupPolicy);
yamlTpl = yamlTpl.replaceAll("$NAMESPACE", yamlTplValues.driverNamespace);
yamlTpl = yamlTpl.replaceAll("$CONTROLLER_POD_NODE_SELECTOR", yamlTplValues.controllerPodsNodeSelector);
Expand All @@ -125,12 +139,15 @@ function createYamlString(yamlTpl, yamlTplValues, driverParam, CONSTANTS_PARAM)
yamlTpl = yamlTpl.replaceAll("$VG_SNAPSHOT_ENABLED", yamlTplValues.vgsnapshot);
yamlTpl = yamlTpl.replaceAll("$SNAPSHOT_ENABLED", yamlTplValues.snapshot);
yamlTpl = yamlTpl.replaceAll("$RESIZER_ENABLED", yamlTplValues.resizer);
yamlTpl = yamlTpl.replaceAll("$ISCSI_CHAP_ENABLED", yamlTplValues.iscsichap);
yamlTpl = yamlTpl.replaceAll("$TOPOLOGY_ENABLED", yamlTplValues.topologyEnabled);
yamlTpl = yamlTpl.replaceAll("$REPLICATION_ENABLED", yamlTplValues.replication);
yamlTpl = yamlTpl.replaceAll("$MIGRATION_ENABLED", yamlTplValues.migration);
yamlTpl = yamlTpl.replaceAll("$AUTHORIZATION_ENABLED", yamlTplValues.authorization);
yamlTpl = yamlTpl.replaceAll("$AUTHORIZATION_PROXY_HOST", yamlTplValues.authorizationProxyHost);
yamlTpl = yamlTpl.replaceAll("$AUTHORIZATION_SKIP_CERTIFICATE_VALIDATION", yamlTplValues.authorizationSkipCertValidation);
yamlTpl = yamlTpl.replaceAll("$OBSERVABILITY_ENABLED", yamlTplValues.observability);
yamlTpl = yamlTpl.replaceAll("$OBSERVABILITY_OPERATOR_ENABLED", yamlTplValues.observabilityOperator);
yamlTpl = yamlTpl.replaceAll("$RESILIENCY_ENABLED", yamlTplValues.resiliency);
yamlTpl = yamlTpl.replaceAll("$OPERATOR_RESILIENCY_ENABLED", yamlTplValues.operatorResiliency);
yamlTpl = yamlTpl.replaceAll("$LABEL_VALUE", yamlTplValues.labelValue);
Expand All @@ -147,8 +164,11 @@ function createYamlString(yamlTpl, yamlTplValues, driverParam, CONSTANTS_PARAM)
yamlTpl = yamlTpl.replaceAll("$POWERMAX_STORAGE_ARRAY_ENDPOINT_URL", yamlTplValues.storageArrayEndpointUrl);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_STORAGE_ARRAY_BACKUP_ENDPOINT_URL", yamlTplValues.storageArrayBackupEndpointUrl);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_MANAGEMENT_SERVERS_ENDPOINT_URL", yamlTplValues.storageArrayEndpointUrl);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_MANAGE_ARRAY_ID", yamlTplValues.manageArrayId);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_MANAGE_ARRAY_ENDPOINT_URL", yamlTplValues.manageArrayEndpointUrl);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_CLUSTER_PREFIX", yamlTplValues.clusterPrefix);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_PORT_GROUPS", yamlTplValues.portGroups);
yamlTpl = yamlTpl.replaceAll("$NODE_TRANSPORT_PROTOCOL", yamlTplValues.transportProtocol);
yamlTpl = yamlTpl.replaceAll("$VSPHERE_ENABLED", yamlTplValues.vSphereEnabled);
yamlTpl = yamlTpl.replaceAll("$VSPHERE_FC_PORT_GROUP", yamlTplValues.vSphereFCPortGroup);
yamlTpl = yamlTpl.replaceAll("$VSPHERE_FC_HOST_NAME", yamlTplValues.vSphereFCHostName);
Expand Down Expand Up @@ -190,6 +210,11 @@ function createYamlString(yamlTpl, yamlTplValues, driverParam, CONSTANTS_PARAM)
yamlTpl = yamlTpl.replaceAll("$POWERSCALE_OBSERVABILITY_METRICS_ENABLED", true);
}
}
yamlTpl = yamlTpl.replaceAll("$OBSERVABILITY_OPERATOR_TOPOLOGY", yamlTplValues.observabilityOperatorTopology);
yamlTpl = yamlTpl.replaceAll("$OBSERVABILITY_OPERATOR_METRICS", yamlTplValues.observabilityOperatorMetrics);
yamlTpl = yamlTpl.replaceAll("$OBSERVABILITY_OPERATOR_OTEL", yamlTplValues.observabilityOperatorOtel);


yamlTpl = yamlTpl.replaceAll("$POWERSTORE_OBSERVABILITY_METRICS_ENABLED", false);
yamlTpl = yamlTpl.replaceAll("$POWERMAX_OBSERVABILITY_METRICS_ENABLED", false);
yamlTpl = yamlTpl.replaceAll("$POWERFLEX_OBSERVABILITY_METRICS_ENABLED", false);
Expand Down
Loading