Server Groups
GET
/os-server-groupsList server groups
Returns a list of server groups in the current project.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| X-OpenStack-Nova-Microversion | header | string | Request a specific Nova microversion. Defaults to 2.1.
Maximum supported on Rumble Cloud: **2.95**.
Example: 2.95 |
Responses
200List of server groups
| server_groups | array[object] |
401Unauthorized
curl -X GET "https://nova.YOUR_REGION.rumble.cloud/v2.1/YOUR_PROJECT_ID/os-server-groups" \
-H "X-Auth-Token: $TOKEN" \
-H "X-OpenStack-Nova-Microversion: YOUR_X-OPENSTACK-NOVA-MICROVERSION"POST
/os-server-groupsCreate server group
Creates a server group with a placement policy. To use the group when
creating a server, pass `{"group": "server_group_uuid"}` in the
`os:scheduler_hints` request body field.
**Policies:**
- `anti-affinity` — instances run on **different** compute hosts
- `affinity` — instances run on the **same** compute host
- `soft-anti-affinity` / `soft-affinity` — best-effort equivalents
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| X-OpenStack-Nova-Microversion | header | string | Request a specific Nova microversion. Defaults to 2.1.
Maximum supported on Rumble Cloud: **2.95**.
Example: 2.95 |
Request Bodyrequired
application/json
| server_group* | object |
Responses
200Server group created
| server_group | object | A server group for placement policy enforcement |
400Bad request
401Unauthorized
403Forbidden — quota exceeded
curl -X POST "https://nova.YOUR_REGION.rumble.cloud/v2.1/YOUR_PROJECT_ID/os-server-groups" \
-H "X-Auth-Token: $TOKEN" \
-H "X-OpenStack-Nova-Microversion: YOUR_X-OPENSTACK-NOVA-MICROVERSION" \
-H "Content-Type: application/json" \
-d '{
"server_group": {
"name": "web-tier-anti-affinity",
"policies": [
"anti-affinity"
]
}
}'GET
/os-server-groups/{server_group_id}Show server group
Returns details for a specific server group, including its current member servers.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| server_group_id* | path | string | The UUID of the server group |
| X-OpenStack-Nova-Microversion | header | string | Request a specific Nova microversion. Defaults to 2.1.
Maximum supported on Rumble Cloud: **2.95**.
Example: 2.95 |
Responses
200Server group detail
| server_group | object | A server group for placement policy enforcement |
401Unauthorized
404Server group not found
curl -X GET "https://nova.YOUR_REGION.rumble.cloud/v2.1/YOUR_PROJECT_ID/os-server-groups/YOUR_SERVER_GROUP_ID" \
-H "X-Auth-Token: $TOKEN" \
-H "X-OpenStack-Nova-Microversion: YOUR_X-OPENSTACK-NOVA-MICROVERSION"DELETE
/os-server-groups/{server_group_id}Delete server group
Deletes a server group. Member servers are not affected — they remain
running, but future server creation will no longer enforce the group's policy.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| server_group_id* | path | string | The UUID of the server group |
| X-OpenStack-Nova-Microversion | header | string | Request a specific Nova microversion. Defaults to 2.1.
Maximum supported on Rumble Cloud: **2.95**.
Example: 2.95 |
Responses
204Server group deleted (no content)
401Unauthorized
404Server group not found
curl -X DELETE "https://nova.YOUR_REGION.rumble.cloud/v2.1/YOUR_PROJECT_ID/os-server-groups/YOUR_SERVER_GROUP_ID" \
-H "X-Auth-Token: $TOKEN" \
-H "X-OpenStack-Nova-Microversion: YOUR_X-OPENSTACK-NOVA-MICROVERSION"