aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/controller-post.yaml
blob: d250dd70754c6884349d63b942abe4c5aaa8e480 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
heat_template_version: 2015-04-30

description: >
  OpenStack controller node post deployment for Puppet.

parameters:
  ConfigDebug:
    default: false
    description: Whether to run config management (e.g. Puppet) in debug mode.
    type: boolean
  servers:
    type: json
  NodeConfigIdentifiers:
     type: json
     description: Value which changes if the node configuration may need to be re-applied


resources:

  ControllerPrePuppet:
    type: OS::TripleO::Tasks::ControllerPrePuppet
    properties:
      servers:  {get_param: servers}
      input_values:
        update_identifier: {get_param: NodeConfigIdentifiers}

  ControllerPuppetConfig:
    type: OS::TripleO::ControllerConfig

  # Step through a series of Puppet runs using the same manifest.
  # NOTE: To enable stepping through the deployments via heat hooks,
  # you must observe the glob naming defined in overcloud-steps.yaml
  # e.g all Deployment resources should have a *Deployment_StepN suffix
  ControllerLoadBalancerDeployment_Step1:
    type: OS::Heat::StructuredDeployments
    depends_on: ControllerPrePuppet
    properties:
      name: ControllerLoadBalancerDeployment_Step1
      servers:  {get_param: servers}
      config: {get_resource: ControllerPuppetConfig}
      input_values:
        step: 1
        update_identifier: {get_param: NodeConfigIdentifiers}
      actions: ['CREATE'] # no need for two passes on an UPDATE

  ControllerServicesBaseDeployment_Step2:
    type: OS::Heat::StructuredDeployments
    depends_on: ControllerLoadBalancerDeployment_Step1
    properties:
      name: ControllerServicesBaseDeployment_Step2
      servers:  {get_param: servers}
      config: {get_resource: ControllerPuppetConfig}
      input_values:
        step: 2
        update_identifier: {get_param: NodeConfigIdentifiers}
      actions: ['CREATE'] # no need for two passes on an UPDATE

  ControllerRingbuilderPuppetConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: puppet
      options:
        enable_debug: {get_param: ConfigDebug}
        enable_hiera: True
        enable_facter: False
      inputs:
      outputs:
      - name: result
      config:
        get_file: manifests/ringbuilder.pp

  ControllerRingbuilderDeployment_Step3:
    type: OS::Heat::StructuredDeployments
    depends_on: ControllerServicesBaseDeployment_Step2
    properties:
      name: ControllerRingbuilderDeployment_Step3
      servers:  {get_param: servers}
      config: {get_resource: ControllerRingbuilderPuppetConfig}
      input_values:
        update_identifier: {get_param: NodeConfigIdentifiers}

  ControllerOvercloudServicesDeployment_Step4:
    type: OS::Heat::StructuredDeployments
    depends_on: ControllerRingbuilderDeployment_Step3
    properties:
      name: ControllerOvercloudServicesDeployment_Step4
      servers:  {get_param: servers}
      config: {get_resource: ControllerPuppetConfig}
      input_values:
        step: 3
        update_identifier: {get_param: NodeConfigIdentifiers}

  ControllerOvercloudServicesDeployment_Step5:
    type: OS::Heat::StructuredDeployments
    depends_on: ControllerOvercloudServicesDeployment_Step4
    properties:
      name: ControllerOvercloudServicesDeployment_Step5
      servers:  {get_param: servers}
      config: {get_resource: ControllerPuppetConfig}
      input_values:
        step: 4
        update_identifier: {get_param: NodeConfigIdentifiers}

  ControllerOvercloudServicesDeployment_Step6:
    type: OS::Heat::StructuredDeployments
    depends_on: ControllerOvercloudServicesDeployment_Step5
    properties:
      name: ControllerOvercloudServicesDeployment_Step6
      servers:  {get_param: servers}
      config: {get_resource: ControllerPuppetConfig}
      input_values:
        step: 5
        update_identifier: {get_param: NodeConfigIdentifiers}

  ControllerPostPuppet:
    type: OS::TripleO::Tasks::ControllerPostPuppet
    depends_on: ControllerOvercloudServicesDeployment_Step6
    properties:
      servers:  {get_param: servers}
      input_values:
        update_identifier: {get_param: NodeConfigIdentifiers}

  # Note, this should come last, so use depends_on to ensure
  # this is created after any other resources.
  ExtraConfig:
    depends_on: ControllerPostPuppet
    type: OS::TripleO::NodeExtraConfigPost
    properties:
        servers: {get_param: servers}