47 lines
1.8 KiB
YAML
47 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
|