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 UpgradeLevelNovaCompute: type: string description: Nova Compute upgrade level default: '' MySqlMajorUpgrade: type: string description: Can be auto,yes,no and influences if the major upgrade should do or detect an automatic mysql upgrade constraints: - allowed_values: ['auto', 'yes', 'no'] default: 'auto' resources: # 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 ControllerPacemakerUpgradeConfig_Step1: 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} - str_replace: template: | #!/bin/bash mariadb_do_major_upgrade='MYSQL_MAJOR_UPGRADE' params: MYSQL_MAJOR_UPGRADE: {get_param: MySqlMajorUpgrade} - get_file: pacemaker_common_functions.sh - get_file: major_upgrade_pacemaker_migrations.sh - get_file: major_upgrade_controller_pacemaker_1.sh ControllerPacemakerUpgradeDeployment_Step1: type: OS::Heat::SoftwareDeploymentGroup properties: servers: {get_param: controller_servers} 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: group: script config: list_join: - '' - - get_file: pacemaker_common_functions.sh - get_file: major_upgrade_pacemaker_migrations.sh - get_file: major_upgrade_controller_pacemaker_2.sh ControllerPacemakerUpgradeDeployment_Step2: type: OS::Heat::SoftwareDeploymentGroup depends_on: BlockStorageUpgradeDeployment properties: servers: {get_param: controller_servers} config: {get_resource: ControllerPacemakerUpgradeConfig_Step2} input_values: {get_param: input_values}