Add a ceph-storage node upgrade script for the upgrade workflow
authormarios <marios@redhat.com>
Tue, 8 Mar 2016 12:30:59 +0000 (14:30 +0200)
committermarios <marios@redhat.com>
Tue, 8 Mar 2016 15:47:36 +0000 (17:47 +0200)
This adds delivery of an upgrade script to any ceph-storage nodes
during the script delivery that comes first during the upgrade
workflow.

The controllers have the ceph-mon whilst the ceph-osds are on the
ceph-storage nodes. The ceph-mons will be updated first as part of
the heat-driven controller upgrade, and ceph-osds on ceph nodes are
upgraded with the upgrade-non-controller.sh tripleo-common script
as with compute and swift nodes.

Also slight rename for the ObjectStorageConfig/Deployment here for
consistency.

Change-Id: I12abad5548dcb019ade9273da06fe66fd97f54cc

extraconfig/tasks/major_upgrade_ceph_storage.sh [new file with mode: 0644]
extraconfig/tasks/major_upgrade_script_delivery.yaml

diff --git a/extraconfig/tasks/major_upgrade_ceph_storage.sh b/extraconfig/tasks/major_upgrade_ceph_storage.sh
new file mode 100644 (file)
index 0000000..de42b16
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/bash
+#
+# This delivers the ceph-storage upgrade script to be invoked as part of the tripleo
+# major upgrade workflow.
+#
+set -eu
+
+UPGRADE_SCRIPT=/root/tripleo_upgrade_node.sh
+
+cat > $UPGRADE_SCRIPT << ENDOFCAT
+### DO NOT MODIFY THIS FILE
+### This file is automatically delivered to the ceph-storage nodes as part of the
+### tripleo upgrades workflow
+
+
+function systemctl_ceph {
+    action=\$1
+    systemctl \$action ceph
+}
+
+# "so that mirrors aren't rebalanced as if the OSD died" - gfidente
+ceph osd set noout
+
+systemctl_ceph stop
+yum -y install python-zaqarclient  # needed for os-collect-config
+yum -y update
+systemctl_ceph start
+
+ceph osd unset noout
+
+ENDOFCAT
+
+# ensure the permissions are OK
+chmod 0755 $UPGRADE_SCRIPT
+
index f7faa7f..e3b1e20 100644 (file)
@@ -49,17 +49,28 @@ resources:
       config: {get_resource: ComputeDeliverUpgradeScriptConfig}
       input_values: {get_param: input_values}
 
-
-  ObjectStoreDeliverUpgradeScriptConfig:
+  ObjectStorageDeliverUpgradeScriptConfig:
     type: OS::Heat::SoftwareConfig
     properties:
       group: script
       config: {get_file: major_upgrade_object_storage.sh}
 
-  ObjectStoreDeliverUpgradeScriptDeployment:
+  ObjectStorageDeliverUpgradeScriptDeployment:
     type: OS::Heat::SoftwareDeploymentGroup
     properties:
       servers:  {get_param: objectstorage_servers}
-      config: {get_resource: ObjectStoreDeliverUpgradeScriptConfig}
+      config: {get_resource: ObjectStorageDeliverUpgradeScriptConfig}
       input_values: {get_param: input_values}
 
+  CephStorageDeliverUpgradeScriptConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config: {get_file: major_upgrade_ceph_storage.sh}
+
+  CephStorageDeliverUpgradeScriptDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    properties:
+      servers:  {get_param: cephstorage_servers}
+      config: {get_resource: CephStorageDeliverUpgradeScriptConfig}
+      input_values: {get_param: input_values}