playbooks/roles/gcp_dev_desktop_lifecycle/tasks/destroy.yml

92 lines
2.4 KiB
YAML

- name: Preview GCP destroy/cleanup request
ansible.builtin.debug:
msg:
- "gcp_project_id={{ gcp_project_id | default('n/a') }}"
- "gcp_vm_name={{ gcp_vm_name | default(profile_name | default('n/a')) }}"
- "gcp_cleanup_mode={{ gcp_cleanup_mode | default(false) }}"
- "cloud_vm_destroy_mode={{ cloud_vm_destroy_mode | default('destroy') }}"
- name: List GCP managed instances
ansible.builtin.command:
argv:
- gcloud
- compute
- instances
- list
- --project
- "{{ gcp_project_id }}"
- --filter
- "labels.toolkit_scope=cloud-dev-desktop AND labels.managed_by=ansible"
- --format=value(name,zone.basename())
register: gcp_managed_instances
changed_when: false
when:
- gcp_cleanup_mode | default(false)
- not ansible_check_mode
- name: Park GCP VM in lowest-consumption mode
ansible.builtin.command:
argv:
- gcloud
- compute
- instances
- stop
- "{{ gcp_vm_name }}"
- --project
- "{{ gcp_project_id }}"
- --zone
- "{{ gcp_zone }}"
- --quiet
changed_when: true
when:
- not gcp_cleanup_mode | default(false)
- (cloud_vm_destroy_mode | default('destroy')) == 'park'
- not ansible_check_mode
- name: Delete GCP VM directly
ansible.builtin.command:
argv:
- gcloud
- compute
- instances
- delete
- "{{ gcp_vm_name }}"
- --project
- "{{ gcp_project_id }}"
- --zone
- "{{ gcp_zone }}"
- --quiet
changed_when: true
when:
- not gcp_cleanup_mode | default(false)
- (cloud_vm_destroy_mode | default('destroy')) == 'destroy'
- not ansible_check_mode
- name: Delete GCP managed instances
ansible.builtin.command:
argv:
- gcloud
- compute
- instances
- delete
- "{{ item.split()[0] }}"
- --project
- "{{ gcp_project_id }}"
- --zone
- "{{ item.split()[1] }}"
- --quiet
loop: "{{ gcp_managed_instances.stdout_lines | default([]) }}"
changed_when: true
when:
- gcp_cleanup_mode | default(false)
- not ansible_check_mode
- name: Remove GCP state file after destroy
ansible.builtin.file:
path: "{{ cloud_vm_state_file }}"
state: absent
when:
- cloud_vm_state_file is defined
- not gcp_cleanup_mode | default(false)
- (cloud_vm_destroy_mode | default('destroy')) == 'destroy'