Reference / Compute / Server Groups Api Server Groups API Reference Reference · Updated Sep 2026
Coming from another cloud?
▸ AWS · Placement Groups Placement Groupshigh
Policies: cluster/partition/spread vs affinity/anti-affinity. AZ-scoped, no instance moves/merges. Specified at launch via PlacementGroupName. Max 7 partitions per AZ for partition type. AWS docs ↗ ▸ Azure · Availability sets Availability setshigh
Uses fault/update domains (max 3/20) for HA, fixed at creation, vs flexible OpenStack server group policies (affinity/anti-affinity). ARM resource (Microsoft.Compute/availabilitySets), VMs assigned at create, no dynamic move. No extra cost, but requires 2+ VMs for SLA; prefers zones/scale sets. Lower latency between VMs in set vs zones, hardware-specific isolation. Azure docs ↗ ▸ DigitalOcean · API DigitalOcean APIhigh
Uses REST API over HTTPS with Bearer token authentication via personal access tokens, not OpenStack's Keystone token-based auth. Base URL https://api.digitalocean.com/v2, incompatible with OpenStack APIs like Nova/Neutron. Scoped permissions tied to granular API scopes based on team roles, unlike OpenStack role/project assignments. Rate limits: 5000/hour, 250/minute. DigitalOcean docs ↗ ▸ Google Cloud · Sole-Tenant Nodes / Instance Groups Sole-Tenant Nodes / Instance Groupshigh
MIGs offer autoscaling, autohealing, rolling updates via templates; OpenStack only scheduling policies (affinity etc.). Zonal/regional with HA/load balancing integration; no management in OpenStack groups. App health checks trigger recreation; requires external orchestration in OpenStack. Google Cloud docs ↗ ▸ Hetzner · Cloud API Cloud APIhigh
Proprietary REST API over HTTPS with Bearer token auth, not OpenStack Identity API (keystone) endpoints or mechanisms. Base URL https://api.hetzner.cloud/v1/ with resource-specific endpoints (e.g., /servers) vs OpenStack service endpoints (nova, cinder). No multi-project handling in single auth; separate per-project tokens vs keystone scopes/projects. Missing identity/catalog endpoints; no service discovery via API. Hetzner docs ↗
In these methods, \{server_group_id\} is a placeholder for the ID of the server group; replace it with the actual ID. The API lists existing server groups, shows details of a specific server group, creates a new server group with a specified policy, and deletes a server group. The policy in the request body determines how the scheduler places instances in the group relative to each other on the compute hosts.
GET /os-server-groups/{server_group_id}
The request body shape depends on the Nova microversion you send. See Microversions for how to set the header.
Request body (default microversion 2.1, through 2.63):
{
"server_group" : {
"name" : "SERVER_GROUP_NAME" ,
"policies" : [ "affinity" ]
}
}
policies: Single-element array. On the default microversion, the endpoint accepts only affinity and anti-affinity. To use soft-affinity or soft-anti-affinity, send the header OpenStack-API-Version: compute 2.15 (or X-OpenStack-Nova-API-Version: 2.15) or later.
Request body (microversion 2.64 or later):
{
"server_group" : {
"name" : "SERVER_GROUP_NAME" ,
"policy" : "anti-affinity" ,
"rules" : {}
}
}
policy: Single string. From microversion 2.64, this string field replaces the policies array.
rules: Optional object of scheduler rules for the policy, for example max_server_per_host with the soft policies.
DELETE /os-server-groups/{server_group_id} Was this page helpful? 👍 Yes 👎 No