Merge "Write the compute upgrade script for tripleo major upgrade workflow"
[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
24 resources:
25   # TODO(jistr): for Mitaka->Newton upgrades and further we can use
26   # map_merge with input_values instead of feeding params into scripts
27   # via str_replace on bash snippets
28
29   ControllerPacemakerUpgradeConfig_Step1:
30     type: OS::Heat::SoftwareConfig
31     properties:
32       group: script
33       config:
34         list_join:
35         - ''
36         - - str_replace:
37               template: |
38                 #!/bin/bash
39                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
40               params:
41                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
42           - get_file: pacemaker_common_functions.sh
43           - get_file: major_upgrade_controller_pacemaker_1.sh
44
45   ControllerPacemakerUpgradeDeployment_Step1:
46     type: OS::Heat::SoftwareDeploymentGroup
47     properties:
48       servers:  {get_param: controller_servers}
49       config: {get_resource: ControllerPacemakerUpgradeConfig_Step1}
50       input_values: {get_param: input_values}
51
52   ControllerPacemakerUpgradeConfig_Step2:
53     type: OS::Heat::SoftwareConfig
54     properties:
55       group: script
56       config:
57         list_join:
58         - ''
59         - - get_file: pacemaker_common_functions.sh
60           - get_file: major_upgrade_controller_pacemaker_2.sh
61
62   ControllerPacemakerUpgradeDeployment_Step2:
63     type: OS::Heat::SoftwareDeploymentGroup
64     depends_on: ControllerPacemakerUpgradeDeployment_Step1
65     properties:
66       servers:  {get_param: controller_servers}
67       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
68       input_values: {get_param: input_values}
69
70   ComputeDeliverUpgradeConfig_Step3:
71     type: OS::Heat::SoftwareConfig
72     properties:
73       group: script
74       config:
75         list_join:
76         - ''
77         - - str_replace:
78               template: |
79                 #!/bin/bash
80                 upgrade_level_nova_compute='UPGRADE_LEVEL_NOVA_COMPUTE'
81               params:
82                 UPGRADE_LEVEL_NOVA_COMPUTE: {get_param: UpgradeLevelNovaCompute}
83           - get_file: pacemaker_common_functions.sh
84           - get_file: major_upgrade_compute.sh
85
86   ComputeDeliverUpgradeConfigDeployment_Step3:
87     type: OS::Heat::SoftwareDeploymentGroup
88     depends_on: ControllerPacemakerUpgradeDeployment_Step2
89     properties:
90       servers:  {get_param: compute_servers}
91       config: {get_resource: ComputeDeliverUpgradeConfig_Step3}
92       input_values: {get_param: input_values}
93
94