diff --git a/awx/update_kuma_remove.yaml b/awx/update_kuma_remove.yaml new file mode 100644 index 0000000..37ecae3 --- /dev/null +++ b/awx/update_kuma_remove.yaml @@ -0,0 +1,89 @@ +--- +- name: Remove Uptime Kuma GCP Resources + hosts: all + + vars: + # GCP Configuration + gcp_project: "your-gcp-project-id" + gcp_region: "us-central1" + service_name: "uptime-kuma" + ar_repo_name: "dockerhub" + data_bucket_name: "{{ gcp_project }}-uptime-kuma-data" + + tasks: + # ------------------------------------------------------------- + # 1. Delete Cloud Run Service + # ------------------------------------------------------------- + - name: Delete Uptime Kuma Cloud Run service + ansible.builtin.shell: + executable: /bin/bash + cmd: | + if [ -f '/home/builder/google-cloud-sdk/path.bash.inc' ]; then . '/home/builder/google-cloud-sdk/path.bash.inc'; fi + set -e + if gcloud run services describe {{ service_name }} \ + --region={{ gcp_region }} \ + --project={{ gcp_project }} >/dev/null 2>&1; then + gcloud run services delete {{ service_name }} \ + --region={{ gcp_region }} \ + --project={{ gcp_project }} \ + --quiet + echo SERVICE_DELETED + else + echo SERVICE_NOT_FOUND + fi + register: service_delete_output + changed_when: "'SERVICE_DELETED' in service_delete_output.stdout" + + # ------------------------------------------------------------- + # 2. Delete Cloud Storage Data Bucket and Contents + # ------------------------------------------------------------- + - name: Delete Uptime Kuma Cloud Storage data bucket + ansible.builtin.shell: + executable: /bin/bash + cmd: | + if [ -f '/home/builder/google-cloud-sdk/path.bash.inc' ]; then . '/home/builder/google-cloud-sdk/path.bash.inc'; fi + set -e + if gcloud storage buckets describe gs://{{ data_bucket_name }} \ + --project={{ gcp_project }} >/dev/null 2>&1; then + gcloud storage rm --recursive gs://{{ data_bucket_name }} \ + --project={{ gcp_project }} \ + --quiet + echo BUCKET_DELETED + else + echo BUCKET_NOT_FOUND + fi + register: bucket_delete_output + changed_when: "'BUCKET_DELETED' in bucket_delete_output.stdout" + + # ------------------------------------------------------------- + # 3. Delete Artifact Registry Remote Repository + # ------------------------------------------------------------- + - name: Delete Artifact Registry Docker Hub remote repository + ansible.builtin.shell: + executable: /bin/bash + cmd: | + if [ -f '/home/builder/google-cloud-sdk/path.bash.inc' ]; then . '/home/builder/google-cloud-sdk/path.bash.inc'; fi + set -e + if gcloud artifacts repositories describe {{ ar_repo_name }} \ + --location={{ gcp_region }} \ + --project={{ gcp_project }} >/dev/null 2>&1; then + gcloud artifacts repositories delete {{ ar_repo_name }} \ + --location={{ gcp_region }} \ + --project={{ gcp_project }} \ + --quiet + echo REPO_DELETED + else + echo REPO_NOT_FOUND + fi + register: repo_delete_output + changed_when: "'REPO_DELETED' in repo_delete_output.stdout" + + # ------------------------------------------------------------- + # 4. Removal Summary + # ------------------------------------------------------------- + - name: Show removal summary + ansible.builtin.debug: + msg: + - "Cloud Run Service ({{ service_name }}): {{ service_delete_output.stdout_lines | last }}" + - "Cloud Storage Bucket (gs://{{ data_bucket_name }}): {{ bucket_delete_output.stdout_lines | last }}" + - "Artifact Registry Repo ({{ ar_repo_name }}): {{ repo_delete_output.stdout_lines | last }}"