mirror of
https://github.com/imjasonh/gcloud-help
synced 2026-07-08 10:35:03 +00:00
978 lines
45 KiB
Text
978 lines
45 KiB
Text
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/<kms-project>/locations/<kms-location>/keyRings/<kms-keyring>/
|
|
cryptoKeys/<key-name>.
|
|
|
|
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/host-maintenance-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-11 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
|
|
|