Upgrade of Cinder block storage nodes

This introduces upgrades for Cinder block storage nodes. Currently
Cinder doesn't support upgrade level pinning and cannot safely deal with
version skew. This means that we have to upgrade Cinder storage nodes in
sync with controller nodes (after they were taken down for upgrade,
before they are brought back up) to ensure that Cinder services perform
AMQP communication only within the same major version of Cinder.

According to our current knowledge, Cinder block storage nodes are the
only node type that will have to be upgraded in sync with controllers.

Change-Id: Icec913c015eff744b0f31b513176b4b657df43af
This commit is contained in:
Jiri Stransky 2016-03-03 11:36:02 +01:00
parent f496aa225c
commit 7455f1afc3
2 changed files with 23 additions and 1 deletions

View File

@ -0,0 +1,8 @@
#!/bin/bash
#
# This runs an upgrade of Cinder Block Storage nodes.
#
set -eu
yum -y install python-zaqarclient # needed for os-collect-config
yum -y update

View File

@ -49,6 +49,20 @@ resources:
config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
input_values: {get_param: input_values}
BlockStorageUpgradeConfig:
type: OS::Heat::SoftwareConfig
depends_on: ControllerPacemakerUpgradeDeployment_Step1
properties:
group: script
config: {get_file: major_upgrade_block_storage.sh}
BlockStorageUpgradeDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: blockstorage_servers}
config: {get_resource: BlockStorageUpgradeConfig}
input_values: {get_param: input_values}
ControllerPacemakerUpgradeConfig_Step2:
type: OS::Heat::SoftwareConfig
properties:
@ -61,7 +75,7 @@ resources:
ControllerPacemakerUpgradeDeployment_Step2:
type: OS::Heat::SoftwareDeploymentGroup
depends_on: ControllerPacemakerUpgradeDeployment_Step1
depends_on: BlockStorageUpgradeDeployment
properties:
servers: {get_param: controller_servers}
config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}