| sidebar | sidebar |
|---|---|
| permalink | reference_api_workflow01.html |
| keywords | rest api, deploy rest api, rest, workflow, create cluster, curl, json |
| summary | You can deploy a single-node ONTAP Select cluster on a VMware ESXi host managed by vCenter. The cluster is created with an evaluation license. |
You can deploy a single-node ONTAP Select cluster on a VMware ESXi host managed by vCenter. The cluster is created with an evaluation license.
The cluster creation workflow differs in the following situations:
-
The ESXi host is not managed by vCenter (standalone host)
-
Multiple nodes or hosts are used within the cluster
-
Cluster is deployed in a production environment with a purchased license
-
The KVM hypervisor is used instead of VMware ESXi
When deploying to an ESXi host managed by a vCenter server, you must add a credential before registering the host. The Deploy administration utility can then use the credential to authenticate to vCenter.
| Category | HTTP verb | Path |
|---|---|---|
Deploy |
POST |
/security/credentials |
- Curl
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step01 'https://10.21.191.150/api/security/credentials'- JSON input (step01)
{
"hostname": "vcenter.company-demo.com",
"type": "vcenter",
"username": "misteradmin@vsphere.local",
"password": "mypassword"
}- Processing type
-
Asynchronous
- Output
-
-
Credential ID in the location response header
-
Job object
-
You must add a hypervisor host where the virtual machine containing the ONTAP Select node will run.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
POST |
/hosts |
- Curl
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step02 'https://10.21.191.150/api/hosts'- JSON input (step02)
{
"hosts": [
{
"hypervisor_type": "ESX",
"management_server": "vcenter.company-demo.com",
"name": "esx1.company-demo.com"
}
]
}- Processing type
-
Asynchronous
- Output
-
-
Host ID in the location response header
-
Job object
-
When you create an ONTAP Select cluster, the basic cluster configuration is registered and the node names are automatically generated by Deploy.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
POST |
/clusters |
- Curl
-
The query parameter node_count should be set to 1 for a single-node cluster.
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step03 'https://10.21.191.150/api/clusters? node_count=1'- JSON input (step03)
{
"name": "my_cluster"
}- Processing type
-
Synchronous
- Output
-
-
Cluster ID in the location response header
-
There are several attributes you must provide as part of configuring the cluster.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
PATCH |
/clusters/{cluster_id} |
- Curl
-
You must provide the cluster ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step04 'https://10.21.191.150/api/clusters/CLUSTERID'- JSON input (step04)
{
"dns_info": {
"domains": ["lab1.company-demo.com"],
"dns_ips": ["10.206.80.135", "10.206.80.136"]
},
"ontap_image_version": "9.5",
"gateway": "10.206.80.1",
"ip": "10.206.80.115",
"netmask": "255.255.255.192",
"ntp_servers": {"10.206.80.183"}
}- Processing type
-
Synchronous
- Output
-
None
The Deploy administration utility automatically generates the node identifiers and names when a cluster is created. Before you can configure a node, you must retrieve the assigned ID.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
GET |
/clusters/{cluster_id}/nodes |
- Curl
-
You must provide the cluster ID.
curl -iX GET -u admin:<password> -k 'https://10.21.191.150/api/clusters/CLUSTERID/nodes?fields=id,name'- Processing type
-
Synchronous
- Output
-
-
Array records each describing a single node with the unique ID and name
-
You must provide the basic configuration for the node, which is the first of three API calls used to configure a node.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
PATH |
/clusters/{cluster_id}/nodes/{node_id} |
- Curl
-
You must provide the cluster ID and node ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step06 'https://10.21.191.150/api/clusters/CLUSTERID/nodes/NODEID'- JSON input (step06)
-
You must provide the host ID where the ONTAP Select node will run.
{
"host": {
"id": "HOSTID"
},
"instance_type": "small",
"ip": "10.206.80.101",
"passthrough_disks": false
}- Processing type
-
Synchronous
- Output
-
None
You must identify the data and management networks used by the node in the single-node cluster. The internal network is not used with a single-node cluster.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
GET |
/clusters/{cluster_id}/nodes/{node_id}/networks |
- Curl
-
You must provide the cluster ID and node ID.
curl -iX GET -u admin:<password> -k 'https://10.21.191.150/api/ clusters/CLUSTERID/nodes/NODEID/networks?fields=id,purpose'- Processing type
-
Synchronous
- Output
-
-
Array of two records each describing a single network for the node, including the unique ID and purpose
-
You must configure the data and management networks. The internal network is not used with a single-node cluster.
|
Note
|
Issue the following API call two times, once for each network. |
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
PATCH |
/clusters/{cluster_id}/nodes/{node_id}/networks/{network_id} |
- Curl
-
You must provide the cluster ID, node ID, and network ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step08 'https://10.21.191.150/api/clusters/ CLUSTERID/nodes/NODEID/networks/NETWORKID'- JSON input (step08)
-
You need to provide the name of the network.
{
"name": "sDOT_Network"
}- Processing type
-
Synchronous
- Output
-
None
The final step in configuring a node is to attach a storage pool. You can determine the available storage pools through the vSphere web client, or optionally through the Deploy REST API.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
PATCH |
/clusters/{cluster_id}/nodes/{node_id}/networks/{network_id} |
- Curl
-
You must provide the cluster ID, node ID, and network ID.
curl -iX PATCH -H 'Content-Type: application/json' -u admin:<password> -k -d @step09 'https://10.21.191.150/api/clusters/ CLUSTERID/nodes/NODEID'- JSON input (step09)
-
The pool capacity is 2 TB.
{
"pool_array": [
{
"name": "sDOT-01",
"capacity": 2147483648000
}
]
}- Processing type
-
Synchronous
- Output
-
None
After the cluster and node have been configured, you can deploy the cluster.
| Category | HTTP verb | Path |
|---|---|---|
Cluster |
POST |
/clusters/{cluster_id}/deploy |
- Curl
-
You must provide the cluster ID.
curl -iX POST -H 'Content-Type: application/json' -u admin:<password> -k -d @step10 'https://10.21.191.150/api/clusters/CLUSTERID/deploy'- JSON input (step10)
-
You must provide the password for the ONTAP administrator account.
{
"ontap_credentials": {
"password": "mypassword"
}
}- Processing type
-
Asynchronous
- Output
-
-
Job object
-
Deploy a 90-day evaluation instance of an ONTAP Select cluster