Reservations

Reserve GPU units for orgs (platform admin)

Changed on

Grants exclusive placement rights over specific GPU units for a term. Reserved units disappear from every other org's catalog and cannot be placed on by them. Overlap with an existing reservation is rejected atomically.

Requires the reservation.manage permission. A caller without it gets 404. See Permissions for the roles and API key permissions that include it.

post/v1/nodes/{nodeId}/reservations

Request

  • Base URL
    https://api.openrelay.inc
  • URL
    https://api.openrelay.inc/v1/nodes/{nodeId}/reservations
  • Auth
    HTTP bearer

Path parameters

nodeIdstring required

Request body

allowedOrgIdsstring[] required

The audience. The platform ops org is added automatically so we can validate the node.

contractRefstring
endsAtstring

Omit for open-ended

managingOrgIdsstring[]

Orgs allowed to release, reclaim, and terminate spot workloads on these units on the owner's behalf while the reservation is active and inside its term. Omit unless a second org manages this capacity commercially.

reasonstring
startsAtstring

Defaults to now

unitIdsstring[] required

GPU unit ids to reserve (from the node's inventory). Must be sellable units of a reservable class (vfio-group or device-request), and the node must be single-class.

Response

Created

allowedOrgIdsstring[] required

The audience: orgs that may place workloads on the reserved units.

contractRefstring
createdAtstring
endsAtstring

Absent = open-ended until cancelled

idstring required
managingOrgIdsstring[]

Orgs that may release these units to the market, reclaim them, and terminate the spot workloads on them, on the node owner's behalf, while the reservation is active and inside its term. Being in the audience does not confer this.

nodeIdstring required
reasonstring
releasedUnitIdsstring[]

The subset of reservedUnitIds currently on the spot market (double sell). Still this reservation's capacity, sellable to anyone at tier=spot only, and reclaimable at any time.

reservedUnitIdsstring[] required
skippedstring[]

Reclaim only: VM ids left running because they are not spot.

startsAtstring required
status'pending' | 'active' | 'expired' | 'cancelled' | 'needs-review' required

needs-review means the node's GPU topology changed under the reservation: it grants nothing (and withholds its units from everyone) until an operator re-affirms it.

terminatedstring[]

Reclaim only: spot VM ids terminated to free the reclaimed units.

topologyGeninteger

Node topology generation this reservation was written against

updatedAtstring
wouldSkipstring[]

Reclaim dry run only: VM ids that would be left running.

wouldTerminatestring[]

Reclaim dry run only: the spot VM ids this call would terminate.

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status