Network Pools
APIs for managing Network Pools
Table of Contents
1. Create a Network Pool
-
Used to create a Network pool in the system. The added network pool would be used during domain deployments, host commission/expansion flows.
-
If a network pool which is already added before is added, you will get an error with HTTP status 400.
-
If a malformed network pool is added (payload for network parameters, name which is already exist), you will get an error.
1.1. Prerequisites
The following data is required
-
Name
-
List of networks associated with network pool in which each network has
-
Network type - It can be VSAN, VMOTION or NFS Type.
-
VLAN ID - Valid Vlan id range is 0 to 4096.
-
MTU - Valid MTU range is 1500 to 9216.
-
Subnet - Networks of diferent types (e.g. VSAN/VMOTION/NFS) must not have overlapping subnets
-
Subnet mask
-
gateway - The gateway defined for the specified subnet
-
List of IP address ranges - the start and end IP address of each IP Pool should be part of the subnet
-
1.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "engineering-networkpool",
"networks" : [ {
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9001,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
} ]
}'
HTTP Request
POST /v1/network-pools HTTP/1.1
Content-Type: application/json
Content-Length: 304
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "engineering-networkpool",
"networks" : [ {
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9001,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
} ]
}
HTTP Response
HTTP/1.1 201 Created
Location: /v1/network-pools/2d36160d-c177-42c1-972d-b77833cb5e55
Content-Type: application/json
Content-Length: 165
{
"id" : "2d36160d-c177-42c1-972d-b77833cb5e55",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "d56bdc2a-9044-45e2-a3c0-ab3913c3e4f2"
} ]
}
2. Get the Network Pools
2.1. Prerequisites
None
2.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/network-pools 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: 375
{
"elements" : [ {
"id" : "3547f935-d140-47ee-bc09-eb4975d15cf4",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "682d2b72-f3fa-4391-9e6c-e0527304ba1d"
} ]
}, {
"id" : "5e5a404a-e90a-47a8-8fa6-da88a6ce6eee",
"name" : "finance-networkpool",
"networks" : [ {
"id" : "0d2a8ae3-f0fc-4b2b-9e51-aca661da51f6"
} ]
} ]
}
3. Get a Network Pool
3.1. Prerequisites
The following data is required
- ID of the network pool
3.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/1ca4851b-4e4a-4b59-8a88-b82fd11f517a' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
GET /v1/network-pools/1ca4851b-4e4a-4b59-8a88-b82fd11f517a 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: 165
{
"id" : "1ca4851b-4e4a-4b59-8a88-b82fd11f517a",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "38b18945-8d99-4954-83da-1e419bf0dbc3"
} ]
}
4. Get a Network of a Network Pool
4.1. Prerequisites
The following data is required
- ID of the network
4.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/458ef376-d519-4ac7-8264-f5687e4980fd/networks/7f2f29e6-8454-4467-8775-40d5eefc0b70' -i -X GET \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 270
{
"id" : "7f2f29e6-8454-4467-8775-40d5eefc0b70",
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9216,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
}
5. Rename a Network Pool
5.1. Prerequisites
- Network pool must exist.
5.2. Steps
- Get the ID of the network pool. Filter the response by the network pool’s current name to get the corresponding ID.
Tip : Get the Network Pools
- Create a network pool update spec. Create a JSON with the “name” field containing the desired new network pool name.
Tip : NetworkPoolUpdateSpec
- Invoke the network pool rename (update) task using the input spec and network pool ID.
Note : Running the updateNetworkPool API will ensure that the requested new name is valid. The API call will fail if the requested new name is invalid.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/75b5969e-c7fd-426f-9c5e-e02d6e4d1464' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"name" : "new_name"
}'
HTTP Request
PATCH /v1/network-pools/75b5969e-c7fd-426f-9c5e-e02d6e4d1464 HTTP/1.1
Content-Type: application/json
Content-Length: 25
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"name" : "new_name"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 165
{
"id" : "75b5969e-c7fd-426f-9c5e-e02d6e4d1464",
"name" : "engineering-networkpool",
"networks" : [ {
"id" : "bb3fb1d6-68c2-465a-86d6-99d58fffee77"
} ]
}
6. Delete a Network Pool
-
Used to delete a Network pool.
-
Deleting a networkpool which is being used, will give an error.
-
Deleting a networkpool which does not exist, will give a HTTP response code 404.
6.1. Prerequisites
The following data is required
- ID of the network pool
6.2. Steps
- Invoke the API
Tip : Refer to: Get the Network Pools to retrieve all network pools in the system and use the ID of network pool to be deleted.
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/e3ff61b2-dedf-4448-b3f8-fbc40dd81437' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....'
HTTP Request
DELETE /v1/network-pools/e3ff61b2-dedf-4448-b3f8-fbc40dd81437 HTTP/1.1
Content-Type: application/json
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
HTTP Response
HTTP/1.1 204 No Content
7. Add an IP Pool to a Network of a Network Pool
7.1. Prerequisites
The following data is required
- ID of the network pool
Tip : Refer to: Get the Network Pools
- ID of the network.
Tip : Refer to: Get a Network of a Network Pool
- The start and end IP addresses for the IP pool
7.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/1f8b4d93-346a-4833-880b-5d2ac0dc7011/networks/35ca04bb-0b52-40df-810a-533568f21faf/ip-pools' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}'
HTTP Request
POST /v1/network-pools/1f8b4d93-346a-4833-880b-5d2ac0dc7011/networks/35ca04bb-0b52-40df-810a-533568f21faf/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}
HTTP Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 270
{
"id" : "5f2b75e2-a360-4c8f-9348-6026c11c1e2d",
"type" : "VSAN",
"vlanId" : 3002,
"mtu" : 9216,
"subnet" : "192.168.8.0",
"mask" : "255.255.252.0",
"gateway" : "192.168.8.1",
"ipPools" : [ {
"start" : "192.168.8.5",
"end" : "192.168.8.8"
} ]
}
8. Delete an IP Pool from a Network of a Network Pool
8.1. Prerequisites
The following data is required
- ID of the IP pool
8.2. Steps
- Invoke the API
cURL Request
$ curl 'https://sfo-vcf01.rainpole.io/v1/network-pools/5ca9e6b8-ff6e-45ad-b7f0-b82b47756aab/networks/8153f84a-10bc-4756-b1fc-509092874bac/ip-pools' -i -X DELETE \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer etYWRta....' \
-d '{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}'
HTTP Request
DELETE /v1/network-pools/5ca9e6b8-ff6e-45ad-b7f0-b82b47756aab/networks/8153f84a-10bc-4756-b1fc-509092874bac/ip-pools HTTP/1.1
Content-Type: application/json
Content-Length: 54
Host: sfo-vcf01.rainpole.io
Authorization: Bearer etYWRta....
{
"start" : "192.168.8.5",
"end" : "192.168.8.8"
}
HTTP Response
HTTP/1.1 204 No Content
Last updated 2022-09-28 17:42:27 PDT