Vcf Management Components APIs
APIs for handling VCF Management Components
Table of Contents
1. VCF Management Components Deployment
The deployment of VCF Management components from VCF Installer is optional. If this is skipped, after the deployment of core components from VCF Installer, you can deploy and manage the VCF Management Components from SDDC Manager. The same API can be leveraged to join existing instances of VCF Management Components. To guarantee the success of the VCF Management Components' deployment operation, you should pre-validate the deployment input.
1.1. Prerequisites
The following data is required:
Unique hostnames for each of the VCF Management Components
VCF Operations fleet management specification to include API and root passwords for a greenfield deployment. Only API password is sufficient for a join usecase.
VCF Operations specification to include details of nodes, API password, appliance size and optionally Load Balancer FQDN
VCF Automation specification to include API Password, IP Pool, Internal Cluster CIDR and Node Prefix
Additional prerequisites:
The VCF Management Components binaries need to be downloaded on the SDDC Manager
Optional - If the VCF Management components need to be deployed on existing NSX segments, these need to be specified in VcfManagementComponentsInfrastructureSpec. If not specified, all the components will be deployed on Management DVPG.
1.2. Steps
- Assemble the VCF Management Components deployment input specification.
Tip : Refer to VcfManagementComponentsSpec.
- Trigger the VCF Management Components deployment input specification validations.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vcf-management-components/validations' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"vcfOperationsFleetManagementSpec" : {
"hostname" : "vcf-ops-fm",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx"
},
"vcfOperationsSpec" : {
"nodes" : [ {
"hostname" : "vcf-ops-master",
"rootUserPassword" : "3e3c268c-9d16-4c0d-89e6-7b6f0d014ded",
"type" : "master"
}, {
"hostname" : "vcf-ops-data",
"rootUserPassword" : "45f645ec-f4fe-47cb-a7d1-93300e96480c",
"type" : "replica"
}, {
"hostname" : "vcf-ops-replica",
"rootUserPassword" : "a6d9b1ad-b968-4865-9018-d4259d732541",
"type" : "data"
} ],
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "medium"
},
"vcfOperationsCollectorSpec" : {
"hostname" : "vcf-ops-cp",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "small"
},
"vcfAutomationSpec" : {
"hostname" : "vcf-automation",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"ipPool" : [ "10.0.0.81", "10.0.0.82", "10.0.0.83", "10.0.0.84" ],
"internalClusterCidr" : "100.64.0.0/15"
},
"vcfMangementComponentsInfrastructureSpec" : {
"localRegionNetwork" : {
"networkName" : "Mgmt-localRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.12.0"
},
"xRegionNetwork" : {
"networkName" : "Mgmt-xRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.14.0"
}
}
}'
HTTP Request
POST /v1/vcf-management-components/validations HTTP/1.1
Content-Type: application/json
Content-Length: 1436
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"vcfOperationsFleetManagementSpec" : {
"hostname" : "vcf-ops-fm",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx"
},
"vcfOperationsSpec" : {
"nodes" : [ {
"hostname" : "vcf-ops-master",
"rootUserPassword" : "3e3c268c-9d16-4c0d-89e6-7b6f0d014ded",
"type" : "master"
}, {
"hostname" : "vcf-ops-data",
"rootUserPassword" : "45f645ec-f4fe-47cb-a7d1-93300e96480c",
"type" : "replica"
}, {
"hostname" : "vcf-ops-replica",
"rootUserPassword" : "a6d9b1ad-b968-4865-9018-d4259d732541",
"type" : "data"
} ],
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "medium"
},
"vcfOperationsCollectorSpec" : {
"hostname" : "vcf-ops-cp",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "small"
},
"vcfAutomationSpec" : {
"hostname" : "vcf-automation",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"ipPool" : [ "10.0.0.81", "10.0.0.82", "10.0.0.83", "10.0.0.84" ],
"internalClusterCidr" : "100.64.0.0/15"
},
"vcfMangementComponentsInfrastructureSpec" : {
"localRegionNetwork" : {
"networkName" : "Mgmt-localRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.12.0"
},
"xRegionNetwork" : {
"networkName" : "Mgmt-xRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.14.0"
}
}
}
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 158
{
"id" : "50673a01-c204-4e8b-a711-454c2cf3dc83",
"description" : "Validate VCF Management Components specification",
"executionStatus" : "IN_PROGRESS"
}
Track the task status using the "id" from the response. The GET URL is set in the header response and can be used directly. Refer to: Get a Task.
If the "status" is "IN_PROGRESS", the task is still in progress.
If the "status" is "SUCCESSFUL", the task is completed successfully.
If the "status" is "FAILED", resolve the uncovered issues by the validations and re-trigger the validations API.
When validations complete successfully without any errors, you can proceed with the VCF Management Components deployment.
Trigger the VCF Management Components deployment. This will start a long-running task whose details can be obtained from the HTTP response.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vcf-management-components' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"vcfOperationsFleetManagementSpec" : {
"hostname" : "vcf-ops-fm",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx"
},
"vcfOperationsSpec" : {
"nodes" : [ {
"hostname" : "vcf-ops-master",
"rootUserPassword" : "f513c103-1796-4270-9965-8358ff6dca3f",
"type" : "master"
}, {
"hostname" : "vcf-ops-data",
"rootUserPassword" : "96ece389-7805-4fa8-8f57-ce3c0cdf90b7",
"type" : "replica"
}, {
"hostname" : "vcf-ops-replica",
"rootUserPassword" : "39d09502-340b-4057-b50d-0be656a9ecc0",
"type" : "data"
} ],
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "medium"
},
"vcfOperationsCollectorSpec" : {
"hostname" : "vcf-ops-cp",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "small"
},
"vcfAutomationSpec" : {
"hostname" : "vcf-automation",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"ipPool" : [ "10.0.0.81", "10.0.0.82", "10.0.0.83", "10.0.0.84" ],
"internalClusterCidr" : "100.64.0.0/15"
},
"vcfMangementComponentsInfrastructureSpec" : {
"localRegionNetwork" : {
"networkName" : "Mgmt-localRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.12.0"
},
"xRegionNetwork" : {
"networkName" : "Mgmt-xRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.14.0"
}
}
}'
HTTP Request
POST /v1/vcf-management-components HTTP/1.1
Content-Type: application/json
Content-Length: 1436
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"vcfOperationsFleetManagementSpec" : {
"hostname" : "vcf-ops-fm",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx"
},
"vcfOperationsSpec" : {
"nodes" : [ {
"hostname" : "vcf-ops-master",
"rootUserPassword" : "f513c103-1796-4270-9965-8358ff6dca3f",
"type" : "master"
}, {
"hostname" : "vcf-ops-data",
"rootUserPassword" : "96ece389-7805-4fa8-8f57-ce3c0cdf90b7",
"type" : "replica"
}, {
"hostname" : "vcf-ops-replica",
"rootUserPassword" : "39d09502-340b-4057-b50d-0be656a9ecc0",
"type" : "data"
} ],
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "medium"
},
"vcfOperationsCollectorSpec" : {
"hostname" : "vcf-ops-cp",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "small"
},
"vcfAutomationSpec" : {
"hostname" : "vcf-automation",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"ipPool" : [ "10.0.0.81", "10.0.0.82", "10.0.0.83", "10.0.0.84" ],
"internalClusterCidr" : "100.64.0.0/15"
},
"vcfMangementComponentsInfrastructureSpec" : {
"localRegionNetwork" : {
"networkName" : "Mgmt-localRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.12.0"
},
"xRegionNetwork" : {
"networkName" : "Mgmt-xRegion",
"subnetMask" : "255.255.255.0",
"gateway" : "10.22.14.0"
}
}
}
HTTP Response
HTTP/1.1 202 Accepted
Track the task status using the "id" from the previous response. The GET URL is set in the header response and can be used directly. Refer to: Get a Task.
If the "status" is "IN_PROGRESS", the task is still in progress.
If the "status" is "SUCCESSFUL", the task is completed successfully.
If the "status" is "FAILED", the task can be re-executed.
Tip : Refer to: Retry a Task.
1.3. Related APIs
[_deployvcfmanagementcomponents] API [_validatevcfmanagementcomponents] API [_gettask] API [_getvcfmanagementcomponentstasks] API [_getvcfmanagementcomponentstaskspec] API
2. Get VCF Management Components Task Specification
This is the API to get the specification used for deployment of VCF Management Components from SDDC Manager.
2.1. Prerequisites
- ID of the VCF Management deployment task
2.2. Steps
- Invoke the API by providing the ID of the task as input.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/vcf-management-components/tasks/4ff3cb48-f5d7-48f9-8cf8-da7fd09784c1/spec' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/vcf-management-components/tasks/4ff3cb48-f5d7-48f9-8cf8-da7fd09784c1/spec HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1709
{
"vcfOperationsFleetManagementSpec" : {
"hostname" : "vcf-ops-fm",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"useExistingDeployment" : null,
"version" : null,
"sslThumbprint" : null
},
"vcfOperationsSpec" : {
"nodes" : [ {
"hostname" : "vcf-ops-master",
"rootUserPassword" : "160cb88f-2e4b-4c3a-972c-aad674aa14e0",
"type" : "master",
"sslThumbprint" : null
}, {
"hostname" : "vcf-ops-data",
"rootUserPassword" : "47269ce6-0fd9-4e42-875a-c2a161697695",
"type" : "replica",
"sslThumbprint" : null
}, {
"hostname" : "vcf-ops-replica",
"rootUserPassword" : "e215770b-9541-45df-bc1d-105858f524e3",
"type" : "data",
"sslThumbprint" : null
} ],
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "medium",
"loadBalancerFqdn" : null,
"useExistingDeployment" : null,
"version" : null
},
"vcfOperationsCollectorSpec" : {
"hostname" : "vcf-ops-cp",
"rootUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"applianceSize" : "small",
"useExistingDeployment" : null,
"version" : null,
"sslThumbprint" : null
},
"vcfAutomationSpec" : {
"hostname" : "vcf-automation",
"adminUserPassword" : "xxxxxxxxxxxxxxxxxxxx",
"ipPool" : [ "10.0.0.81", "10.0.0.82", "10.0.0.83", "10.0.0.84" ],
"internalClusterCidr" : "100.64.0.0/15",
"nodePrefix" : "vcfa-node-prefix",
"useExistingDeployment" : null,
"version" : null,
"sslThumbprint" : null
},
"vcfMangementComponentsInfrastructureSpec" : null,
"vcfInstanceName" : null,
"existingDataStore" : null,
"workflowType" : null
}
2.3. Related APIs
[_deployvcfmanagementcomponents] API
[_getvcfmanagementcomponentstaskbyid] API
[_getvcfmanagementcomponentstaskspec] API
Last updated 2025-03-21 15:13:04 +0530