Deploy Edge Cluster With Custom Form Factor in VCF via API

Recently while working in my lab, I was facing an issue with edge cluster deployment in workload domain. Edge Cluster deployment was failing with below error:

Since my lab is a nested lab, I bumped cpu on Esxi hosts to 10 and retriggered the task, but deployment was still failing with same error. The error is loud and clear that Edge is deployed in LARGE form factor and ESXi hosts in Workload Domain was unable to supply enough CPUs.

And that is when I was thinking is it possible to deploy edge cluster with medium or small form factor. SDDC Manager UI don’t provide an option to change form factor of edges and this can be achieved via API only.

Below are the steps for edge cluster deployment via API.

1: Get Cluster ID: The json payload used for Edge Cluster deployment needs ID of cluster where edge vm’s will be deployed. This can be fetched via below API

Sample Output: Response output of above call returns id of  cluster

2: Validate Edge Cluster Spec: Before kicking edge cluster deployment, it is advisable to run validation task to ensure all parameters passed in payload json are correct.

Response Output: Validation POST call returns an id in response output. This id is used to check status of validation task.

3: Check Validation Status: Few checks are performed as part of validation and all the checks should report as passed for a successful deployment. Status of validation task can be obtained via GET call. For a successful validation, output looks like below

4: Deploy Edge Cluster: Once validation check is successful, edge cluster deployment can be kicked via same json which was used in validation step.

Response Output: Output of above call returns a task id which is used to check status of deployment task

5: Check Edge Cluster Deployment Status: Edge cluster deployment status can be fetched via GET call by supplying task-id obtained in response output of deployment POST call. For a successful deployment, you will see “status”: “Successful”in the response output of the GET task call.

And that’s it for this post.

I hope you enjoyed reading this post. Feel free to share this on social media if it is worth sharing 🙂

Leave a Reply