Deploy a PowerFlex cluster using REST API commands
After you have prepared the CSV topology file, use the REST API to parse it and upload the configuration to
PowerFlex Manager, and then deploy block storage resources using REST API commands. This procedure is only recommended for advanced users familiar with working with the REST API.
Prerequisites
Ensure that you have prepared the CSV topology file.
Ensure that you know the load balancer IP address and user credentials of
PowerFlex Manager. All the steps performed in this procedure must be performed using the load balancer IP address. The load balancer IP address is the same IP address you are using to access
PowerFlex Manager.
Ensure that you have the software packages of the
PowerFlex core components that you want to deploy, and the ActiveMQ package.
Log in using the REST API, and make a note of the Keycloak token that was returned from
/auth/login or from
/api/gatewayLogin.
About this task
The following procedure provides examples using cURL.
Steps
Get the configuration from the CSV file, by parsing it using the
PowerFlex REST API. Use the command
POST /im/types/Configuration/instances/actions/parseFromCSV, where the body is the CSV file reference. For example:
where:
{token} is the Keycloak token,
<PATH_TO_CSV_FILE> is the path to the CSV topology file, and
<IP_ADDRESS> is the
PowerFlex Manager IP address.
The command returns a JSON file containing the required cluster configuration. The installation command requires this file in order to install resources. Save this file.
Add packages:
Copy the installation packages of the required core components (including ActiveMQ RPM) to:
"/usr/local/tomcat/temp/scaleio".
Open the shell, and run the following command:
kubectl get pods -n powerflex | grep block-legacy
Make a note of the block-legacy-gateway ID that is returned in the first line of the command output. For example, in this sample output, the ID is
76594f9459-mqgxj:
where
<RPM_MACHINE_IPS> is the IP address where the packages are saved, and
<RPMS_LOCATION> is the path to the packages' location.
Install block storage resources using the
PowerFlex REST API. Use the command
POST /im/types/Configuration/actions/install, where the body is the configuration that was returned from parsing the CSV file.
If the parameter
systemId (type string) is added to the configuration, the cluster is created with the given ID. Otherwise, the gateway generates an ID.
Optional parameters:
noUpload—Skip upload package phase (true/false, default if false)
noInstall—Skip install package phase (true/false, default if false)
noConfigure—Skip configure phaseand repository files (true/false, default if false)
noSecurityBootstrap—Skip security bootstrap (part of install phase) (true/false, default if true)
noLinuxDevValidation (true/false, default if true)
sdsInstances (number, optional)
extend—extend an existing system (true/false, default if false)
globalZeroPadPolicy (true/false, default if true)
forceDeviceTakeover—Clean devices before installing SDS (without it, installation will fail when it run after uninstall; must not be used in production) (true/false, optional)
where:
{token} is the Keycloak token,
<IP_ADDRESS> is the
PowerFlex Manager IP address, and
<PATH> is the path to the JSON configuration file that was output in step 1.
Installation is asynchronous and consists of four stages: query, upload, install, and configure. Manually monitor and move from one phase to the next one, using the commands
queryPhaseState and
moveToNextPhase. You can also monitor the progress of each stage by viewing events in
PowerFlex Manager.
The following is an example of an installation event: