tripleo-heat-templates/extraconfig/tasks/major_upgrade_pacemaker_init.yaml
Jiri Stransky 4323ad1c94 Upgrades: initialization command/snippet
This allows to run a command or a script snippet on all overcloud nodes
at the beginning of the upgrade. The intended use is to switch to a new
set of repositories on the overcloud. This is done differently in
different contexts (e.g. upstream vs. downstream), but generally it
should be simple enough to not warrant creation of switchable
"UpgradeInit" resource in the resource registry, and a string
command/snippet parameter should suffice.

Change-Id: I72271170d3f53a5179b3212ec9bae9a6204e29e6
2016-03-09 13:58:20 +01:00

129 lines
3.8 KiB
YAML

heat_template_version: 2014-10-16
description: 'Upgrade for Pacemaker deployments'
parameters:
controller_servers:
type: json
compute_servers:
type: json
blockstorage_servers:
type: json
objectstorage_servers:
type: json
cephstorage_servers:
type: json
input_values:
type: json
description: input values for the software deployments
UpgradeInitCommand:
type: string
description: |
Command or script snippet to run on all overcloud nodes to
initialize the upgrade process. E.g. a repository switch.
default: ''
UpgradeLevelNovaCompute:
type: string
description: Nova Compute upgrade level
default: ''
resources:
UpgradeInitConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
list_join:
- ''
- - "#!/bin/bash\n\n"
- get_param: UpgradeInitCommand
UpgradeInitControllerDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: controller_servers}
config: {get_resource: UpgradeInitConfig}
input_values: {get_param: input_values}
UpgradeInitComputeDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: compute_servers}
config: {get_resource: UpgradeInitConfig}
input_values: {get_param: input_values}
UpgradeInitBlockStorageDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: blockstorage_servers}
config: {get_resource: UpgradeInitConfig}
input_values: {get_param: input_values}
UpgradeInitObjectStorageDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: objectstorage_servers}
config: {get_resource: UpgradeInitConfig}
input_values: {get_param: input_values}
UpgradeInitCephStorageDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: cephstorage_servers}
config: {get_resource: UpgradeInitConfig}
input_values: {get_param: input_values}
# TODO(jistr): for Mitaka->Newton upgrades and further we can use
# map_merge with input_values instead of feeding params into scripts
# via str_replace on bash snippets
ComputeDeliverUpgradeScriptConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config:
list_join:
- ''
- - str_replace:
template: |
#!/bin/bash
upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
params:
UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
- get_file: major_upgrade_compute.sh
ComputeDeliverUpgradeScriptDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: compute_servers}
config: {get_resource: ComputeDeliverUpgradeScriptConfig}
input_values: {get_param: input_values}
ObjectStorageDeliverUpgradeScriptConfig:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: {get_file: major_upgrade_object_storage.sh}
ObjectStorageDeliverUpgradeScriptDeployment:
type: OS::Heat::SoftwareDeploymentGroup
properties:
servers: {get_param: objectstorage_servers}
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}