Merge "Fix use of batch_create in CephMon major upgrade template"
[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   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   IgnoreCephUpgradeWarnings:
30     type: boolean
31     default: false
32     description: If enabled, Ceph upgrade will be forced even though cluster or PGs status is not clean
33
34 resources:
35   # TODO(jistr): for Mitaka->Newton upgrades and further we can use
36   # map_merge with input_values instead of feeding params into scripts
37   # via str_replace on bash snippets
38
39   CephMonUpgradeConfig:
40     type: OS::Heat::SoftwareConfig
41     properties:
42       group: script
43       config:
44         list_join:
45         - ''
46         - - str_replace:
47               template: |
48                 #!/bin/bash
49                 ignore_ceph_upgrade_warnings='IGNORE_CEPH_UPGRADE_WARNINGS'
50               params:
51                 IGNORE_CEPH_UPGRADE_WARNINGS: {get_param: IgnoreCephUpgradeWarnings}
52           - get_file: major_upgrade_ceph_mon.sh
53
54   CephMonUpgradeDeployment:
55     type: OS::Heat::SoftwareDeploymentGroup
56     properties:
57       servers: {get_param: controller_servers}
58       config: {get_resource: CephMonUpgradeConfig}
59       input_values: {get_param: input_values}
60     update_policy:
61       batch_create:
62         max_batch_size: 1
63       rolling_update:
64         max_batch_size: 1
65
66   ControllerPacemakerUpgradeConfig_Step1:
67     type: OS::Heat::SoftwareConfig
68     properties:
69       group: script
70       config:
71         list_join:
72         - ''
73         - - str_replace:
74               template: |
75                 #!/bin/bash
76                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
77               params:
78                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
79           - str_replace:
80               template: |
81                 #!/bin/bash
82                 mariadb_do_major_upgrade='MYSQL_MAJOR_UPGRADE'
83               params:
84                 MYSQL_MAJOR_UPGRADE: {get_param: MySqlMajorUpgrade}
85           - get_file: pacemaker_common_functions.sh
86           - get_file: major_upgrade_pacemaker_migrations.sh
87           - get_file: major_upgrade_controller_pacemaker_1.sh
88
89   ControllerPacemakerUpgradeDeployment_Step1:
90     type: OS::Heat::SoftwareDeploymentGroup
91     depends_on: CephMonUpgradeDeployment
92     properties:
93       servers:  {get_param: controller_servers}
94       config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
95       input_values: {get_param: input_values}
96
97   BlockStorageUpgradeConfig:
98     type: OS::Heat::SoftwareConfig
99     depends_on: ControllerPacemakerUpgradeDeployment_Step1
100     properties:
101       group: script
102       config: {get_file: major_upgrade_block_storage.sh}
103
104   BlockStorageUpgradeDeployment:
105     type: OS::Heat::SoftwareDeploymentGroup
106     properties:
107       servers:  {get_param: blockstorage_servers}
108       config: {get_resource: BlockStorageUpgradeConfig}
109       input_values: {get_param: input_values}
110
111   ControllerPacemakerUpgradeConfig_Step2:
112     type: OS::Heat::SoftwareConfig
113     properties:
114       group: script
115       config:
116         list_join:
117         - ''
118         - - get_file: pacemaker_common_functions.sh
119           - get_file: major_upgrade_pacemaker_migrations.sh
120           - get_file: major_upgrade_controller_pacemaker_2.sh
121
122   ControllerPacemakerUpgradeDeployment_Step2:
123     type: OS::Heat::SoftwareDeploymentGroup
124     depends_on: BlockStorageUpgradeDeployment
125     properties:
126       servers:  {get_param: controller_servers}
127       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
128       input_values: {get_param: input_values}
129