Create a VM that uses the reservation-bound model

This document explains how to create a standalone virtual machine (VM) instanceby using the reservation-bound provisioning model. This provisioning model letsyou create A4X VMs, and A4, A3 Ultra, A3 Mega, or A3 High (8 GPUs) VMs byconsuming pre-reserved capacity.

For other methods to create VMs by using the reservation-bound provisioningmodel, seeDeployment options overview inthe AI Hypercomputer documentation.

Before you begin

Required roles

To get the permissions that you need to create VMs by using the reservation-bound provisioning model, ask your administrator to grant you theCompute Instance Admin (v1) (roles/compute.instanceAdmin.v1) IAM role on the project. For more information about granting roles, seeManage access to projects, folders, and organizations.

This predefined role contains the permissions required to create VMs by using the reservation-bound provisioning model. To see the exact permissions that are required, expand theRequired permissions section:

Required permissions

The following permissions are required to create VMs by using the reservation-bound provisioning model:

  • compute.instances.create on the project
  • To use a custom image to create the VM: compute.images.useReadOnly on the image
  • To use a snapshot to create the VM: compute.snapshots.useReadOnly on the snapshot
  • To use an instance template to create the VM: compute.instanceTemplates.useReadOnly on the instance template
  • To specify a subnet for your VM: compute.subnetworks.use on the project or on the chosen subnet
  • To specify a static IP address for the VM: compute.addresses.use on the project
  • To assign an external IP address to the VM when using a VPC network: compute.subnetworks.useExternalIp on the project or on the chosen subnet
  • To assign alegacy network to the VM: compute.networks.use on the project
  • To assign an external IP address to the VM when using a legacy network: compute.networks.useExternalIp on the project
  • To set VM instance metadata for the VM: compute.instances.setMetadata on the project
  • To set tags for the VM: compute.instances.setTags on the VM
  • To set labels for the VM: compute.instances.setLabels on the VM
  • To set a service account for the VM to use: compute.instances.setServiceAccount on the VM
  • To create a new disk for the VM: compute.disks.create on the project
  • To attach an existing disk in read-only or read-write mode: compute.disks.use on the disk
  • To attach an existing disk in read-only mode: compute.disks.useReadOnly on the disk

You might also be able to get these permissions withcustom roles or otherpredefined roles.

Create a VM that uses the reservation-bound provisioning model

To create an A4X VM, or an A4, A3 Ultra, A3 Mega, or A3 High (8 GPUs) VM byusing the reservation-bound provisioning model, you must wait until theauto-reservation that you want to use reaches its start time. Additionally, theVM that you intend to create must meet all of the following requirements:

The following example creates a future reservation request in calendar mode forfive A3 Ultra VMs, and then creates an A3 Ultra VM by consuming the auto-createdreservation for the request.

To create an example VM by using the reservation-bound provisioning model,select one of the following options:

Console

  1. Create an example request for five A3 Ultra VMs and submit it forreview:

    1. In the Google Cloud console, go to theReservations page.

      Go to Reservations

    2. Click theFuture reservations tab.

    3. ClickCreate future reservation. TheCreate a future reservationpage appears.

    4. In theHardware configuration section, selectSpecify machine type, and then specify an A3 Ultra instance.

    5. In theObtainability method section, complete the followingsteps:

      1. SelectSearch for capacity for up to 90 days.

      2. In theRegion andZone lists, specify the region andzone where to reserve resources. For this example, selectus-central1 andus-central1-a respectively.

      3. In theTotal capacity needed field, enter5.

      4. In theReservation period section, specify the reservationperiod for the reservation.

    6. Specify the remaining fields, and then clickSubmit.

  2. At the request start time, to create an A3 Ultra VM to consume theexample auto-created reservation, do the following:

    Important: The following steps show how to create a single-NIC A3 UltraVM, which is useful for quick tests. To create a multi-NIC A3 Ultra VM,see insteadCreate an A3 Ultra or A4 instance.
    1. In the Google Cloud console, go to theCreate an instancepage.

      Go to Create an instance

    2. In theName field, enter a name for the VM. For this example,enterexample-vm.

    3. Specify theRegion andZone where you want to reserveresources. For this example, selectus-central1 andus-central1-a respectively.

    4. Click theGPUs tab, and then, in theGPU type list, selectNVIDIA H200 141GB. This action specifies an A3 Ultra VM and setsthe provisioning model toReservation-bound.

    5. In the navigation menu, clickAdvanced.

    6. In theReservations section, selectChoose a reservation,and then clickChoose a reservation.

    7. On theChoose a reservation pane, do the following:

      1. Select a specific reservation. If you want to consume a sharedreservation that exists in a different project, then, in theProject list, select the project in which the reservationexists.

      2. ClickChoose.

    8. In theProvisioning model section, expand theVM provisioning model advanced settings section.

    9. In theOn VM termination list, selectStop (default) orDelete.

    10. ClickCreate.

gcloud

  1. To create an example request for five A3 Ultra VMs and submit it forreview, use thegcloud beta compute future-reservations create command:

    gcloud beta compute future-reservations create example-fr \    --auto-delete-auto-created-reservations \    --deployment-type=DENSE \    --planning-status=SUBMITTED \    --require-specific-reservation \    --reservation-mode=CALENDAR \    --reservation-name=example-reservation \    --share-type=local \    --start-time=2025-10-05T00:00:00Z \    --end-time=2025-10-19T00:00:00Z \    --machine-type=a3-ultragpu-8g \    --total-count=5 \    --zone=us-central1-a

    Assume that Google Cloud approves the request andCompute Engine automatically creates an empty reservation. Atthe request start time, on October 5, 2025, Compute Engineincreases the number of reserved GPU VMs in the reservation. You canthen consume the reservation.

  2. At the request start time, to create an A3 Ultra VM to consume theexample auto-created reservation, use thegcloud compute instances create commandwith the following flags:

    • The--instance-termination-action flag.

    • The--provisioning-model flag set toRESERVATION_BOUND.

    • The--reservation flag.

    • The--reservation-affinity flag set tospecific.

    The command is similar to the following. For the full requirements tocreate an A3 Ultra VM, see insteadCreate an A3 Ultra or A4 instance.

    gcloud compute instance create example-vm  \    --machine-type=a3-ultragpu-8g \--instance-termination-action=TERMINATION_ACTION \--provisioning-model=RESERVATION_BOUND \--reservation-affinity=specific \--reservation=RESERVATION_URL \    --zone=us-central1-a \    ...

    The command includes the following values:

    • TERMINATION_ACTION: whetherCompute Engine stops (STOP) or deletes (DELETE) the VMat the end of the reservation period.

    • RESERVATION_URL: the URL of the reservation,which you must format as follows:

      • If the auto-created reservation exists in your project:example-reservation.

      • If the auto-created reservation exists in a different project:projects/PROJECT_ID/reservations/example-reservation.

REST

  1. To create an example request for five A3 Ultra VMs and submit it forreview, make aPOST request to thebetafutureReservations.insert method:

    POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations{  "name": "example-request-calendar-mode",  "autoDeleteAutoCreatedReservations": true,  "deploymentType": "DENSE",  "planningStatus": "SUBMITTED",  "reservationMode": "CALENDAR",  "reservationName": "example-reservation",  "shareSettings": {    "shareType": "LOCAL"  },  "specificReservationRequired": true,  "specificSkuProperties": {    "machineType": "a3-ultragpu-8g",    "totalCount": 5  },  "timeWindow": {    "startTime": "2025-10-05T00:00:00Z",    "endTime": "2025-10-19T00:00:00Z"  }}

    Assume that Google Cloud approves the request andCompute Engine automatically creates an empty reservation. Atthe request start time, on October 5, 2025, Compute Engineincreases the number of reserved GPU VMs in the reservation. You canthen consume the reservation.

  2. At the request start time, to create an A3 Ultra VM to consume theexample auto-created reservation, make aPOST request toinstances.insert method.In the request body, include the following fields:

    • ThereservationAffinity.consumeReservationType field set toSPECIFIC_RESERVATION.

    • ThereservationAffinity.key field set tocompute.googleapis.com/reservation-name.

    • ThereservationAffinity.values field set to the URL of thereservation.

    • Thescheduling.instanceTerminationAction field.

    • Thescheduling.provisioningModel field set toRESERVATION_BOUND.

    The request is similar to the following. For the full requirements tocreate an A3 Ultra VM, see insteadCreate an A3 Ultra or A4 instance.

    POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/instances{  {    "machineType": "projects/example-project/zones/us-central1-a/machineTypes/a3-ultragpu-8g",    "name": "example-vm",    "reservationAffinity": {"consumeReservationType": "SPECIFIC_RESERVATION","key": "compute.googleapis.com/reservation-name","values":[        "RESERVATION_URL"      ],    },    "scheduling": {"instanceTerminationAction": "TERMINATION_ACTION","provisioningModel": "RESERVATION_BOUND"    },    ...  }}

    The request body includes the following values:

    • RESERVATION_URL: the URL of the reservation,which you must format as follows:

      • If the auto-created reservation exists in your project:example-reservation.

      • If the auto-created reservation exists in a different project:projects/PROJECT_ID/reservations/example-reservation.

    • TERMINATION_ACTION: whetherCompute Engine stops (STOP) or deletes (DELETE) the VMat the end of the reservation period.

What's next

Try it for yourself

If you're new to Google Cloud, create an account to evaluate how Compute Engine performs in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.

Try Compute Engine free

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-15 UTC.