46 lines
1.8 KiB
YAML
46 lines
1.8 KiB
YAML
---
|
|
# yamllint disable rule:line-length
|
|
- name: Update platforms
|
|
hosts: localhost
|
|
tasks:
|
|
- name: Filtering platforms list using the group defined in the MOLECULE_GROUP environment variable
|
|
set_fact:
|
|
molecule_yml: "{{ molecule_yml | combine({'platforms': (molecule_yml.platforms | selectattr('groups', 'contains', lookup('env', 'MOLECULE_GROUP')))}) }}"
|
|
when: ansible_env.MOLECULE_GROUP is defined
|
|
|
|
- name: Destroy
|
|
hosts: localhost
|
|
connection: local
|
|
gather_facts: false
|
|
no_log: '{{ molecule_no_log }}'
|
|
tasks:
|
|
- name: Destroy molecule instance(s)
|
|
google.cloud.gcp_compute_instance:
|
|
name: '{{ item.name }}'
|
|
state: absent
|
|
zone: "{{ item.zone | default(molecule_yml.driver.region + '-b') }}"
|
|
project: "{{ molecule_yml.driver.project_id | default(lookup('env', 'GCE_PROJECT_ID')) }}"
|
|
scopes: "{{ molecule_yml.driver.scopes | default(['https://www.googleapis.com/auth/compute'], True) }}"
|
|
service_account_email: '{{ molecule_yml.driver.service_account_email | default (omit, true) }}'
|
|
service_account_file: '{{ molecule_yml.driver.service_account_file | default (omit, true) }}'
|
|
auth_kind: '{{ molecule_yml.driver.auth_kind | default(omit, true) }}'
|
|
register: async_results
|
|
loop: '{{ molecule_yml.platforms }}'
|
|
async: 7200
|
|
poll: 0
|
|
notify:
|
|
- Wipe out instance config
|
|
- Dump instance config
|
|
|
|
- name: Wait for instance(s) deletion to complete
|
|
ansible.builtin.async_status:
|
|
jid: '{{ item.ansible_job_id }}'
|
|
register: server
|
|
until: server.finished
|
|
retries: 300
|
|
delay: 10
|
|
loop: '{{ async_results.results }}'
|
|
|
|
handlers:
|
|
- name: Import main handler tasks
|
|
ansible.builtin.import_tasks: handlers/main.yml
|