Federation APIs
APIs for managing Federation
1. Create a Multi Site Management Federation
A federation is a group of Cloud Foundation instances, such that each member can view information about the other Cloud Foundation instances in the group. The federation creator is granted the controller role by default.
You can create multiple federations within your organization, but global visibility is available only within a federation. Members can belong to only a single federation at a time.
1.1. Prerequisites
The following data is required
Name of the federation
Member Details
FQDN of the Member
Role of the Member (CONTROLLER)
Site Type (DATACENTER)
Site Name
City where the site is located
State where the site is located (Optional)
Country where the site is located
Location coordinates
Longitude
Latitude
Ensure, VCF Instance Role is set to NOT_JOINED.
Tip : Refer to: Get fact about a VMware Cloud Foundation API
1.2. Steps
- Trigger the Create Federation
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWR....' \
-d '{
"federationName" : "New Federation",
"memberJoinDetail" : {
"role" : "CONTROLLER",
"fqdn" : "sfo-vcf01.rainpole.io",
"siteType" : "DATACENTER",
"siteName" : "Palo Alto Epic Center",
"country" : "USA",
"state" : "California",
"city" : "Palo Alto",
"coordinate" : {
"longitude" : -122.838,
"latitude" : 37.286
}
}
}'
HTTP Request
PUT /v1/sddc-federation HTTP/1.1
Content-Type: application/json
Content-Length: 369
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....
{
"federationName" : "New Federation",
"memberJoinDetail" : {
"role" : "CONTROLLER",
"fqdn" : "sfo-vcf01.rainpole.io",
"siteType" : "DATACENTER",
"siteName" : "Palo Alto Epic Center",
"country" : "USA",
"state" : "California",
"city" : "Palo Alto",
"coordinate" : {
"longitude" : -122.838,
"latitude" : 37.286
}
}
}
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 246
{
"status" : "SUCCEEDED",
"operation" : null,
"taskId" : "67e1515d-4400-4876-8d1c-809085294bc0",
"remoteOperationTask" : null,
"progressDetails" : null,
"created" : null,
"lastUpdated" : null,
"errors" : null,
"payload" : null
}
Create federation API returns a task object. Task object has the task id.
Poll for the status of the workflow using the task ID with request
TIP: Refer to: Get a Task
Validate the input specification.
- Validates if VCF instance Role is other than CONTROLLER
Initialize the fabric services
Initialize the topics
Initialize persistent store
Add member to federation
Update persistent store with new member details
If the "status" is "SUCCEEDED", the task is completed successfully.
If the "status" is "FAILED", the task can be re-executed.
2. Get Multi Site Management Federation Details
2.1. Prerequisites
2.2. Steps
- Invoke the API.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation' -i -X GET \
-H 'Authorization: Bearer etYWR....'
HTTP Request
GET /v1/sddc-federation HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3212
[ {
"memberDetails" : {
"role" : "CONTROLLER",
"fqdn" : "sfo-vcf01.rainpole.io",
"siteType" : "DATACENTER",
"siteName" : "Palo Alto Epic Center",
"country" : "USA",
"state" : "California",
"city" : "Palo Alto",
"coordinate" : {
"longitude" : -122.838,
"latitude" : 37.286
}
},
"memberInventory" : {
"capacity" : {
"summary" : {
"domainCount" : 2,
"aggregatedCapacity" : {
"cpu" : {
"free" : 58.795,
"total" : 79.799,
"used" : 21.00399,
"unallocated" : 0.0,
"unit" : "GHZ"
},
"hostCount" : {
"total" : 10,
"unallocated" : 4,
"used" : 6
},
"datastores" : [ {
"used" : 0.866,
"datastoreName" : "sfo-m01-cl01-ds-vsan01",
"datastoreType" : "VSAN",
"freeSpace" : 5.839,
"capacity" : 6.705,
"unallocated" : 2.694,
"unit" : "TB"
}, {
"used" : 0.866,
"datastoreName" : "sfo-m01-cl01-ds-vsan02",
"datastoreType" : "VSAN",
"freeSpace" : 5.839,
"capacity" : 6.705,
"unallocated" : 2.694,
"unit" : "TB"
} ],
"memory" : {
"free" : 76.109,
"total" : 375.0,
"used" : 298.89,
"unallocated" : 0.0,
"unit" : "GB"
}
},
"domainTypeInfo" : [ {
"type" : null,
"domainCount" : 2,
"aggregatedCapacity" : {
"cpu" : {
"free" : 58.795,
"total" : 79.799,
"used" : 21.00399,
"unallocated" : 0.0,
"unit" : "GHZ"
},
"hostCount" : {
"total" : 10,
"unallocated" : 4,
"used" : 6
},
"datastores" : [ {
"used" : 0.866,
"datastoreName" : "sfo-m01-cl01-ds-vsan01",
"datastoreType" : "VSAN",
"freeSpace" : 5.839,
"capacity" : 6.705,
"unallocated" : 2.694,
"unit" : "TB"
}, {
"used" : 0.866,
"datastoreName" : "sfo-m01-cl01-ds-vsan02",
"datastoreType" : "VSAN",
"freeSpace" : 5.839,
"capacity" : 6.705,
"unallocated" : 2.694,
"unit" : "TB"
} ],
"memory" : {
"free" : 76.109,
"total" : 375.0,
"used" : 298.89,
"unallocated" : 0.0,
"unit" : "GB"
}
}
} ],
"domainInfo" : null
}
},
"inventoryInfo" : null,
"softwareInfo" : {
"pendingUpdates" : 1
},
"creationTime" : null,
"createTime" : "1595522545"
},
"memberLiveness" : {
"livelinessCode" : "GREEN",
"livelinessDetails" : [ "The vcf site Palo Alto Epic Centeris live" ]
},
"memberHealth" : {
"healthCode" : "GREEN",
"healthDetails" : [ "Category: CPU, usage: 60.0, and it is normal." ]
}
} ]
This API can be used to get list of all VCF instances in the federation with details.
VCF instance details
VCF instance inventory
VCF instance liveness
VCF instance health
3. Tear Down Federation
You can dismantle a federation if you are the last controller member in the federation.
Only members with the controller role can dismantle a federation.
3.1. Prerequisites
No request body is needed.
Invoking SDDC Manager must be of Controller role, and the only one in the federation.
3.2. Steps
When Teardown API is invoked, it does the following
All fabric services previously set up will be shut down.
Persistent store will be archived and cleaned up.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/sddc-federation' -i -X DELETE \
-H 'Authorization: Bearer etYWR....'
HTTP Request
DELETE /v1/sddc-federation HTTP/1.1
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWR....
HTTP Response
HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Length: 246
{
"status" : "SUCCEEDED",
"operation" : null,
"taskId" : "62565abd-576b-46ac-bb34-2d5654dbab2b",
"remoteOperationTask" : null,
"progressDetails" : null,
"created" : null,
"lastUpdated" : null,
"errors" : null,
"payload" : null
}
Last updated 2021-11-03 05:03:41 PDT