Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 82 additions & 5 deletions ansible/roles/kill_platform/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,89 @@
when:
- inventory_hostname not in groups["hp_masternodes"]

- name: Remove any remaining docker data
- name: Prune stopped platform containers (dashmate)
community.docker.docker_prune:
containers: true
containers_filters:
label:
- "com.docker.compose.project=dashmate_{{ dash_network_name }}"
"label!":
- "com.docker.compose.service=core"
images: false
networks: false
volumes: false
builder_cache: false
when:
- inventory_hostname in groups["hp_masternodes"]

- name: Prune stopped platform containers (seeds)
community.docker.docker_prune:
containers: true
containers_filters:
label:
- "com.docker.compose.project={{ tenderdash_compose_project_name }}"
images: false
networks: false
volumes: false
builder_cache: false
when:
- inventory_hostname not in groups["hp_masternodes"]

- name: Prune only dangling Docker images
community.docker.docker_prune:
containers: false
images: true
images_filters:
dangling: false
networks: true
volumes: true
builder_cache: true
dangling: true
networks: false
volumes: false
builder_cache: false

- name: Check for remaining platform Docker resources
ansible.builtin.shell: |
set -euo pipefail

print_matching() {
local label="$1"
local pattern="$2"
local exclude="${3:-}"

awk -v label="$label" -v pattern="$pattern" -v exclude="$exclude" '
$0 ~ pattern && (exclude == "" || $0 !~ exclude) {
print label ": " $0
}
'
}

if [ "{{ inventory_hostname in groups.get('hp_masternodes', []) }}" = "True" ]; then
project="dashmate_{{ dash_network_name }}"

docker ps -a --format '{{ "{{" }}.Names{{ "}}" }}' |
print_matching "container" "^${project}-" "^${project}-core-1$"

docker volume ls --format '{{ "{{" }}.Name{{ "}}" }}' |
print_matching "volume" "^${project}_" "^${project}_core_data$"

docker network ls --format '{{ "{{" }}.Name{{ "}}" }}' |
print_matching "network" "^${project}_" "^${project}_default$"
else
docker ps -a --format '{{ "{{" }}.Names{{ "}}" }}' |
print_matching "container" '^tenderdash$'

docker network ls --format '{{ "{{" }}.Name{{ "}}" }}' |
print_matching "network" '^tenderdash_'
fi
args:
executable: /bin/bash
register: platform_docker_leftovers
changed_when: false
Comment thread
coderabbitai[bot] marked this conversation as resolved.

- name: Report platform Docker cleanup status
ansible.builtin.debug:
msg: |
{% if platform_docker_leftovers.stdout_lines | length > 0 %}
Remaining platform Docker resources after platform destroy on {{ inventory_hostname }}:
{{ platform_docker_leftovers.stdout }}
{% else %}
No remaining platform Docker containers, volumes, or networks after platform destroy on {{ inventory_hostname }}.
{% endif %}
Loading