Merge "Select per-network hostnames for service_node_names"
[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         - - str_replace:
136               template: |
137                 #!/bin/bash
138                 keep_sahara_services_on_upgrade='KEEP_SAHARA_SERVICES_ON_UPGRADE'
139               params:
140                 KEEP_SAHARA_SERVICES_ON_UPGRADE: {get_param: KeepSaharaServicesOnUpgrade}
141           - get_file: pacemaker_common_functions.sh
142           - get_file: major_upgrade_pacemaker_migrations.sh
143           - get_file: major_upgrade_controller_pacemaker_3.sh
144
145   ControllerPacemakerUpgradeDeployment_Step3:
146     type: OS::Heat::SoftwareDeploymentGroup
147     depends_on: ControllerPacemakerUpgradeDeployment_Step2
148     properties:
149       servers:  {get_param: [servers, Controller]}
150       config: {get_resource: ControllerPacemakerUpgradeConfig_Step3}
151       input_values: {get_param: input_values}
152