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