7240998433
In I9b1f0eaa0d36a28e20b507bec6a4e9b3af1781ae and
I11fcf688982ceda5eef7afc8904afae44300c2d9 we added a manual step
for upgrading openvswitch in order to specify the --nopostun
as discussed in the bug below.
This change adds a minor update to make this workaround more
robust. It removes any existing rpms that may be around from
an earlier run, and also checks that the rpms installed are
at least newer than the version we are on.
This also refactors the code into a common definition in the
pacemaker_common_functions.sh which is included even for the
heredocs generating upgrade scripts during init. Thanks
Sofer Athlan-Guyot and Jirka Stransky for help with that.
Change-Id: Idc863de7b5a8c116c990ee8c1472cfe377836d37
Related-Bug: 1635205
(cherry picked from commit afcb6e01f3
)
226 lines
7.6 KiB
YAML
226 lines
7.6 KiB
YAML
heat_template_version: 2016-10-14
|
|
description: 'Upgrade for Pacemaker deployments'
|
|
|
|
parameters:
|
|
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'
|
|
IgnoreCephUpgradeWarnings:
|
|
type: boolean
|
|
default: false
|
|
description: If enabled, Ceph upgrade will be forced even though cluster or PGs status is not clean
|
|
KeepSaharaServicesOnUpgrade:
|
|
type: boolean
|
|
default: true
|
|
description: Whether to keep Sahara services when upgrading controller nodes from mitaka to newton
|
|
|
|
|
|
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
|
|
|
|
CephMonUpgradeConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config:
|
|
list_join:
|
|
- ''
|
|
- - str_replace:
|
|
template: |
|
|
#!/bin/bash
|
|
ignore_ceph_upgrade_warnings='IGNORE_CEPH_UPGRADE_WARNINGS'
|
|
params:
|
|
IGNORE_CEPH_UPGRADE_WARNINGS: {get_param: IgnoreCephUpgradeWarnings}
|
|
- get_file: major_upgrade_ceph_mon.sh
|
|
|
|
CephMonUpgradeDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
servers: {get_param: [servers, Controller]}
|
|
config: {get_resource: CephMonUpgradeConfig}
|
|
input_values: {get_param: input_values}
|
|
update_policy:
|
|
batch_create:
|
|
max_batch_size: 1
|
|
rolling_update:
|
|
max_batch_size: 1
|
|
|
|
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_check.sh
|
|
- get_file: major_upgrade_pacemaker_migrations.sh
|
|
- get_file: major_upgrade_controller_pacemaker_1.sh
|
|
|
|
ControllerPacemakerUpgradeDeployment_Step1:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
depends_on: CephMonUpgradeDeployment
|
|
properties:
|
|
servers: {get_param: [servers, Controller]}
|
|
config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
|
|
input_values: {get_param: input_values}
|
|
|
|
BlockStorageUpgradeConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
depends_on: ControllerPacemakerUpgradeDeployment_Step1
|
|
properties:
|
|
group: script
|
|
config:
|
|
list_join:
|
|
- ''
|
|
- - get_file: pacemaker_common_functions.sh
|
|
- get_file: major_upgrade_block_storage.sh
|
|
|
|
BlockStorageUpgradeDeployment:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
properties:
|
|
servers: {get_param: [servers, BlockStorage]}
|
|
config: {get_resource: BlockStorageUpgradeConfig}
|
|
input_values: {get_param: input_values}
|
|
|
|
ControllerPacemakerUpgradeConfig_Step2:
|
|
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_check.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: [servers, Controller]}
|
|
config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
|
|
input_values: {get_param: input_values}
|
|
|
|
ControllerPacemakerUpgradeConfig_Step3:
|
|
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_3.sh
|
|
|
|
ControllerPacemakerUpgradeDeployment_Step3:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
depends_on: ControllerPacemakerUpgradeDeployment_Step2
|
|
properties:
|
|
servers: {get_param: [servers, Controller]}
|
|
config: {get_resource: ControllerPacemakerUpgradeConfig_Step3}
|
|
input_values: {get_param: input_values}
|
|
|
|
ControllerPacemakerUpgradeConfig_Step4:
|
|
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_4.sh
|
|
|
|
ControllerPacemakerUpgradeDeployment_Step4:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
depends_on: ControllerPacemakerUpgradeDeployment_Step3
|
|
properties:
|
|
servers: {get_param: [servers, Controller]}
|
|
config: {get_resource: ControllerPacemakerUpgradeConfig_Step4}
|
|
input_values: {get_param: input_values}
|
|
|
|
ControllerPacemakerUpgradeConfig_Step5:
|
|
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_5.sh
|
|
|
|
ControllerPacemakerUpgradeDeployment_Step5:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
depends_on: ControllerPacemakerUpgradeDeployment_Step4
|
|
properties:
|
|
servers: {get_param: [servers, Controller]}
|
|
config: {get_resource: ControllerPacemakerUpgradeConfig_Step5}
|
|
input_values: {get_param: input_values}
|
|
|
|
ControllerPacemakerUpgradeConfig_Step6:
|
|
type: OS::Heat::SoftwareConfig
|
|
properties:
|
|
group: script
|
|
config:
|
|
list_join:
|
|
- ''
|
|
- - str_replace:
|
|
template: |
|
|
#!/bin/bash
|
|
keep_sahara_services_on_upgrade='KEEP_SAHARA_SERVICES_ON_UPGRADE'
|
|
params:
|
|
KEEP_SAHARA_SERVICES_ON_UPGRADE: {get_param: KeepSaharaServicesOnUpgrade}
|
|
- get_file: pacemaker_common_functions.sh
|
|
- get_file: major_upgrade_pacemaker_migrations.sh
|
|
- get_file: major_upgrade_controller_pacemaker_6.sh
|
|
|
|
ControllerPacemakerUpgradeDeployment_Step6:
|
|
type: OS::Heat::SoftwareDeploymentGroup
|
|
depends_on: ControllerPacemakerUpgradeDeployment_Step5
|
|
properties:
|
|
servers: {get_param: [servers, Controller]}
|
|
config: {get_resource: ControllerPacemakerUpgradeConfig_Step6}
|
|
input_values: {get_param: input_values}
|