Merge "Add pacemaker composable upgrade steps"
[apex-tripleo-heat-templates.git] / extraconfig / tasks / major_upgrade_pacemaker.yaml
1 heat_template_version: ocata
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   KeepSaharaServicesOnUpgrade:
26     type: boolean
27     default: true
28     description: Whether to keep Sahara services when upgrading controller nodes from mitaka to newton
29
30
31 resources:
32   # TODO(jistr): for Mitaka->Newton upgrades and further we can use
33   # map_merge with input_values instead of feeding params into scripts
34   # via str_replace on bash snippets
35
36   ControllerPacemakerUpgradeConfig_Step1:
37     type: OS::Heat::SoftwareConfig
38     properties:
39       group: script
40       config:
41         list_join:
42         - ''
43         - - str_replace:
44               template: |
45                 #!/bin/bash
46                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
47               params:
48                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
49           - str_replace:
50               template: |
51                 #!/bin/bash
52                 mariadb_do_major_upgrade='MYSQL_MAJOR_UPGRADE'
53               params:
54                 MYSQL_MAJOR_UPGRADE: {get_param: MySqlMajorUpgrade}
55           - get_file: pacemaker_common_functions.sh
56           - get_file: major_upgrade_check.sh
57           - get_file: major_upgrade_pacemaker_migrations.sh
58           - get_file: major_upgrade_controller_pacemaker_1.sh
59
60   ControllerPacemakerUpgradeDeployment_Step1:
61     type: OS::Heat::SoftwareDeploymentGroup
62     properties:
63       servers:  {get_param: [servers, Controller]}
64       config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
65       input_values: {get_param: input_values}
66
67   ControllerPacemakerUpgradeConfig_Step2:
68     type: OS::Heat::SoftwareConfig
69     properties:
70       group: script
71       config:
72         list_join:
73         - ''
74         - - str_replace:
75               template: |
76                 #!/bin/bash
77                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
78               params:
79                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
80           - str_replace:
81               template: |
82                 #!/bin/bash
83                 mariadb_do_major_upgrade='MYSQL_MAJOR_UPGRADE'
84               params:
85                 MYSQL_MAJOR_UPGRADE: {get_param: MySqlMajorUpgrade}
86           - get_file: pacemaker_common_functions.sh
87           - get_file: major_upgrade_check.sh
88           - get_file: major_upgrade_pacemaker_migrations.sh
89           - get_file: major_upgrade_controller_pacemaker_2.sh
90
91   ControllerPacemakerUpgradeDeployment_Step2:
92     type: OS::Heat::SoftwareDeploymentGroup
93     depends_on: ControllerPacemakerUpgradeDeployment_Step1
94     properties:
95       servers:  {get_param: [servers, Controller]}
96       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
97       input_values: {get_param: input_values}
98
99   ControllerPacemakerUpgradeConfig_Step3:
100     type: OS::Heat::SoftwareConfig
101     properties:
102       group: script
103       config:
104         list_join:
105         - ''
106         - - get_file: pacemaker_common_functions.sh
107           - get_file: major_upgrade_pacemaker_migrations.sh
108           - get_file: major_upgrade_controller_pacemaker_3.sh
109
110   ControllerPacemakerUpgradeDeployment_Step3:
111     type: OS::Heat::SoftwareDeploymentGroup
112     depends_on: ControllerPacemakerUpgradeDeployment_Step2
113     properties:
114       servers:  {get_param: [servers, Controller]}
115       config: {get_resource: ControllerPacemakerUpgradeConfig_Step3}
116       input_values: {get_param: input_values}
117
118   ControllerPacemakerUpgradeConfig_Step4:
119     type: OS::Heat::SoftwareConfig
120     properties:
121       group: script
122       config:
123         list_join:
124         - ''
125         - - get_file: pacemaker_common_functions.sh
126           - get_file: major_upgrade_pacemaker_migrations.sh
127           - get_file: major_upgrade_controller_pacemaker_4.sh
128
129   ControllerPacemakerUpgradeDeployment_Step4:
130     type: OS::Heat::SoftwareDeploymentGroup
131     depends_on: ControllerPacemakerUpgradeDeployment_Step3
132     properties:
133       servers:  {get_param: [servers, Controller]}
134       config: {get_resource: ControllerPacemakerUpgradeConfig_Step4}
135       input_values: {get_param: input_values}
136
137   ControllerPacemakerUpgradeConfig_Step5:
138     type: OS::Heat::SoftwareConfig
139     properties:
140       group: script
141       config:
142         list_join:
143         - ''
144         - - get_file: pacemaker_common_functions.sh
145           - get_file: major_upgrade_pacemaker_migrations.sh
146           - get_file: major_upgrade_controller_pacemaker_5.sh
147
148   ControllerPacemakerUpgradeDeployment_Step5:
149     type: OS::Heat::SoftwareDeploymentGroup
150     depends_on: ControllerPacemakerUpgradeDeployment_Step4
151     properties:
152       servers:  {get_param: [servers, Controller]}
153       config: {get_resource: ControllerPacemakerUpgradeConfig_Step5}
154       input_values: {get_param: input_values}
155
156   ControllerPacemakerUpgradeConfig_Step6:
157     type: OS::Heat::SoftwareConfig
158     properties:
159       group: script
160       config:
161         list_join:
162         - ''
163         - - str_replace:
164               template: |
165                 #!/bin/bash
166                 keep_sahara_services_on_upgrade='KEEP_SAHARA_SERVICES_ON_UPGRADE'
167               params:
168                 KEEP_SAHARA_SERVICES_ON_UPGRADE: {get_param: KeepSaharaServicesOnUpgrade}
169           - get_file: pacemaker_common_functions.sh
170           - get_file: major_upgrade_pacemaker_migrations.sh
171           - get_file: major_upgrade_controller_pacemaker_6.sh
172
173   ControllerPacemakerUpgradeDeployment_Step6:
174     type: OS::Heat::SoftwareDeploymentGroup
175     depends_on: ControllerPacemakerUpgradeDeployment_Step5
176     properties:
177       servers:  {get_param: [servers, Controller]}
178       config: {get_resource: ControllerPacemakerUpgradeConfig_Step6}
179       input_values: {get_param: input_values}