36f9b4f87c85391b7ee3f09ca5be76504ccf06e1
[apex-tripleo-heat-templates.git] / puppet / controller-post.yaml
1 heat_template_version: 2015-04-30
2
3 description: >
4   OpenStack controller node post deployment for Puppet.
5
6 parameters:
7   ConfigDebug:
8     default: false
9     description: Whether to run config management (e.g. Puppet) in debug mode.
10     type: boolean
11   servers:
12     type: json
13   NodeConfigIdentifiers:
14      type: json
15      description: Value which changes if the node configuration may need to be re-applied
16   StepConfig:
17      type: string
18      description: Config manifests that will be used to step through the deployment.
19      default: ''
20
21 resources:
22
23   ControllerArtifactsConfig:
24     type: deploy-artifacts.yaml
25
26   ControllerArtifactsDeploy:
27     type: OS::Heat::StructuredDeployments
28     properties:
29       servers:  {get_param: servers}
30       config: {get_resource: ControllerArtifactsConfig}
31
32   ControllerPrePuppet:
33     type: OS::TripleO::Tasks::ControllerPrePuppet
34     properties:
35       servers:  {get_param: servers}
36       input_values:
37         update_identifier: {get_param: NodeConfigIdentifiers}
38
39   ControllerPuppetConfig:
40     type: OS::TripleO::ControllerConfig
41     properties:
42       StepConfig: {get_param: StepConfig}
43
44   # Step through a series of Puppet runs using the same manifest.
45   # NOTE: To enable stepping through the deployments via heat hooks,
46   # you must observe the glob naming defined in overcloud-steps.yaml
47   # e.g all Deployment resources should have a *Deployment_StepN suffix
48   ControllerLoadBalancerDeployment_Step1:
49     type: OS::Heat::StructuredDeployments
50     depends_on: [ControllerPrePuppet, ControllerArtifactsDeploy]
51     properties:
52       name: ControllerLoadBalancerDeployment_Step1
53       servers:  {get_param: servers}
54       config: {get_resource: ControllerPuppetConfig}
55       input_values:
56         step: 1
57         update_identifier: {get_param: NodeConfigIdentifiers}
58
59   ControllerServicesBaseDeployment_Step2:
60     type: OS::Heat::StructuredDeployments
61     depends_on: ControllerLoadBalancerDeployment_Step1
62     properties:
63       name: ControllerServicesBaseDeployment_Step2
64       servers:  {get_param: servers}
65       config: {get_resource: ControllerPuppetConfig}
66       input_values:
67         step: 2
68         update_identifier: {get_param: NodeConfigIdentifiers}
69
70   ControllerOvercloudServicesDeployment_Step3:
71     type: OS::Heat::StructuredDeployments
72     depends_on: ControllerServicesBaseDeployment_Step2
73     properties:
74       name: ControllerOvercloudServicesDeployment_Step3
75       servers:  {get_param: servers}
76       config: {get_resource: ControllerPuppetConfig}
77       input_values:
78         step: 3
79         update_identifier: {get_param: NodeConfigIdentifiers}
80
81   ControllerOvercloudServicesDeployment_Step4:
82     type: OS::Heat::StructuredDeployments
83     depends_on: ControllerOvercloudServicesDeployment_Step3
84     properties:
85       name: ControllerOvercloudServicesDeployment_Step4
86       servers:  {get_param: servers}
87       config: {get_resource: ControllerPuppetConfig}
88       input_values:
89         step: 4
90         update_identifier: {get_param: NodeConfigIdentifiers}
91
92   ControllerOvercloudServicesDeployment_Step5:
93     type: OS::Heat::StructuredDeployments
94     depends_on: ControllerOvercloudServicesDeployment_Step4
95     properties:
96       name: ControllerOvercloudServicesDeployment_Step5
97       servers:  {get_param: servers}
98       config: {get_resource: ControllerPuppetConfig}
99       input_values:
100         step: 5
101         update_identifier: {get_param: NodeConfigIdentifiers}
102
103   ControllerPostPuppet:
104     type: OS::TripleO::Tasks::ControllerPostPuppet
105     depends_on: ControllerOvercloudServicesDeployment_Step5
106     properties:
107       servers:  {get_param: servers}
108       input_values:
109         update_identifier: {get_param: NodeConfigIdentifiers}
110
111   # Note, this should come last, so use depends_on to ensure
112   # this is created after any other resources.
113   ExtraConfig:
114     depends_on: ControllerPostPuppet
115     type: OS::TripleO::NodeExtraConfigPost
116     properties:
117         servers: {get_param: servers}