NAME gcloud compute instance-templates create - create a Compute Engine virtual machine instance template SYNOPSIS gcloud compute instance-templates create NAME [--accelerator=[count=COUNT],[type=TYPE]] [--no-boot-disk-auto-delete] [--boot-disk-device-name=BOOT_DISK_DEVICE_NAME] [--boot-disk-provisioned-iops=BOOT_DISK_PROVISIONED_IOPS] [--boot-disk-size=BOOT_DISK_SIZE] [--boot-disk-type=BOOT_DISK_TYPE] [--can-ip-forward] [--confidential-compute] [--configure-disk=[PROPERTY=VALUE,...]] [--create-disk=[PROPERTY=VALUE,...]] [--description=DESCRIPTION] [--disk=[auto-delete=AUTO-DELETE], [boot=BOOT],[device-name=DEVICE-NAME],[mode=MODE],[name=NAME]] [--[no-]enable-nested-virtualization] [--[no-]enable-uefi-networking] [--instance-termination-action=INSTANCE_TERMINATION_ACTION] [--ipv6-network-tier=IPV6_NETWORK_TIER] [--labels=[KEY=VALUE,...]] [--local-ssd=[device-name=DEVICE-NAME],[interface=INTERFACE]] [--machine-type=MACHINE_TYPE] [--maintenance-policy=MAINTENANCE_POLICY] [--metadata=KEY=VALUE,[KEY=VALUE,...]] [--metadata-from-file=KEY=LOCAL_FILE_PATH,[...]] [--min-cpu-platform=PLATFORM] [--min-node-cpu=MIN_NODE_CPU] [--network=NETWORK] [--network-interface=[PROPERTY=VALUE,...]] [--network-performance-configs=[PROPERTY=VALUE,...]] [--network-tier=NETWORK_TIER] [--preemptible] [--private-ipv6-google-access-type=PRIVATE_IPV6_GOOGLE_ACCESS_TYPE] [--private-network-ip=PRIVATE_NETWORK_IP] [--provisioning-model=PROVISIONING_MODEL] [--region=REGION] [--resource-manager-tags=[KEY=VALUE,...]] [--resource-policies=[RESOURCE_POLICY,...]] [--no-restart-on-failure] [--shielded-integrity-monitoring] [--shielded-secure-boot] [--shielded-vtpm] [--source-instance=SOURCE_INSTANCE] [--source-instance-zone=SOURCE_INSTANCE_ZONE] [--stack-type=STACK_TYPE] [--subnet=SUBNET] [--tags=TAG,[TAG,...]] [--threads-per-core=THREADS_PER_CORE] [--address=ADDRESS | --no-address] [--boot-disk-kms-key=BOOT_DISK_KMS_KEY : --boot-disk-kms-keyring=BOOT_DISK_KMS_KEYRING --boot-disk-kms-location=BOOT_DISK_KMS_LOCATION --boot-disk-kms-project=BOOT_DISK_KMS_PROJECT] [--custom-cpu=CUSTOM_CPU --custom-memory=CUSTOM_MEMORY : --custom-extensions --custom-vm-type=CUSTOM_VM_TYPE] [--image-project=IMAGE_PROJECT --image=IMAGE | --image-family=IMAGE_FAMILY] [--node=NODE | --node-affinity-file=NODE_AFFINITY_FILE | --node-group=NODE_GROUP] [--reservation=RESERVATION --reservation-affinity=RESERVATION_AFFINITY; default="any"] [--scopes=[SCOPE,...] | --no-scopes] [--service-account=SERVICE_ACCOUNT | --no-service-account] [--service-proxy=[enabled],[access-log=ACCESS-LOG],[network=NETWORK], [proxy-port=PROXY-PORT], [serving-ports=SERVING-PORTS],[tracing=TRACING] --service-proxy-labels=[KEY=VALUE, ...,...]] [GCLOUD_WIDE_FLAG ...] DESCRIPTION gcloud compute instance-templates create facilitates the creation of Compute Engine virtual machine instance templates. Instance templates are global resources, and can be used to create instances in any zone. EXAMPLES To create an instance template named 'INSTANCE-TEMPLATE' with the 'n2' vm type, '9GB' memory, and 2 CPU cores, run: $ gcloud compute instance-templates create INSTANCE-TEMPLATE \ --custom-vm-type=n2 --custom-cpu=2 --custom-memory=9GB POSITIONAL ARGUMENTS NAME Name of the instance template to create. FLAGS --accelerator=[count=COUNT],[type=TYPE] Attaches accelerators (e.g. GPUs) to the instances. type The specific type (e.g. nvidia-tesla-k80 for nVidia Tesla K80) of accelerator to attach to the instances. Use 'gcloud compute accelerator-types list' to learn about all available accelerator types. count Number of accelerators to attach to each instance. The default value is 1. --boot-disk-auto-delete Automatically delete boot disks when their instances are deleted. Enabled by default, use --no-boot-disk-auto-delete to disable. --boot-disk-device-name=BOOT_DISK_DEVICE_NAME The name the guest operating system will see for the boot disk. This option can only be specified if a new boot disk is being created (as opposed to mounting an existing persistent disk). --boot-disk-provisioned-iops=BOOT_DISK_PROVISIONED_IOPS Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Value must be between 10,000 and 120,000. --boot-disk-size=BOOT_DISK_SIZE The size of the boot disk. This option can only be specified if a new boot disk is being created (as opposed to mounting an existing persistent disk). The value must be a whole number followed by a size unit of KB for kilobyte, MB for megabyte, GB for gigabyte, or TB for terabyte. For example, 10GB will produce a 10 gigabyte disk. The minimum size a boot disk can have is 10 GB. Disk size must be a multiple of 1 GB. Limit boot disk size to 2 TB to account for MBR partition table limitations. Default size unit is GB. --boot-disk-type=BOOT_DISK_TYPE The type of the boot disk. This option can only be specified if a new boot disk is being created (as opposed to mounting an existing persistent disk). To get a list of available disk types, run $ gcloud compute disk-types list. --can-ip-forward If provided, allows the instances to send and receive packets with non-matching destination or source IP addresses. --confidential-compute The instance boots with Confidential Computing enabled. Confidential Computing is based on Secure Encrypted Virtualization (SEV), an AMD virtualization feature for running confidential instances. --configure-disk=[PROPERTY=VALUE,...] This option has effect only when used with --source-instance. It allows you to override how the source-instance's disks are defined in the template. auto-delete If true, this persistent disk will be automatically deleted when the instance is deleted. However, if the disk is later detached from the instance, this option won't apply. If not provided, the setting is copied from the source instance. Allowed values of the flag are: false, no, true, and yes. device-name Name of the device. instantiate-from Specifies whether to include the disk and which image to use. Valid values are: attach-read-only, blank, custom-image, do-not-include, source-image, source-image-family custom-image The custom image to use if custom-image is specified for instantiate-from. --create-disk=[PROPERTY=VALUE,...] Creates and attaches persistent disks to the instances. name Specifies the name of the disk. This option cannot be specified if more than one instance is being created. description Optional textual description for the disk being created. mode Specifies the mode of the disk. Supported options are ro for read-only and rw for read-write. If omitted, rw is used as a default. image Specifies the name of the image that the disk will be initialized with. A new disk will be created based on the given image. To view a list of public images and projects, run $ gcloud compute images list. It is best practice to use image when a specific version of an image is needed. If both image and image-family flags are omitted a blank disk will be created. image-family The image family for the operating system that the boot disk will be initialized with. Compute Engine offers multiple Linux distributions, some of which are available as both regular and Shielded VM images. When a family is specified instead of an image, the latest non-deprecated image associated with that family is used. It is best practice to use --image-family when the latest version of an image is needed. image-project The Google Cloud project against which all image and image family references will be resolved. It is best practice to define image-project. A full list of available image projects can be generated by running gcloud compute images list. ▸ If specifying one of our public images, image-project must be provided. ▸ If there are several of the same image-family value in multiple projects, image-project must be specified to clarify the image to be used. ▸ If not specified and either image or image-family is provided, the current default project is used. size The size of the disk. The value must be a whole number followed by a size unit of KB for kilobyte, MB for megabyte, GB for gigabyte, or TB for terabyte. For example, 10GB will produce a 10 gigabyte disk. Disk size must be a multiple of 1 GB. If not specified, the default image size will be used for the new disk. type The type of the disk. To get a list of available disk types, run $ gcloud compute disk-types list. The default disk type is pd-standard. device-name An optional name that indicates the disk name the guest operating system will see. If omitted, a device name of the form persistent-disk-N will be used. provisioned-iops Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. Value must be between 10,000 and 120,000. disk-resource-policy Resource policy to apply to the disk. Specify a full or partial URL. For example: ▸ https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/resourcePolicies/my-resource-policy ▸ projects/my-project/regions/us-central1/resourcePolicies/my-resource-policy For more information, see the following docs: ▸ https://cloud.google.com/sdk/gcloud/reference/beta/compute/resource-policies/ ▸ https://cloud.google.com/compute/docs/disks/scheduled-snapshots auto-delete If yes, this persistent disk will be automatically deleted when the instance is deleted. However, if the disk is later detached from the instance, this option won't apply. The default value for this is yes. boot If yes, indicates that this is a boot disk. The instance will use the first partition of the disk for its root file system. The default value for this is no. kms-key Fully qualified Cloud KMS cryptokey name that will protect the disk. This can either be the fully qualified path or the name. The fully qualified Cloud KMS cryptokey name format is: projects//locations//keyRings// cryptoKeys/. If the value is not fully qualified then kms-location, kms-keyring, and optionally kms-project are required. See https://cloud.google.com/compute/docs/disks/customer-managed-encryption for more details. kms-project Project that contains the Cloud KMS cryptokey that will protect the disk. If the project is not specified then the project where the disk is being created will be used. If this flag is set then key-location, kms-keyring, and kms-key are required. See https://cloud.google.com/compute/docs/disks/customer-managed-encryption for more details. kms-location Location of the Cloud KMS cryptokey to be used for protecting the disk. All Cloud KMS cryptokeys are reside in a 'location'. To get a list of possible locations run 'gcloud kms locations list'. If this flag is set then kms-keyring and kms-key are required. See https://cloud.google.com/compute/docs/disks/customer-managed-encryption for more details. kms-keyring The keyring which contains the Cloud KMS cryptokey that will protect the disk. If this flag is set then kms-location and kms-key are required. See https://cloud.google.com/compute/docs/disks/customer-managed-encryption for more details. --description=DESCRIPTION Specifies a textual description for the instance template. --disk=[auto-delete=AUTO-DELETE],[boot=BOOT],[device-name=DEVICE-NAME],[mode=MODE],[name=NAME] Attaches persistent disks to the instances. The disks specified must already exist. name The disk to attach to the instances. When creating more than one instance and using this property, the only valid mode for attaching the disk is read-only (see mode below). mode Specifies the mode of the disk. Supported options are ro for read-only and rw for read-write. If omitted, rw is used as a default. It is an error for mode to be rw when creating more than one instance because read-write disks can only be attached to a single instance. boot If yes, indicates that this is a boot disk. The virtual machines will use the first partition of the disk for their root file systems. The default value for this is no. device-name An optional name that indicates the disk name the guest operating system will see. If omitted, a device name of the form persistent-disk-N will be used. auto-delete If yes, this persistent disk will be automatically deleted when the instance is deleted. However, if the disk is later detached from the instance, this option won't apply. The default value for this is yes. --[no-]enable-nested-virtualization If set to true, enables nested virtualization for the instance. Use --enable-nested-virtualization to enable and --no-enable-nested-virtualization to disable. --[no-]enable-uefi-networking If set to true, enables UEFI networking for the instance creation. Use --enable-uefi-networking to enable and --no-enable-uefi-networking to disable. --instance-termination-action=INSTANCE_TERMINATION_ACTION Specifies the termination action that will be taken upon VM preemption. INSTANCE_TERMINATION_ACTION must be one of: DELETE Permanently delete the VM. STOP Default. Stop the VM without preserving memory. The VM can be restarted later. --ipv6-network-tier=IPV6_NETWORK_TIER Specifies the IPv6 network tier that will be used to configure the instance network interface IPv6 access config. IPV6_NETWORK_TIER must be (currently only one value is supported): PREMIUM High quality, Google-grade network tier. --labels=[KEY=VALUE,...] List of label KEY=VALUE pairs to add. Keys must start with a lowercase character and contain only hyphens (-), underscores (_), lowercase characters, and numbers. Values must contain only hyphens (-), underscores (_), lowercase characters, and numbers. --local-ssd=[device-name=DEVICE-NAME],[interface=INTERFACE] Attaches a local SSD to the instances. device-name Optional. A name that indicates the disk name the guest operating system will see. Can only be specified if interface is SCSI. If omitted, a device name of the form local-ssd-N will be used. interface Optional. The kind of disk interface exposed to the VM for this SSD. Valid values are SCSI and NVME. SCSI is the default and is supported by more guest operating systems. NVME might provide higher performance. --machine-type=MACHINE_TYPE Specifies the machine type used for the instances. To get a list of available machine types, run 'gcloud compute machine-types list'. If unspecified, the default type is n1-standard-1. --maintenance-policy=MAINTENANCE_POLICY Specifies the behavior of the VMs when their host machines undergo maintenance. The default is MIGRATE. For more information, see https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options. MAINTENANCE_POLICY must be one of: MIGRATE The instances should be migrated to a new host. This will temporarily impact the performance of instances during a migration event. TERMINATE The instances should be terminated. --metadata=KEY=VALUE,[KEY=VALUE,...] Metadata to be made available to the guest operating system running on the instances. Each metadata entry is a key/value pair separated by an equals sign. Each metadata key must be unique and have a max of 128 bytes in length. Each value must have a max of 256 KB in length. Multiple arguments can be passed to this flag, e.g., --metadata key-1=value-1,key-2=value-2,key-3=value-3. The combined total size for all metadata entries is 512 KB. In images that have Compute Engine tools installed on them, such as the official images (https://cloud.google.com/compute/docs/images), the following metadata keys have special meanings: startup-script Specifies a script that will be executed by the instances once they start running. For convenience, --metadata-from-file can be used to pull the value from a file. startup-script-url Same as startup-script except that the script contents are pulled from a publicly-accessible location on the web. For startup scripts on Windows instances, the following metadata keys have special meanings: windows-startup-script-url, windows-startup-script-cmd, windows-startup-script-bat, windows-startup-script-ps1, sysprep-specialize-script-url, sysprep-specialize-script-cmd, sysprep-specialize-script-bat, and sysprep-specialize-script-ps1. For more information, see Running startup scripts (https://cloud.google.com/compute/docs/startupscript). --metadata-from-file=KEY=LOCAL_FILE_PATH,[...] Same as --metadata except that the value for the entry will be read from a local file. This is useful for values that are too large such as startup-script contents. --min-cpu-platform=PLATFORM When specified, the VM will be scheduled on host with specified CPU architecture or a newer one. To list available CPU platforms in given zone, run: $ gcloud compute zones describe ZONE \ --format="value(availableCpuPlatforms)" Default setting is "AUTOMATIC". CPU platform selection is available only in selected zones. You can find more information on-line: https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform --min-node-cpu=MIN_NODE_CPU Minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. --network=NETWORK Specifies the network that the VM instances are a part of. If --subnet is also specified, subnet must be a subnetwork of the network specified by this --network flag. If neither is specified, the default network is used. --network-interface=[PROPERTY=VALUE,...] Adds a network interface to the instance. Mutually exclusive with any of these flags: --address, --network, --network-tier, --subnet, --private-network-ip, --stack-type, --ipv6-network-tier, --ipv6-public-ptr-domain. This flag can be repeated to specify multiple network interfaces. The following keys are allowed: address Assigns the given external address to the instance that is created. Specifying an empty string will assign an ephemeral IP. Mutually exclusive with no-address. If neither key is present the instance will get an ephemeral IP. network Specifies the network that the interface will be part of. If subnet is also specified it must be subnetwork of this network. If neither is specified, this defaults to the "default" network. no-address If specified the interface will have no external IP. Mutually exclusive with address. If neither key is present the instance will get an ephemeral IP. network-tier Specifies the network tier of the interface. NETWORK_TIER must be one of: PREMIUM, STANDARD, FIXED_STANDARD. The default value is PREMIUM. private-network-ip Assigns the given RFC1918 IP address to the interface. subnet Specifies the subnet that the interface will be part of. If network key is also specified this must be a subnetwork of the specified network. nic-type Specifies the Network Interface Controller (NIC) type for the interface. NIC_TYPE must be one of: GVNIC, VIRTIO_NET. stack-type Specifies whether IPv6 is enabled on the interface. STACK_TYPE must be one of: IPV4_ONLY, IPV4_IPV6. The default value is IPV4_ONLY. ipv6-network-tier Specifies the IPv6 network tier that will be used to configure the instance network interface IPv6 access config. IPV6_NETWORK_TIER must be PREMIUM (currently only one value is supported). ipv6-public-ptr-domain Assigns a custom PTR domain for the external IPv6 in the IPv6 access configuration of instance. If its value is not specified, the default PTR record will be used. This option can only be specified for the default network interface, nic0. aliases Specifies the IP alias ranges to allocate for this interface. If there are multiple IP alias ranges, they are separated by semicolons. For example: --aliases="10.128.1.0/24;range1:/32" Each IP alias range consists of a range name and an CIDR netmask (e.g. `/24`) separated by a colon, or just the netmask. The range name is the name of the range within the network interface's subnet from which to allocate an IP alias range. If unspecified, it defaults to the primary IP range of the subnet. The IP allocator will pick an available range with the specified netmask and allocate it to this network interface. --network-performance-configs=[PROPERTY=VALUE,...] Configures network performance settings for the instance. If this flag is not specified, the instance will be created with its default network performance configuration. total-egress-bandwidth-tier Total egress bandwidth is the available outbound bandwidth from a VM, regardless of whether the traffic is going to internal IP or external IP destinations. The following tier values are allowed: [DEFAULT,TIER_1] --network-tier=NETWORK_TIER Specifies the network tier that will be used to configure the instance. NETWORK_TIER must be one of: PREMIUM, STANDARD, FIXED_STANDARD. The default value is PREMIUM. --preemptible If provided, instances will be preemptible and time-limited. Instances might be preempted to free up resources for standard VM instances, and will only be able to run for a limited amount of time. Preemptible instances can not be restarted and will not migrate. --private-ipv6-google-access-type=PRIVATE_IPV6_GOOGLE_ACCESS_TYPE The private IPv6 Google access type for the VM. PRIVATE_IPV6_GOOGLE_ACCESS_TYPE must be one of: enable-bidirectional-access, enable-outbound-vm-access, inherit-subnetwork. --private-network-ip=PRIVATE_NETWORK_IP Specifies the RFC1918 IP to assign to the instance. The IP should be in the subnet or legacy network IP range. --provisioning-model=PROVISIONING_MODEL Specifies provisioning model, which determines price, obtainability, and runtime for the VM instance. PROVISIONING_MODEL must be one of: SPOT Spot VMs are spare capacity; Spot VMs are discounted to have much lower prices than standard VMs but have no guaranteed runtime. Spot VMs are the new version of preemptible VM instances, except Spot VMs do not have a 24-hour maximum runtime. STANDARD Default. Standard provisioning model for VM instances, which has user-controlled runtime but no Spot discounts. --region=REGION Region of the subnetwork to attach. If not specified, you might be prompted to select a region (interactive mode only). To avoid prompting when this flag is omitted, you can set the compute/region property: $ gcloud config set compute/region REGION A list of regions can be fetched by running: $ gcloud compute regions list To unset the property, run: $ gcloud config unset compute/region Alternatively, the region can be stored in the environment variable CLOUDSDK_COMPUTE_REGION. --resource-manager-tags=[KEY=VALUE,...] Specifies a list of resource manager tags to apply to the instance. --resource-policies=[RESOURCE_POLICY,...] A list of resource policy names (not URLs) to be added to each instance created using this instance template. If you attach any resource policies to an instance template, you can only use that instance template to create instances that are in the same region as the resource policies. Do not include resource policies that are located in different regions in the same instance template. --restart-on-failure The instances will be restarted if they are terminated by Compute Engine. This does not affect terminations performed by the user. Enabled by default, use --no-restart-on-failure to disable. --shielded-integrity-monitoring Enables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created. This baseline can be updated by using gcloud compute instances update --shielded-learn-integrity-policy. On Shielded VM instances, integrity monitoring is enabled by default. For information about how to modify Shielded VM options, see https://cloud.google.com/compute/docs/instances/modifying-shielded-vm. For information about monitoring integrity on Shielded VM instances, see https://cloud.google.com/compute/docs/instances/integrity-monitoring." --shielded-secure-boot The instance boots with secure boot enabled. On Shielded VM instances, Secure Boot is not enabled by default. For information about how to modify Shielded VM options, see https://cloud.google.com/compute/docs/instances/modifying-shielded-vm. --shielded-vtpm The instance boots with the TPM (Trusted Platform Module) enabled. A TPM is a hardware module that can be used for different security operations such as remote attestation, encryption, and sealing of keys. On Shielded VM instances, vTPM is enabled by default. For information about how to modify Shielded VM options, see https://cloud.google.com/compute/docs/instances/modifying-shielded-vm. --source-instance=SOURCE_INSTANCE The name of the source instance that the instance template will be created from. You can override machine type and labels. Values of other flags will be ignored and values from the source instance will be used instead. --source-instance-zone=SOURCE_INSTANCE_ZONE Zone of the instance to operate on. Overrides the default compute/zone property value for this command invocation. --stack-type=STACK_TYPE Specifies whether IPv6 is enabled on the default network interface. If not specified, IPV4_ONLY will be used. STACK_TYPE must be one of: IPV4_IPV6 The network interface can have both IPv4 and IPv6 addresses IPV4_ONLY The network interface will be assigned IPv4 addresses --subnet=SUBNET Specifies the subnet that the VM instances are a part of. If --network is also specified, subnet must be a subnetwork of the network specified by the --network flag. --tags=TAG,[TAG,...] Specifies a list of tags to apply to the instance. These tags allow network firewall rules and routes to be applied to specified VM instances. See gcloud compute firewall-rules create(1) for more details. To read more about configuring network tags, read this guide: https://cloud.google.com/vpc/docs/add-remove-network-tags To list instances with their respective status and tags, run: $ gcloud compute instances list \ --format='table(name,status,tags.list())' To list instances tagged with a specific tag, tag1, run: $ gcloud compute instances list --filter='tags:tag1' --threads-per-core=THREADS_PER_CORE The number of visible threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. Valid values are: 1 or 2. For more information about configuring SMT, see: https://cloud.google.com/compute/docs/instances/configuring-simultaneous-multithreading. At most one of these can be specified: --address=ADDRESS Assigns the given external IP address to the instance that is created. This option can only be used when creating a single instance. --no-address If provided, the instances are not assigned external IP addresses. To pull container images, you must configure private Google access if using Container Registry or configure Cloud NAT for instances to access container images directly. For more information, see: ▸ https://cloud.google.com/vpc/docs/configure-private-google-access ▸ https://cloud.google.com/nat/docs/using-nat Key resource - The Cloud KMS (Key Management Service) cryptokey that will be used to protect the disk. The arguments in this group can be used to specify the attributes of this resource. --boot-disk-kms-key=BOOT_DISK_KMS_KEY ID of the key or fully qualified identifier for the key. To set the kms-key attribute: ▸ provide the argument --boot-disk-kms-key on the command line. This flag must be specified if any of the other arguments in this group are specified. --boot-disk-kms-keyring=BOOT_DISK_KMS_KEYRING The KMS keyring of the key. To set the kms-keyring attribute: ▸ provide the argument --boot-disk-kms-key on the command line with a fully specified name; ▸ provide the argument --boot-disk-kms-keyring on the command line. --boot-disk-kms-location=BOOT_DISK_KMS_LOCATION The Cloud location for the key. To set the kms-location attribute: ▸ provide the argument --boot-disk-kms-key on the command line with a fully specified name; ▸ provide the argument --boot-disk-kms-location on the command line. --boot-disk-kms-project=BOOT_DISK_KMS_PROJECT The Cloud project for the key. To set the kms-project attribute: ▸ provide the argument --boot-disk-kms-key on the command line with a fully specified name; ▸ provide the argument --boot-disk-kms-project on the command line; ▸ set the property core/project. Custom machine type extensions. --custom-cpu=CUSTOM_CPU A whole number value specifying the number of cores that are needed in the custom machine type. For some machine types, shared-core values can also be used. For example, for E2 machine types, you can specify micro, small, or medium. This flag must be specified if any of the other arguments in this group are specified. --custom-memory=CUSTOM_MEMORY A whole number value indicating how much memory is desired in the custom machine type. A size unit should be provided (eg. 3072MB or 9GB) - if no units are specified, GB is assumed. This flag must be specified if any of the other arguments in this group are specified. --custom-extensions Use the extended custom machine type. --custom-vm-type=CUSTOM_VM_TYPE Specifies VM type. n1 - VMs with CPU platforms Skylake and older, n2 - VMs with CPU platform Cascade Lake. n2 offers flexible sizing from 2 to 80 vCPUs, and 1 to 640GBs of memory. It also features a number of performance enhancements including exposing a more accurate NUMA topology to the guest OS. The default is n1. --image-project=IMAGE_PROJECT The Google Cloud project against which all image and image family references will be resolved. It is best practice to define image-project. A full list of available projects can be generated by running gcloud projects list. ◆ If specifying one of our public images, image-project must be provided. ◆ If there are several of the same image-family value in multiple projects, image-project must be specified to clarify the image to be used. ◆ If not specified and either image or image-family is provided, the current default project is used. At most one of these can be specified: --image=IMAGE Specifies the boot image for the instances. For each instance, a new boot disk will be created from the given image. Each boot disk will have the same name as the instance. To view a list of public images and projects, run $ gcloud compute images list. It is best practice to use --image when a specific version of an image is needed. When using this option, --boot-disk-device-name and --boot-disk-size can be used to override the boot disk's device name and size, respectively. --image-family=IMAGE_FAMILY The image family for the operating system that the boot disk will be initialized with. Compute Engine offers multiple Linux distributions, some of which are available as both regular and Shielded VM images. When a family is specified instead of an image, the latest non-deprecated image associated with that family is used. It is best practice to use --image-family when the latest version of an image is needed. By default, debian-10 is assumed for this flag. Sole Tenancy. At most one of these can be specified: --node=NODE The name of the node to schedule this instance on. --node-affinity-file=NODE_AFFINITY_FILE The JSON/YAML file containing the configuration of desired nodes onto which this instance could be scheduled. These rules filter the nodes according to their node affinity labels. A node's affinity labels come from the node template of the group the node is in. The file should contain a list of a JSON/YAML objects with the following fields: key Corresponds to the node affinity label keys of the Node resource. operator Specifies the node selection type. Must be one of: IN: Requires Compute Engine to seek for matched nodes. NOT_IN: Requires Compute Engine to avoid certain nodes. values Optional. A list of values which correspond to the node affinity label values of the Node resource. --node-group=NODE_GROUP The name of the node group to schedule this instance on. Specifies the reservation for instances created from this template. --reservation=RESERVATION The name of the reservation, required when --reservation-affinity=specific. --reservation-affinity=RESERVATION_AFFINITY; default="any" The type of reservation for instances created from this template. RESERVATION_AFFINITY must be one of: any, none, specific. At most one of these can be specified: --scopes=[SCOPE,...] If not provided, the instance will be assigned the default scopes, described below. SCOPE can be either the full URI of the scope or an alias. Default scopes are assigned to all instances. Available aliases are: Alias URI bigquery https://www.googleapis.com/auth/bigquery cloud-platform https://www.googleapis.com/auth/cloud-platform cloud-source-repos https://www.googleapis.com/auth/source.full_control cloud-source-repos-ro https://www.googleapis.com/auth/source.read_only compute-ro https://www.googleapis.com/auth/compute.readonly compute-rw https://www.googleapis.com/auth/compute datastore https://www.googleapis.com/auth/datastore default https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring.write https://www.googleapis.com/auth/pubsub https://www.googleapis.com/auth/service.management.readonly https://www.googleapis.com/auth/servicecontrol https://www.googleapis.com/auth/trace.append gke-default https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring https://www.googleapis.com/auth/service.management.readonly https://www.googleapis.com/auth/servicecontrol https://www.googleapis.com/auth/trace.append logging-write https://www.googleapis.com/auth/logging.write monitoring https://www.googleapis.com/auth/monitoring monitoring-read https://www.googleapis.com/auth/monitoring.read monitoring-write https://www.googleapis.com/auth/monitoring.write pubsub https://www.googleapis.com/auth/pubsub service-control https://www.googleapis.com/auth/servicecontrol service-management https://www.googleapis.com/auth/service.management.readonly sql (deprecated) https://www.googleapis.com/auth/sqlservice sql-admin https://www.googleapis.com/auth/sqlservice.admin storage-full https://www.googleapis.com/auth/devstorage.full_control storage-ro https://www.googleapis.com/auth/devstorage.read_only storage-rw https://www.googleapis.com/auth/devstorage.read_write taskqueue https://www.googleapis.com/auth/taskqueue trace https://www.googleapis.com/auth/trace.append userinfo-email https://www.googleapis.com/auth/userinfo.email DEPRECATION WARNING: https://www.googleapis.com/auth/sqlservice account scope and sql alias do not provide SQL instance management capabilities and have been deprecated. Please, use https://www.googleapis.com/auth/sqlservice.admin or sql-admin to manage your Google SQL Service instances. --no-scopes Create instance without scopes At most one of these can be specified: --service-account=SERVICE_ACCOUNT A service account is an identity attached to the instance. Its access tokens can be accessed through the instance metadata server and are used to authenticate applications on the instance. The account can be set using an email address corresponding to the required service account. If not provided, the instance will use the project's default service account. --no-service-account Create instance without service account --service-proxy=[enabled],[access-log=ACCESS-LOG],[network=NETWORK],[proxy-port=PROXY-PORT],[serving-ports=SERVING-PORTS],[tracing=TRACING] Controls whether the Traffic Director service proxy (Envoy) and agent are installed and configured on the VM. "cloud-platform" scope is enabled automatically to allow connections to the Traffic Director API. Do not use the --no-scopes flag. enabled If specified, the service-proxy software will be installed when the instance is created. The instance is configured to work with Traffic Director. serving-ports Semi-colon-separated (;) list of the ports, specified inside quotation marks ("), on which the customer's application/workload is serving. For example: serving-ports="80;8080" The service proxy will intercept inbound traffic, then forward it to the specified serving port(s) on localhost. If not provided, no incoming traffic is intercepted. proxy-port The port on which the service proxy listens. The VM intercepts traffic and redirects it to this port to be handled by the service proxy. If omitted, the default value is '15001'. tracing Enables the service proxy to generate distributed tracing information. If set to ON, the service proxy's control plane generates a configuration that enables request ID-based tracing. For more information, refer to the generate_request_id documentation for the Envoy proxy. Allowed values are ON and OFF. access-log The filepath for access logs sent to the service proxy by the control plane. All incoming and outgoing requests are recorded in this file. For more information, refer to the file access log documentation for the Envoy proxy. network The name of a valid VPC network. The Google Cloud Platform VPC network used by the service proxy's control plane to generate dynamic configuration for the service proxy. --service-proxy-labels=[KEY=VALUE, ...,...] Labels that you can apply to your service proxy. These will be reflected in your Envoy proxy's bootstrap metadata. These can be any key=value pairs that you want to set as proxy metadata (for example, for use with config filtering). You might use these flags for application and version labels: app=review and/or version=canary. GCLOUD WIDE FLAGS These flags are available to all commands: --access-token-file, --account, --billing-project, --configuration, --flags-file, --flatten, --format, --help, --impersonate-service-account, --log-http, --project, --quiet, --trace-token, --user-output-enabled, --verbosity. Run $ gcloud help for details. NOTES These variants are also available: $ gcloud alpha compute instance-templates create $ gcloud beta compute instance-templates create