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