diff options
| author | Jan Chaloupka <jchaloup@redhat.com> | 2017-06-14 09:32:02 +0200 | 
|---|---|---|
| committer | Jan Chaloupka <jchaloup@redhat.com> | 2017-06-14 09:48:24 +0200 | 
| commit | 9e2fcb48c36b9478e34b93ed0025c6b77b7ad597 (patch) | |
| tree | c0a833746bedbcc6043f7e9ee08b76a088ee793d /roles/etcd_common/tasks | |
| parent | 8ab1f771de34c52b1c85493a0002ac12952a0ed5 (diff) | |
| download | openshift-9e2fcb48c36b9478e34b93ed0025c6b77b7ad597.tar.gz openshift-9e2fcb48c36b9478e34b93ed0025c6b77b7ad597.tar.bz2 openshift-9e2fcb48c36b9478e34b93ed0025c6b77b7ad597.tar.xz openshift-9e2fcb48c36b9478e34b93ed0025c6b77b7ad597.zip | |
move etcd backup to etcd_common role
Diffstat (limited to 'roles/etcd_common/tasks')
| -rw-r--r-- | roles/etcd_common/tasks/backup.yml | 72 | ||||
| -rw-r--r-- | roles/etcd_common/tasks/drop_etcdctl.yml (renamed from roles/etcd_common/tasks/etcdctl.yml) | 0 | ||||
| -rw-r--r-- | roles/etcd_common/tasks/main.yml | 9 | 
3 files changed, 81 insertions, 0 deletions
| diff --git a/roles/etcd_common/tasks/backup.yml b/roles/etcd_common/tasks/backup.yml new file mode 100644 index 000000000..4a4832275 --- /dev/null +++ b/roles/etcd_common/tasks/backup.yml @@ -0,0 +1,72 @@ +--- +- set_fact: +    l_etcd_backup_dir: "{{ etcd_data_dir }}/openshift-backup-{{ r_etcd_common_backup_tag }}{{ r_etcd_common_backup_sufix_name }}" + +# TODO: replace shell module with command and update later checks +- name: Check available disk space for etcd backup +  shell: df --output=avail -k {{ etcd_data_dir }} | tail -n 1 +  register: l_avail_disk +  # AUDIT:changed_when: `false` because we are only inspecting +  # state, not manipulating anything +  changed_when: false + +# TODO: replace shell module with command and update later checks +- name: Check current etcd disk usage +  shell: du --exclude='*openshift-backup*' -k {{ etcd_data_dir }} | tail -n 1 | cut -f1 +  register: l_etcd_disk_usage +  when: r_etcd_common_embedded_etcd | bool +  # AUDIT:changed_when: `false` because we are only inspecting +  # state, not manipulating anything +  changed_when: false + +- name: Abort if insufficient disk space for etcd backup +  fail: +    msg: > +      {{ l_etcd_disk_usage.stdout }} Kb disk space required for etcd backup, +      {{ l_avail_disk.stdout }} Kb available. +  when: (r_etcd_common_embedded_etcd | bool) and (l_etcd_disk_usage.stdout|int > l_avail_disk.stdout|int) + +# For non containerized and non embedded we should have the correct version of +# etcd installed already. So don't do anything. +# +# For containerized installs we now exec into etcd_container +# +# For embedded non containerized we need to ensure we have the latest version +# etcd on the host. +- name: Detecting Atomic Host Operating System +  stat: +    path: /run/ostree-booted +  register: l_ostree_booted + +- name: Install latest etcd for embedded +  package: +    name: etcd +    state: latest +  when: +  - r_etcd_common_embedded_etcd | bool +  - not l_ostree_booted.stat.exists | bool + +- name: Generate etcd backup +  command: > +    {{ r_etcd_common_etcdctl_command }} backup --data-dir={{ etcd_data_dir }} +    --backup-dir={{ l_etcd_backup_dir }} + +# According to the docs change you can simply copy snap/db +# https://github.com/openshift/openshift-docs/commit/b38042de02d9780842dce95cfa0ef45d53b58bc6 +- name: Check for v3 data store +  stat: +    path: "{{ etcd_data_dir }}/member/snap/db" +  register: l_v3_db + +- name: Copy etcd v3 data store +  command: > +    cp -a {{ etcd_data_dir }}/member/snap/db +    {{ l_etcd_backup_dir }}/member/snap/ +  when: l_v3_db.stat.exists + +- set_fact: +    r_etcd_common_backup_complete: True + +- name: Display location of etcd backup +  debug: +    msg: "Etcd backup created in {{ l_etcd_backup_dir }}" diff --git a/roles/etcd_common/tasks/etcdctl.yml b/roles/etcd_common/tasks/drop_etcdctl.yml index 6cb456677..6cb456677 100644 --- a/roles/etcd_common/tasks/etcdctl.yml +++ b/roles/etcd_common/tasks/drop_etcdctl.yml diff --git a/roles/etcd_common/tasks/main.yml b/roles/etcd_common/tasks/main.yml new file mode 100644 index 000000000..6ed87e6c7 --- /dev/null +++ b/roles/etcd_common/tasks/main.yml @@ -0,0 +1,9 @@ +--- +- name: Fail if invalid r_etcd_common_action provided +  fail: +    msg: "etcd_common role can only be called with 'noop' or 'backup' or 'drop_etcdctl'" +  when: r_etcd_common_action not in ['noop', 'backup', 'drop_etcdctl'] + +- name: Include main action task file +  include: "{{ r_etcd_common_action }}.yml" +  when: r_etcd_common_action != "noop" | 
