|
|
|
@ -61,6 +61,7 @@ options:
|
|
|
|
|
- An array of disks that are associated with the instances that are created from
|
|
|
|
|
this template.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
suboptions:
|
|
|
|
|
auto_delete:
|
|
|
|
|
description:
|
|
|
|
@ -83,21 +84,25 @@ options:
|
|
|
|
|
the instance. This name can be used to reference the device for mounting,
|
|
|
|
|
resizing, and so on, from within the instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
disk_encryption_key:
|
|
|
|
|
description:
|
|
|
|
|
- Encrypts or decrypts a disk using a customer-supplied encryption key.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
suboptions:
|
|
|
|
|
raw_key:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies a 256-bit customer-supplied encryption key, encoded in RFC
|
|
|
|
|
4648 base64 to either encrypt or decrypt this resource.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
rsa_encrypted_key:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied
|
|
|
|
|
encryption key to either encrypt or decrypt this resource.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
index:
|
|
|
|
|
description:
|
|
|
|
|
- Assigns a zero-based index to this disk, where 0 is reserved for the boot
|
|
|
|
@ -105,28 +110,33 @@ options:
|
|
|
|
|
disk would have a unique index number. If not specified, the server will
|
|
|
|
|
choose an appropriate value.
|
|
|
|
|
required: false
|
|
|
|
|
type: int
|
|
|
|
|
initialize_params:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies the parameters for a new disk that will be created alongside the
|
|
|
|
|
new instance. Use initialization parameters to create boot disks or local
|
|
|
|
|
SSDs attached to the new instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
suboptions:
|
|
|
|
|
disk_name:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies the disk name. If not specified, the default is to use the
|
|
|
|
|
name of the instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
disk_size_gb:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies the size of the disk in base-2 GB.
|
|
|
|
|
required: false
|
|
|
|
|
type: int
|
|
|
|
|
disk_type:
|
|
|
|
|
description:
|
|
|
|
|
- Reference to a disk type.
|
|
|
|
|
- Specifies the disk type to use to create the instance.
|
|
|
|
|
- If not specified, the default is pd-standard.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
source_image:
|
|
|
|
|
description:
|
|
|
|
|
- The source image to create this disk. When creating a new instance,
|
|
|
|
@ -134,6 +144,7 @@ options:
|
|
|
|
|
create a disk with one of the public operating system images, specify
|
|
|
|
|
the image by its family name.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
aliases:
|
|
|
|
|
- image
|
|
|
|
|
- image_family
|
|
|
|
@ -145,12 +156,14 @@ options:
|
|
|
|
|
you cannot create disks for instances in a managed instance group if
|
|
|
|
|
the source images are encrypted with your own keys.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
suboptions:
|
|
|
|
|
raw_key:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies a 256-bit customer-supplied encryption key, encoded in
|
|
|
|
|
RFC 4648 base64 to either encrypt or decrypt this resource.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
interface:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies the disk interface to use for attaching this disk, which is either
|
|
|
|
@ -159,12 +172,14 @@ options:
|
|
|
|
|
to attach a persistent disk in any other format than SCSI.
|
|
|
|
|
- 'Some valid choices include: "SCSI", "NVME"'
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
mode:
|
|
|
|
|
description:
|
|
|
|
|
- The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If
|
|
|
|
|
not specified, the default is to attach the disk in READ_WRITE mode.
|
|
|
|
|
- 'Some valid choices include: "READ_WRITE", "READ_ONLY"'
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
source:
|
|
|
|
|
description:
|
|
|
|
|
- Reference to a disk. When creating a new instance, one of initializeParams.sourceImage
|
|
|
|
@ -177,44 +192,53 @@ options:
|
|
|
|
|
name-of-resource` to a gcp_compute_disk task and then set this source field
|
|
|
|
|
to "{{ name-of-resource }}"'
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
type:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies the type of the disk, either SCRATCH or PERSISTENT. If not specified,
|
|
|
|
|
the default is PERSISTENT.
|
|
|
|
|
- 'Some valid choices include: "SCRATCH", "PERSISTENT"'
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
guest_accelerators:
|
|
|
|
|
description:
|
|
|
|
|
- List of the type and count of accelerator cards attached to the instance .
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
suboptions:
|
|
|
|
|
accelerator_count:
|
|
|
|
|
description:
|
|
|
|
|
- The number of the guest accelerator cards exposed to this instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: int
|
|
|
|
|
accelerator_type:
|
|
|
|
|
description:
|
|
|
|
|
- Full or partial URL of the accelerator type resource to expose to this instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
labels:
|
|
|
|
|
description:
|
|
|
|
|
- Labels to apply to this instance. A list of key->value pairs.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
version_added: 2.9
|
|
|
|
|
metadata:
|
|
|
|
|
description:
|
|
|
|
|
- The metadata key/value pairs to assign to instances that are created from this
|
|
|
|
|
template. These pairs can consist of custom metadata or predefined keys.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
machine_type:
|
|
|
|
|
description:
|
|
|
|
|
- A reference to a machine type which defines VM kind.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
min_cpu_platform:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies a minimum CPU platform for the VM instance. Applicable values are
|
|
|
|
|
the friendly names of CPU platforms .
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
name:
|
|
|
|
|
description:
|
|
|
|
|
- The name of the resource, provided by the client when initially creating the
|
|
|
|
@ -224,12 +248,14 @@ options:
|
|
|
|
|
letter, and all following characters must be a dash, lowercase letter, or digit,
|
|
|
|
|
except the last character, which cannot be a dash.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
network_interfaces:
|
|
|
|
|
description:
|
|
|
|
|
- An array of configurations for this interface. This specifies how this interface
|
|
|
|
|
is configured to interact with other network services, such as connecting to
|
|
|
|
|
the internet. Only one network interface is supported per instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
suboptions:
|
|
|
|
|
access_configs:
|
|
|
|
|
description:
|
|
|
|
@ -237,6 +263,7 @@ options:
|
|
|
|
|
config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
|
|
|
|
|
then this instance will have no external internet access.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
suboptions:
|
|
|
|
|
name:
|
|
|
|
|
description:
|
|
|
|
@ -244,6 +271,7 @@ options:
|
|
|
|
|
is External NAT but you can use any arbitrary string you would like.
|
|
|
|
|
For example, My external IP or Network Access.
|
|
|
|
|
required: true
|
|
|
|
|
type: str
|
|
|
|
|
nat_ip:
|
|
|
|
|
description:
|
|
|
|
|
- Reference to an address.
|
|
|
|
@ -258,16 +286,19 @@ options:
|
|
|
|
|
name-of-resource` to a gcp_compute_address task and then set this nat_ip
|
|
|
|
|
field to "{{ name-of-resource }}"'
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
type:
|
|
|
|
|
description:
|
|
|
|
|
- The type of configuration. The default and only option is ONE_TO_ONE_NAT.
|
|
|
|
|
- 'Some valid choices include: "ONE_TO_ONE_NAT"'
|
|
|
|
|
required: true
|
|
|
|
|
type: str
|
|
|
|
|
alias_ip_ranges:
|
|
|
|
|
description:
|
|
|
|
|
- An array of alias IP ranges for this network interface. Can only be specified
|
|
|
|
|
for network interfaces on subnet-mode networks.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
suboptions:
|
|
|
|
|
ip_cidr_range:
|
|
|
|
|
description:
|
|
|
|
@ -277,12 +308,14 @@ options:
|
|
|
|
|
This range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g.
|
|
|
|
|
/24) or a CIDR format string (e.g. 10.1.2.0/24).
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
subnetwork_range_name:
|
|
|
|
|
description:
|
|
|
|
|
- Optional subnetwork secondary range name specifying the secondary range
|
|
|
|
|
from which to allocate the IP CIDR range for this alias IP range. If
|
|
|
|
|
left unspecified, the primary range of the subnetwork will be used.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
network:
|
|
|
|
|
description:
|
|
|
|
|
- Specifies the title of an existing network. When creating an instance, if
|
|
|
|
@ -295,12 +328,14 @@ options:
|
|
|
|
|
name-of-resource` to a gcp_compute_network task and then set this network
|
|
|
|
|
field to "{{ name-of-resource }}"'
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
network_ip:
|
|
|
|
|
description:
|
|
|
|
|
- An IPv4 internal network address to assign to the instance for this network
|
|
|
|
|
interface. If not specified by the user, an unused internal IP is assigned
|
|
|
|
|
by the system.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
subnetwork:
|
|
|
|
|
description:
|
|
|
|
|
- Reference to a VPC network.
|
|
|
|
@ -313,10 +348,12 @@ options:
|
|
|
|
|
name-of-resource` to a gcp_compute_subnetwork task and then set this subnetwork
|
|
|
|
|
field to "{{ name-of-resource }}"'
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
scheduling:
|
|
|
|
|
description:
|
|
|
|
|
- Sets the scheduling options for this instance.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
suboptions:
|
|
|
|
|
automatic_restart:
|
|
|
|
|
description:
|
|
|
|
@ -333,6 +370,7 @@ options:
|
|
|
|
|
and only possible behavior is TERMINATE.
|
|
|
|
|
- For more information, see Setting Instance Scheduling Options.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
preemptible:
|
|
|
|
|
description:
|
|
|
|
|
- Defines whether the instance is preemptible. This can only be set during
|
|
|
|
@ -345,15 +383,18 @@ options:
|
|
|
|
|
- A list of service accounts, with their specified scopes, authorized for this
|
|
|
|
|
instance. Only one service account per VM instance is supported.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
suboptions:
|
|
|
|
|
email:
|
|
|
|
|
description:
|
|
|
|
|
- Email address of the service account.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
scopes:
|
|
|
|
|
description:
|
|
|
|
|
- The list of scopes to be made available for this service account.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
status:
|
|
|
|
|
description:
|
|
|
|
|
- 'The status of the instance. One of the following values: PROVISIONING, STAGING,
|
|
|
|
@ -363,6 +404,7 @@ options:
|
|
|
|
|
- 'Some valid choices include: "PROVISIONING", "STAGING", "RUNNING", "STOPPING",
|
|
|
|
|
"SUSPENDING", "SUSPENDED", "TERMINATED"'
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
version_added: 2.8
|
|
|
|
|
tags:
|
|
|
|
|
description:
|
|
|
|
@ -371,6 +413,7 @@ options:
|
|
|
|
|
creation. The tags can be later modified by the setTags method. Each tag within
|
|
|
|
|
the list must comply with RFC1035.
|
|
|
|
|
required: false
|
|
|
|
|
type: dict
|
|
|
|
|
suboptions:
|
|
|
|
|
fingerprint:
|
|
|
|
|
description:
|
|
|
|
@ -380,15 +423,18 @@ options:
|
|
|
|
|
every request to modify or update metadata. You must always provide an up-to-date
|
|
|
|
|
fingerprint hash in order to update or change metadata.
|
|
|
|
|
required: false
|
|
|
|
|
type: str
|
|
|
|
|
items:
|
|
|
|
|
description:
|
|
|
|
|
- An array of tags. Each tag must be 1-63 characters long, and comply with
|
|
|
|
|
RFC1035.
|
|
|
|
|
required: false
|
|
|
|
|
type: list
|
|
|
|
|
zone:
|
|
|
|
|
description:
|
|
|
|
|
- A reference to the zone where the machine resides.
|
|
|
|
|
required: true
|
|
|
|
|
type: str
|
|
|
|
|
extends_documentation_fragment: gcp
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
@ -1139,7 +1185,7 @@ def wait_for_operation(module, response):
|
|
|
|
|
return {}
|
|
|
|
|
status = navigate_hash(op_result, ['status'])
|
|
|
|
|
wait_done = wait_for_completion(status, op_result, module)
|
|
|
|
|
return fetch_resource(module, navigate_hash(wait_done, ['targetLink']), 'compute#instance')
|
|
|
|
|
return decode_response(fetch_resource(module, navigate_hash(wait_done, ['targetLink']), 'compute#instance'), module)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def wait_for_completion(status, op_result, module):
|
|
|
|
|