Browse Source

Add etcd_data_dir fact.

Devan Goodwin 9 years ago
parent
commit
ef2e4fc1fa

+ 14 - 13
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

+ 6 - 0
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