diff options
| -rw-r--r-- | playbooks/adhoc/upgrades/upgrade.yml | 27 | ||||
| -rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 6 | 
2 files changed, 20 insertions, 13 deletions
diff --git a/playbooks/adhoc/upgrades/upgrade.yml b/playbooks/adhoc/upgrades/upgrade.yml index ec0eca66c..948a320a2 100644 --- a/playbooks/adhoc/upgrades/upgrade.yml +++ b/playbooks/adhoc/upgrades/upgrade.yml @@ -14,25 +14,26 @@    roles:    - openshift_facts    tasks: -  - name: display all variables set for the current host -    debug: -      var: hostvars[inventory_hostname] -  - debug: var=embedded_etcd -  - name: Check available data dir disk space +  - debug: var=etcd_data_dir +  - name: Check available disk space for etcd backup +    # We assume to be using the data dir for all backups.      shell: >        df --output=avail -k {{ openshift.common.data_dir }} | tail -n 1      register: avail_disk -    when: embedded_etcd | bool -  - debug: var=avail_disk.stdout -  - name: Check current etcd disk usage + +  - name: Check current embedded etcd disk usage      shell: > -      du -k {{ openshift.common.data_dir }}/openshift.local.etcd | tail -n 1 | cut -f1 -    register: etc_disk_usage +      du -k {{ openshift.master.etcd_data_dir }} | tail -n 1 | cut -f1 +    register: etcd_disk_usage      when: embedded_etcd | bool -  - debug: var=etc_disk_usage.stdout +    - name: Abort if insufficient disk space for etcd backup -    fail: msg="{{ etc_disk_usage.stdout }} Kb disk space required for etcd backup, {{ avail_disk.stdout }} Kb available." -    when: (embedded_etcd | bool) and (etc_disk_usage.stdout|int > avail_disk.stdout|int) +    fail: msg="{{ etcd_disk_usage.stdout }} Kb disk space required for etcd backup, {{ avail_disk.stdout }} Kb available." +    when: (embedded_etcd | bool) and (etcd_disk_usage.stdout|int > avail_disk.stdout|int) +  - name: Install etcd (for etcdctl) +    yum: pkg=etcd state=latest +  - name: Generate etcd backup +    command: etcdctl backup    - fail: msg="All done for now."  - name: Re-Run cluster configuration to apply latest configuration changes diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 3570de693..44f8cbb31 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -465,6 +465,12 @@ def set_aggregate_facts(facts):              if 'cluster_public_hostname' in facts['master']:                  all_hostnames.add(facts['master']['cluster_public_hostname']) +            if facts['master']['embedded_etcd']: +                facts['master']['etcd_data_dir'] = os.path.join( +                    facts['common']['data_dir'], 'openshift.local.etcd') +            else: +                facts['master']['etcd_data_dir'] = '/var/lib/etcd' +          facts['common']['all_hostnames'] = list(all_hostnames)      return facts  | 
