summaryrefslogtreecommitdiffstats
path: root/puppet/post.j2.yaml
blob: 582eb28df3a71ce1bad38aa4dacd122490a4ddb6 (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
heat_template_version: 2016-10-14

description: >
  Post-deploy configuration steps via puppet for all roles,
  as defined in ../roles_data.yaml

parameters:
  servers:
    type: json
    description: Mapping of Role name e.g Controller to a list of servers

  role_data:
    type: json
    description: Mapping of Role name e.g Controller to the per-role data

  DeployIdentifier:
    default: ''
    type: string
    description: >
      Setting this to a unique value will re-run any deployment tasks which
      perform configuration on a Heat stack-update.

resources:

{% for role in roles %}
  # Post deployment steps for all roles
  # A single config is re-applied with an incrementing step number
  # {{role.name}} Role steps
  {{role.name}}ArtifactsConfig:
    type: deploy-artifacts.yaml

  {{role.name}}ArtifactsDeploy:
    type: OS::Heat::StructuredDeployments
    properties:
      servers:  {get_param: [servers, {{role.name}}]}
      config: {get_resource: {{role.name}}ArtifactsConfig}

  {{role.name}}PreConfig:
    type: OS::TripleO::Tasks::{{role.name}}PreConfig
    properties:
      servers: {get_param: [servers, {{role.name}}]}
      input_values:
        update_identifier: {get_param: DeployIdentifier}

  {{role.name}}Config:
    type: OS::TripleO::{{role.name}}Config
    properties:
      StepConfig: {get_param: [role_data, {{role.name}}, step_config]}

  {% if role.name == 'Controller' %}
  ControllerPrePuppet:
    type: OS::TripleO::Tasks::ControllerPrePuppet
    properties:
      servers: {get_param: [servers, Controller]}
      input_values:
        update_identifier: {get_param: DeployIdentifier}
  {% endif %}

  # Step through a series of configuration steps
{% for step in range(1, 6) %}
  {% for role in roles %}

  {{role.name}}Deployment_Step{{step}}:
    type: OS::Heat::StructuredDeploymentGroup
  {% if step == 1 %}
    depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
  {% else %}
    depends_on:
    {% for dep in roles %}
      - {{dep.name}}Deployment_Step{{step -1}}
    {% endfor %}
  {% endif %}
    properties:
      name: {{role.name}}Deployment_Step{{step}}
      servers: {get_param: [servers, {{role.name}}]}
      config: {get_resource: {{role.name}}Config}
      input_values:
        step: {{step}}
        update_identifier: {get_param: DeployIdentifier}

  {% endfor %}
{% endfor %}

  {{role.name}}PostConfig:
    type: OS::TripleO::Tasks::{{role.name}}PostConfig
    depends_on:
  {% for dep in roles %}
      - {{dep.name}}Deployment_Step5
  {% endfor %}
    properties:
      servers:  {get_param: servers}
      input_values:
        update_identifier: {get_param: DeployIdentifier}

  # Note, this should come last, so use depends_on to ensure
  # this is created after any other resources.
  {{role.name}}ExtraConfigPost:
    depends_on:
  {% for dep in roles %}
      - {{dep.name}}PostConfig
  {% endfor %}
    type: OS::TripleO::NodeExtraConfigPost
    properties:
        servers: {get_param: [servers, {{role.name}}]}

  {% if role.name == 'Controller' %}
  ControllerPostPuppet:
    depends_on:
      - ControllerExtraConfigPost
    type: OS::TripleO::Tasks::ControllerPostPuppet
    properties:
      servers: {get_param: [servers, Controller]}
      input_values:
        update_identifier: {get_param: DeployIdentifier}
  {% endif %}

{% endfor %}