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

138 lines
4.6 KiB
YAML
Raw Normal View History

- name: Download velero binary
get_url:
url: "{{ velero_binary_url }}"
dest: "./"
force: yes
register: result
until: "'OK' in result.msg"
delay: 3
retries: 5
- name: Installing velero inside e2e-test container
shell: |
tar -xvf velero-{{ velero_version }}-linux-amd64.tar.gz
mv velero-{{ velero_version }}-linux-amd64/velero /usr/local/bin/
- name: Checking the velero version
shell: velero version
register: velero
failed_when: "velero_version not in velero.stdout"
- block:
- name: Installing velero server inside cluster
shell: >
velero install \
--provider aws \
--bucket velero \
--secret-file ./credentials_minio \
--plugins velero/velero-plugin-for-aws:v1.0.0 \
--use-volume-snapshots=false \
--use-restic \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000
- name: Check velero server pod status
shell: kubectl get pod -n velero -l deploy=velero -o jsonpath='{.items[0].status.phase}'
register: velero_pod_status
until: "'Running' in velero_pod_status.stdout"
delay: 5
retries: 20
- name: Check velero server pod's container status
shell: kubectl get pod -n velero -l deploy=velero -o jsonpath='{.items[0].status.containerStatuses[0].state}'
register: velero_container_status
until: "'running' in velero_container_status.stdout"
delay: 5
retries: 20
- name: Check that restic daemonset pods are running
shell: kubectl get pods -n velero -l name=restic --no-headers -o custom-columns=:status.phase | sort | uniq
register: restic_pod_status
until: "restic_pod_status.stdout == 'Running'"
delay: 3
retries: 20
- name: Installing minio
shell: kubectl apply -f velero-{{ velero_version }}-linux-amd64/examples/minio/00-minio-deployment.yaml
args:
executable: /bin/bash
- name: Waiting for minio job to create bucket
shell: kubectl get pod -n velero -l job-name=minio-setup -o jsonpath='{.items[*].status.phase}'
register: minio_job_status
until: "'Succeeded' in minio_job_status.stdout"
delay: 5
retries: 20
- name: Checking for minio pod status
shell: kubectl get pod -n velero -l component=minio -ojsonpath='{.items[0].status.phase}'
register: minio_status
until: "'Running' in minio_status.stdout"
delay: 5
retries: 15
when: bucket_type == "minio"
- name: Get the velero server pod name
shell: kubectl get pod -n velero -l deploy=velero --no-headers -o custom-columns=:.metadata.name
args:
executable: /bin/bash
register: velero_pod
- name: Check if the velero-plugin for zfs-localpv is already added
shell: >
kubectl get deploy velero -n velero
-o jsonpath='{.spec.template.spec.initContainers[?(@.name=="velero-plugin")].name}'
args:
executable: /bin/bash
register: zfs_localpv_velero_plugin
# from velero version v1.6.0 velero plugin for openebs is renamed to openebs-velero-plugin
- name: Check if the velero-plugin for zfs-localpv is already added
shell: >
kubectl get deploy velero -n velero
-o jsonpath='{.spec.template.spec.initContainers[?(@.name=="openebs-velero-plugin")].name}'
args:
executable: /bin/bash
register: zfs_localpv_velero_plugin_latest
- name: Add velero-plugin for zfs-localpv
shell: velero plugin add {{ velero_plugin_name }}
args:
executable: /bin/bash
when:
- zfs_localpv_velero_plugin.stdout != 'velero-plugin'
- zfs_localpv_velero_plugin_latest.stdout != 'openebs-velero-plugin'
#After installing openebs velero plugin a new velero pod comes up in Running state and the older one will terminates.
- name: Wait until older velero pod terminates successfully
shell: kubectl get pods -n velero
args:
executable: /bin/bash
register: velero_pod_list
until: "'velero_pod.stdout' not in velero_pod_list.stdout"
delay: 3
retries: 30
- name: Check velero server pod status
shell: kubectl get pod -n velero -l deploy=velero -o jsonpath='{.items[0].status.phase}'
register: velero_pod_run
until: "'Running' in velero_pod_run.stdout"
delay: 5
retries: 20
- name: Check velero server pod's container status
shell: kubectl get pod -n velero -l deploy=velero -o jsonpath='{.items[0].status.containerStatuses[0].state}'
register: velero_container
until: "'running' in velero_container.stdout"
delay: 5
retries: 20
- name: Check velero plugin for VolumeSnapshotter is present
shell: velero plugin get
register: snapshotter_plugin
until: "'zfspv-blockstore' in snapshotter_plugin.stdout"
delay: 2
retries: 40