zfs-localpv/e2e-tests/experiments/functional/backup_and_restore/incremental_backup.yml

85 lines
2.8 KiB
YAML
Raw Permalink Normal View History

- name: Obtain the mount path for the application
shell: >
kubectl get pods -n {{ app_ns }} -l {{ app_label }}
-o custom-columns=:.spec.containers[].volumeMounts[].mountPath --no-headers
args:
executable: /bin/bash
register: mount
- name: Record the mount path for the application
set_fact:
mount_path: "{{ mount.stdout }}"
- name: Dump some dummy data in application mount point
shell: >
kubectl exec -ti {{ app_pod_name }} -n {{ app_ns }} -- sh
-c "dd if=/dev/urandom of={{ mount_path }}/incr-file1 bs=4k count=1024 &&
md5sum {{ mount_path }}/incr-file1 > {{ mount_path }}/pre-incr-file1-md5 && sync;sync;sync"
args:
executable: /bin/bash
- name: Wait for some seconds
shell: sleep 60
- name: Again dump some dummy data
shell: >
kubectl exec -ti {{ app_pod_name }} -n {{ app_ns }} -- sh
-c "dd if=/dev/urandom of={{ mount_path }}/incr-file2 bs=4k count=1024 &&
md5sum {{ mount_path }}/incr-file2 > {{ mount_path }}/pre-incr-file2-md5 && sync;sync;sync"
args:
executable: /bin/bash
- name: Wait for some time to finish all incremental backup and at last full backup
shell: sleep 180
- name: Get the first backup name which is full backup by default
shell: velero get backup | grep {{ schedule_name }} | tail -n1 | awk '{print $1}'
args:
executable: /bin/bash
register: first_full_bkp
- name: Record the first full backup name
set_fact:
first_full_backup: "{{ first_full_bkp.stdout }}"
- name: Get the first incremental backup name
shell: velero get backup | grep {{ schedule_name }} | tail -n2 | head -n1 | awk '{print $1}'
args:
executable: /bin/bash
register: first_incr_bkp
- name: Record the first incremental backup name
set_fact:
first_incremental_backup: "{{ first_incr_bkp.stdout }}"
- name: Get the second incremental backup name
shell: velero get backup | grep {{ schedule_name }} | tail -n3 | head -n1 | awk '{print $1}'
args:
executable: /bin/bash
register: second_incr_bkp
- name: Record the second incremental backup name
set_fact:
second_incremental_backup: "{{ second_incr_bkp.stdout }}"
- name: Get the last full backup name which is after two incremental backups
shell: velero get backup | grep {{ schedule_name }} | tail -n4 | head -n1 | awk '{print $1}'
args:
executable: /bin/bash
register: last_full_bkp
- name: Record the last full backup name
set_fact:
last_full_backup: "{{ last_full_bkp.stdout }}"
- name: Check status of all four backups
shell: kubectl get backups.velero.io {{ item }} -n velero -o jsonpath='{.status.phase}'
args:
executable: /bin/bash
register: backup_status
failed_when: "backup_status.stdout != 'Completed'"
loop:
- "{{ first_full_backup }}"
- "{{ first_incremental_backup }}"
- "{{ second_incremental_backup }}"
- "{{ last_full_backup }}"