Merge "Use parameter name to configure gmcast_listen_addr"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / major_upgrade_pacemaker.yaml
1 heat_template_version: 2016-10-14
2 description: 'Upgrade for Pacemaker deployments'
3
4 parameters:
5   servers:
6     type: json
7   input_values:
8     type: json
9     description: input values for the software deployments
10
11   UpgradeLevelNovaCompute:
12     type: string
13     description: Nova Compute upgrade level
14     default: ''
15   MySqlMajorUpgrade:
16     type: string
17     description: Can be auto,yes,no and influences if the major upgrade should do or detect an automatic mysql upgrade
18     constraints:
19     - allowed_values: ['auto', 'yes', 'no']
20     default: 'auto'
21   IgnoreCephUpgradeWarnings:
22     type: boolean
23     default: false
24     description: If enabled, Ceph upgrade will be forced even though cluster or PGs status is not clean
25
26 resources:
27   # TODO(jistr): for Mitaka->Newton upgrades and further we can use
28   # map_merge with input_values instead of feeding params into scripts
29   # via str_replace on bash snippets
30
31   CephMonUpgradeConfig:
32     type: OS::Heat::SoftwareConfig
33     properties:
34       group: script
35       config:
36         list_join:
37         - ''
38         - - str_replace:
39               template: |
40                 #!/bin/bash
41                 ignore_ceph_upgrade_warnings='IGNORE_CEPH_UPGRADE_WARNINGS'
42               params:
43                 IGNORE_CEPH_UPGRADE_WARNINGS: {get_param: IgnoreCephUpgradeWarnings}
44           - get_file: major_upgrade_ceph_mon.sh
45
46   CephMonUpgradeDeployment:
47     type: OS::Heat::SoftwareDeploymentGroup
48     properties:
49       servers: {get_param: [servers, Controller]}
50       config: {get_resource: CephMonUpgradeConfig}
51       input_values: {get_param: input_values}
52     update_policy:
53       batch_create:
54         max_batch_size: 1
55       rolling_update:
56         max_batch_size: 1
57
58   ControllerPacemakerUpgradeConfig_Step1:
59     type: OS::Heat::SoftwareConfig
60     properties:
61       group: script
62       config:
63         list_join:
64         - ''
65         - - str_replace:
66               template: |
67                 #!/bin/bash
68                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
69               params:
70                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
71           - str_replace:
72               template: |
73                 #!/bin/bash
74                 mariadb_do_major_upgrade='MYSQL_MAJOR_UPGRADE'
75               params:
76                 MYSQL_MAJOR_UPGRADE: {get_param: MySqlMajorUpgrade}
77           - get_file: pacemaker_common_functions.sh
78           - get_file: major_upgrade_check.sh
79           - get_file: major_upgrade_pacemaker_migrations.sh
80           - get_file: major_upgrade_controller_pacemaker_1.sh
81
82   ControllerPacemakerUpgradeDeployment_Step1:
83     type: OS::Heat::SoftwareDeploymentGroup
84     depends_on: CephMonUpgradeDeployment
85     properties:
86       servers:  {get_param: [servers, Controller]}
87       config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
88       input_values: {get_param: input_values}
89
90   BlockStorageUpgradeConfig:
91     type: OS::Heat::SoftwareConfig
92     depends_on: ControllerPacemakerUpgradeDeployment_Step1
93     properties:
94       group: script
95       config: {get_file: major_upgrade_block_storage.sh}
96
97   BlockStorageUpgradeDeployment:
98     type: OS::Heat::SoftwareDeploymentGroup
99     properties:
100       servers:  {get_param: [servers, BlockStorage]}
101       config: {get_resource: BlockStorageUpgradeConfig}
102       input_values: {get_param: input_values}
103
104   ControllerPacemakerUpgradeConfig_Step2:
105     type: OS::Heat::SoftwareConfig
106     properties:
107       group: script
108       config:
109         list_join:
110         - ''
111         - - get_file: pacemaker_common_functions.sh
112           - get_file: major_upgrade_pacemaker_migrations.sh
113           - get_file: major_upgrade_controller_pacemaker_2.sh
114
115   ControllerPacemakerUpgradeDeployment_Step2:
116     type: OS::Heat::SoftwareDeploymentGroup
117     depends_on: BlockStorageUpgradeDeployment
118     properties:
119       servers:  {get_param: [servers, Controller]}
120       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
121       input_values: {get_param: input_values}
122