Browse Source

etcd/backup: native ansible modules instead of shell (#10540)

This make native ansible features (dry-run, changed state) easier to
have, and should have a minimal performance impact, since it only runs
on the etcd members.
pull/10509/merge
Max Gautier 1 year ago
committed by GitHub
parent
commit
8f0e553e11
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 4 deletions
  1. 18
      roles/etcd/handlers/backup_cleanup.yml

18
roles/etcd/handlers/backup_cleanup.yml

@ -2,11 +2,21 @@
- name: Cleanup etcd backups - name: Cleanup etcd backups
command: /bin/true command: /bin/true
notify: notify:
- Find old etcd backups
- Remove old etcd backups - Remove old etcd backups
- name: Find old etcd backups
ansible.builtin.find:
file_type: directory
recurse: false
paths: "{{ etcd_backup_prefix }}"
patterns: "etcd-*"
register: _etcd_backups
when: etcd_backup_retention_count >= 0
- name: Remove old etcd backups - name: Remove old etcd backups
shell:
chdir: "{{ etcd_backup_prefix }}"
cmd: "set -o pipefail && find . -name 'etcd-*' -type d | sort -n | head -n -{{ etcd_backup_retention_count }} | xargs rm -rf"
executable: /bin/bash
ansible.builtin.file:
state: absent
path: "{{ item }}"
loop: "{{ (_etcd_backups.files | sort(attribute='ctime', reverse=True))[etcd_backup_retention_count:] | map(attribute='path') }}"
when: etcd_backup_retention_count >= 0 when: etcd_backup_retention_count >= 0
Loading…
Cancel
Save