Create a VM that uses the reservation-bound model Stay organized with collections Save and categorize content based on your preferences.
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
- If you haven't already, set upauthentication. Authentication verifies your identity for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:
gcloudinit
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
Install the Google Cloud CLI. After installation,initialize the Google Cloud CLI by running the following command:
gcloudinit
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Note: If you installed the gcloud CLI previously, make sure you have the latest version by runninggcloud components update.For more information, seeAuthenticate for using REST in the Google Cloud authentication documentation.
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.createon the project- To use a custom image to create the VM:
compute.images.useReadOnlyon the image - To use a snapshot to create the VM:
compute.snapshots.useReadOnlyon the snapshot - To use an instance template to create the VM:
compute.instanceTemplates.useReadOnlyon the instance template - To specify a subnet for your VM:
compute.subnetworks.useon the project or on the chosen subnet - To specify a static IP address for the VM:
compute.addresses.useon the project - To assign an external IP address to the VM when using a VPC network:
compute.subnetworks.useExternalIpon the project or on the chosen subnet - To assign alegacy network to the VM:
compute.networks.useon the project - To assign an external IP address to the VM when using a legacy network:
compute.networks.useExternalIpon the project - To set VM instance metadata for the VM:
compute.instances.setMetadataon the project - To set tags for the VM:
compute.instances.setTagson the VM - To set labels for the VM:
compute.instances.setLabelson the VM - To set a service account for the VM to use:
compute.instances.setServiceAccounton the VM - To create a new disk for the VM:
compute.disks.createon the project - To attach an existing disk in read-only or read-write mode:
compute.disks.useon the disk - To attach an existing disk in read-only mode:
compute.disks.useReadOnlyon 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 VM and the reservation must havematching properties.
The VM mustspecifically target the reservation for consumption.
The VM must bestopped or deleted at the reservation's end time.
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
Create an example request for five A3 Ultra VMs and submit it forreview:
In the Google Cloud console, go to theReservations page.
Click theFuture reservations tab.
ClickCreate future reservation. TheCreate a future reservationpage appears.
In theHardware configuration section, selectSpecify machine type, and then specify an A3 Ultra instance.
In theObtainability method section, complete the followingsteps:
SelectSearch for capacity for up to 90 days.
In theRegion andZone lists, specify the region andzone where to reserve resources. For this example, selectus-central1 andus-central1-a respectively.
In theTotal capacity needed field, enter
5.In theReservation period section, specify the reservationperiod for the reservation.
Specify the remaining fields, and then clickSubmit.
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.In the Google Cloud console, go to theCreate an instancepage.
In theName field, enter a name for the VM. For this example,enter
example-vm.Specify theRegion andZone where you want to reserveresources. For this example, selectus-central1 andus-central1-a respectively.
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.
In the navigation menu, clickAdvanced.
In theReservations section, selectChoose a reservation,and then clickChoose a reservation.
On theChoose a reservation pane, do the following:
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.
ClickChoose.
In theProvisioning model section, expand theVM provisioning model advanced settings section.
In theOn VM termination list, selectStop (default) orDelete.
ClickCreate.
gcloud
To create an example request for five A3 Ultra VMs and submit it forreview, use the
gcloud beta compute future-reservations createcommand: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-aAssume 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.
At the request start time, to create an A3 Ultra VM to consume theexample auto-created reservation, use the
gcloud compute instances createcommandwith the following flags:The
--instance-termination-actionflag.The
--provisioning-modelflag set toRESERVATION_BOUND.The
--reservationflag.The
--reservation-affinityflag 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
To create an example request for five A3 Ultra VMs and submit it forreview, make a
POSTrequest to thebetafutureReservations.insertmethod: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.
At the request start time, to create an A3 Ultra VM to consume theexample auto-created reservation, make a
POSTrequest toinstances.insertmethod.In the request body, include the following fields:The
reservationAffinity.consumeReservationTypefield set toSPECIFIC_RESERVATION.The
reservationAffinity.keyfield set tocompute.googleapis.com/reservation-name.The
reservationAffinity.valuesfield set to the URL of thereservation.The
scheduling.instanceTerminationActionfield.The
scheduling.provisioningModelfield 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 freeExcept 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.