Merge "Removes deprecated overcloud VIP outputs"
[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   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   CephMonUpgradeConfig:
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                 ignore_ceph_upgrade_warnings='IGNORE_CEPH_UPGRADE_WARNINGS'
47               params:
48                 IGNORE_CEPH_UPGRADE_WARNINGS: {get_param: IgnoreCephUpgradeWarnings}
49           - get_file: major_upgrade_ceph_mon.sh
50
51   CephMonUpgradeDeployment:
52     type: OS::Heat::SoftwareDeploymentGroup
53     properties:
54       servers: {get_param: [servers, Controller]}
55       config: {get_resource: CephMonUpgradeConfig}
56       input_values: {get_param: input_values}
57     update_policy:
58       batch_create:
59         max_batch_size: 1
60       rolling_update:
61         max_batch_size: 1
62
63   ControllerPacemakerUpgradeConfig_Step1:
64     type: OS::Heat::SoftwareConfig
65     properties:
66       group: script
67       config:
68         list_join:
69         - ''
70         - - str_replace:
71               template: |
72                 #!/bin/bash
73                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
74               params:
75                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
76           - str_replace:
77               template: |
78                 #!/bin/bash
79                 mariadb_do_major_upgrade='MYSQL_MAJOR_UPGRADE'
80               params:
81                 MYSQL_MAJOR_UPGRADE: {get_param: MySqlMajorUpgrade}
82           - get_file: pacemaker_common_functions.sh
83           - get_file: major_upgrade_check.sh
84           - get_file: major_upgrade_pacemaker_migrations.sh
85           - get_file: major_upgrade_controller_pacemaker_1.sh
86
87   ControllerPacemakerUpgradeDeployment_Step1:
88     type: OS::Heat::SoftwareDeploymentGroup
89     depends_on: CephMonUpgradeDeployment
90     properties:
91       servers:  {get_param: [servers, Controller]}
92       config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
93       input_values: {get_param: input_values}
94
95   BlockStorageUpgradeConfig:
96     type: OS::Heat::SoftwareConfig
97     depends_on: ControllerPacemakerUpgradeDeployment_Step1
98     properties:
99       group: script
100       config: {get_file: major_upgrade_block_storage.sh}
101
102   BlockStorageUpgradeDeployment:
103     type: OS::Heat::SoftwareDeploymentGroup
104     properties:
105       servers:  {get_param: [servers, BlockStorage]}
106       config: {get_resource: BlockStorageUpgradeConfig}
107       input_values: {get_param: input_values}
108
109   ControllerPacemakerUpgradeConfig_Step2:
110     type: OS::Heat::SoftwareConfig
111     properties:
112       group: script
113       config:
114         list_join:
115         - ''
116         - - get_file: pacemaker_common_functions.sh
117           - get_file: major_upgrade_pacemaker_migrations.sh
118           - get_file: major_upgrade_controller_pacemaker_2.sh
119
120   ControllerPacemakerUpgradeDeployment_Step2:
121     type: OS::Heat::SoftwareDeploymentGroup
122     depends_on: BlockStorageUpgradeDeployment
123     properties:
124       servers:  {get_param: [servers, Controller]}
125       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
126       input_values: {get_param: input_values}
127
128   ControllerPacemakerUpgradeConfig_Step3:
129     type: OS::Heat::SoftwareConfig
130     properties:
131       group: script
132       config:
133         list_join:
134         - ''
135         - - get_file: pacemaker_common_functions.sh
136           - get_file: major_upgrade_pacemaker_migrations.sh
137           - get_file: major_upgrade_controller_pacemaker_3.sh
138
139   ControllerPacemakerUpgradeDeployment_Step3:
140     type: OS::Heat::SoftwareDeploymentGroup
141     depends_on: ControllerPacemakerUpgradeDeployment_Step2
142     properties:
143       servers:  {get_param: [servers, Controller]}
144       config: {get_resource: ControllerPacemakerUpgradeConfig_Step3}
145       input_values: {get_param: input_values}
146
147   ControllerPacemakerUpgradeConfig_Step4:
148     type: OS::Heat::SoftwareConfig
149     properties:
150       group: script
151       config:
152         list_join:
153         - ''
154         - - get_file: pacemaker_common_functions.sh
155           - get_file: major_upgrade_pacemaker_migrations.sh
156           - get_file: major_upgrade_controller_pacemaker_4.sh
157
158   ControllerPacemakerUpgradeDeployment_Step4:
159     type: OS::Heat::SoftwareDeploymentGroup
160     depends_on: ControllerPacemakerUpgradeDeployment_Step3
161     properties:
162       servers:  {get_param: [servers, Controller]}
163       config: {get_resource: ControllerPacemakerUpgradeConfig_Step4}
164       input_values: {get_param: input_values}
165
166   ControllerPacemakerUpgradeConfig_Step5:
167     type: OS::Heat::SoftwareConfig
168     properties:
169       group: script
170       config:
171         list_join:
172         - ''
173         - - str_replace:
174               template: |
175                 #!/bin/bash
176                 keep_sahara_services_on_upgrade='KEEP_SAHARA_SERVICES_ON_UPGRADE'
177               params:
178                 KEEP_SAHARA_SERVICES_ON_UPGRADE: {get_param: KeepSaharaServicesOnUpgrade}
179           - get_file: pacemaker_common_functions.sh
180           - get_file: major_upgrade_pacemaker_migrations.sh
181           - get_file: major_upgrade_controller_pacemaker_5.sh
182
183   ControllerPacemakerUpgradeDeployment_Step5:
184     type: OS::Heat::SoftwareDeploymentGroup
185     depends_on: ControllerPacemakerUpgradeDeployment_Step4
186     properties:
187       servers:  {get_param: [servers, Controller]}
188       config: {get_resource: ControllerPacemakerUpgradeConfig_Step5}
189       input_values: {get_param: input_values}