mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
gce_instance_template: Add ability to use disks_gce_struct (#25500)
* Add ability to use disks_gce_struct * Fixed typos in the options section * Spacing fixes
This commit is contained in:
parent
25f943e22f
commit
c22ec81b99
1 changed files with 39 additions and 2 deletions
|
@ -140,6 +140,13 @@ options:
|
||||||
- Support passing in the GCE-specific
|
- Support passing in the GCE-specific
|
||||||
formatted networkInterfaces[] structure.
|
formatted networkInterfaces[] structure.
|
||||||
default: null
|
default: null
|
||||||
|
disks_gce_struct:
|
||||||
|
description:
|
||||||
|
- Support passing in the GCE-specific
|
||||||
|
formatted formatted disks[] structure. Case sensitive.
|
||||||
|
see U(https://cloud.google.com/compute/docs/reference/latest/instanceTemplates#resource) for detailed information
|
||||||
|
default: null
|
||||||
|
version_added: "2.4"
|
||||||
project_id:
|
project_id:
|
||||||
description:
|
description:
|
||||||
- your GCE project ID
|
- your GCE project ID
|
||||||
|
@ -205,6 +212,32 @@ EXAMPLES = '''
|
||||||
project_id: "{{ project_id }}"
|
project_id: "{{ project_id }}"
|
||||||
credentials_file: "{{ credentials_file }}"
|
credentials_file: "{{ credentials_file }}"
|
||||||
service_account_email: "{{ service_account_email }}"
|
service_account_email: "{{ service_account_email }}"
|
||||||
|
|
||||||
|
# Example playbook using disks_gce_struct
|
||||||
|
- name: Compute Engine Instance Template Examples
|
||||||
|
hosts: localhost
|
||||||
|
vars:
|
||||||
|
service_account_email: "your-sa@your-project-name.iam.gserviceaccount.com"
|
||||||
|
credentials_file: "/path/to/your-key.json"
|
||||||
|
project_id: "your-project-name"
|
||||||
|
tasks:
|
||||||
|
- name: create instance template
|
||||||
|
gce_instance_template:
|
||||||
|
name: foo
|
||||||
|
size: n1-standard-1
|
||||||
|
state: present
|
||||||
|
project_id: "{{ project_id }}"
|
||||||
|
credentials_file: "{{ credentials_file }}"
|
||||||
|
service_account_email: "{{ service_account_email }}"
|
||||||
|
disks_gce_struct:
|
||||||
|
- device_name: /dev/sda
|
||||||
|
boot: true
|
||||||
|
autoDelete: true
|
||||||
|
initializeParams:
|
||||||
|
diskSizeGb: 30
|
||||||
|
diskType: pd-ssd
|
||||||
|
sourceImage: projects/debian-cloud/global/images/family/debian-8
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
RETURN = '''
|
RETURN = '''
|
||||||
|
@ -234,7 +267,6 @@ except ImportError:
|
||||||
|
|
||||||
def get_info(inst):
|
def get_info(inst):
|
||||||
"""Retrieves instance template information
|
"""Retrieves instance template information
|
||||||
|
|
||||||
"""
|
"""
|
||||||
return({
|
return({
|
||||||
'name': inst.name,
|
'name': inst.name,
|
||||||
|
@ -272,6 +304,7 @@ def create_instance_template(module, gce):
|
||||||
metadata = module.params.get('metadata')
|
metadata = module.params.get('metadata')
|
||||||
description = module.params.get('description')
|
description = module.params.get('description')
|
||||||
disks = module.params.get('disks')
|
disks = module.params.get('disks')
|
||||||
|
disks_gce_struct = module.params.get('disks_gce_struct')
|
||||||
changed = False
|
changed = False
|
||||||
|
|
||||||
# args of ex_create_instancetemplate
|
# args of ex_create_instancetemplate
|
||||||
|
@ -360,6 +393,9 @@ def create_instance_template(module, gce):
|
||||||
if tags is not None:
|
if tags is not None:
|
||||||
gce_args['tags'] = tags
|
gce_args['tags'] = tags
|
||||||
|
|
||||||
|
if disks_gce_struct is not None:
|
||||||
|
gce_args['disks_gce_struct'] = disks_gce_struct
|
||||||
|
|
||||||
# Try to convert the user's metadata value into the format expected
|
# Try to convert the user's metadata value into the format expected
|
||||||
# by GCE. First try to ensure user has proper quoting of a
|
# by GCE. First try to ensure user has proper quoting of a
|
||||||
# dictionary-like syntax using 'literal_eval', then convert the python
|
# dictionary-like syntax using 'literal_eval', then convert the python
|
||||||
|
@ -534,7 +570,8 @@ def main():
|
||||||
project_id=dict(),
|
project_id=dict(),
|
||||||
pem_file=dict(type='path'),
|
pem_file=dict(type='path'),
|
||||||
credentials_file=dict(type='path'),
|
credentials_file=dict(type='path'),
|
||||||
subnetwork_region=dict()
|
subnetwork_region=dict(),
|
||||||
|
disks_gce_struct=dict(type='list')
|
||||||
),
|
),
|
||||||
mutually_exclusive=[['source', 'image']],
|
mutually_exclusive=[['source', 'image']],
|
||||||
required_one_of=[['image', 'image_family']],
|
required_one_of=[['image', 'image_family']],
|
||||||
|
|
Loading…
Reference in a new issue