4323ad1c94
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
129 lines
3.8 KiB
YAML
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}
|