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
This commit is contained in:
marios
2016-03-08 14:30:59 +02:00
parent bb05fa304a
commit 911a81192e
2 changed files with 50 additions and 4 deletions

View File

@@ -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

View 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}