summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarios <marios@redhat.com>2016-03-08 14:30:59 +0200
committermarios <marios@redhat.com>2016-03-08 17:47:36 +0200
commit911a81192e278152f4e4cdf5d728679a5f7c9994 (patch)
treeea9481beb2db2878b6bb30f20dcb3f2492f13c2d
parentbb05fa304a2eed2caa4840e8039832d369a357f7 (diff)
Add a ceph-storage node upgrade script for the upgrade workflow
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
-rw-r--r--extraconfig/tasks/major_upgrade_ceph_storage.sh35
-rw-r--r--extraconfig/tasks/major_upgrade_script_delivery.yaml19
2 files changed, 50 insertions, 4 deletions
diff --git a/extraconfig/tasks/major_upgrade_ceph_storage.sh b/extraconfig/tasks/major_upgrade_ceph_storage.sh
new file mode 100644
index 00000000..de42b16d
--- /dev/null
+++ b/extraconfig/tasks/major_upgrade_ceph_storage.sh
@@ -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
+
diff --git a/extraconfig/tasks/major_upgrade_script_delivery.yaml b/extraconfig/tasks/major_upgrade_script_delivery.yaml
index f7faa7fc..e3b1e209 100644
--- a/extraconfig/tasks/major_upgrade_script_delivery.yaml
+++ b/extraconfig/tasks/major_upgrade_script_delivery.yaml
@@ -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}