From bf4c3f21ce5ad2cc87ed2a2efda7ea3bb188c428 Mon Sep 17 00:00:00 2001 From: Giulio Fidente Date: Thu, 26 Jan 2017 13:31:38 +0100 Subject: Do not try to update the 'ceph' metapackage from CephMon role The 'ceph' metapackage is only provided by some repos so we should not explicitly pull it. Also adds a validation step to the CephMon and CephOSD roles to stop upgrade if the Ceph cluster is in error state. Change-Id: I5aa275677ada47a352a327b9be21927b852d16f3 --- puppet/services/ceph-mon.yaml | 5 ++++- puppet/services/ceph-osd.yaml | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/puppet/services/ceph-mon.yaml b/puppet/services/ceph-mon.yaml index 0c61305d..1ce58335 100644 --- a/puppet/services/ceph-mon.yaml +++ b/puppet/services/ceph-mon.yaml @@ -117,6 +117,9 @@ outputs: # Note we perform these tasks in list order, but they are all step0 so # we can perform a rolling upgrade of all mon nodes in step0, then a # rolling upgrade of all osd nodes in step1 + - name: Check status + tags: step0,validation + shell: ceph health | grep -qv HEALTH_ERR # FIXME(shardy) I suspect we can use heat or ansible facts here instead? - name: Get hostname tags: step0 @@ -127,7 +130,7 @@ outputs: service: name=ceph-mon@{{mon_id.stdout}} pattern=ceph-mon state=stopped - name: Update ceph packages tags: step0 - yum: name=ceph-mon,ceph state=latest + yum: name=ceph-mon state=latest - name: Start ceph-mon service tags: step0 service: name=ceph-mon@{{mon_id.stdout}} state=started diff --git a/puppet/services/ceph-osd.yaml b/puppet/services/ceph-osd.yaml index e9ed6c29..98f83d08 100644 --- a/puppet/services/ceph-osd.yaml +++ b/puppet/services/ceph-osd.yaml @@ -46,6 +46,9 @@ outputs: step_config: | include ::tripleo::profile::base::ceph::osd upgrade_batch_tasks: + - name: Check status + tags: step1,validation + shell: ceph health | grep -qv HEALTH_ERR - name: Get OSD IDs tags: step1 shell: ls /var/lib/ceph/osd | awk 'BEGIN { FS = "-" } ; { print $2 }' -- cgit 1.2.3-korg