aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/puppet-steps.j2
blob: 86af61145e222ebdad369f56ac797e7c6b7f67a6 (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
  # Post deployment steps for all roles
  # A single config is re-applied with an incrementing step number
{% for role in roles %}
  # {{role.name}} Role post-deploy 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: {list_join: ["\n", {get_param: [role_data, {{role.name}}, step_config]}]}

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

  {% if role.name in ['Controller', 'ObjectStorage'] %}
  {{role.name}}SwiftRingDeploy:
    type: OS::TripleO::Tasks::SwiftRingDeploy
    properties:
      servers: {get_param: [servers, {{role.name}}]}
  {% endif %}

  # Step through a series of configuration steps
{% for step in range(1, 6) %}
  {{role.name}}Deployment_Step{{step}}:
    type: OS::Heat::StructuredDeploymentGroup
  {% if step == 1 %}
    depends_on: [{{role.name}}PrePuppet, {{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 %}

  {{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}}]}

  {{role.name}}PostPuppet:
    depends_on:
      - {{role.name}}ExtraConfigPost
    type: OS::TripleO::Tasks::{{role.name}}PostPuppet
    properties:
      servers: {get_param: [servers, {{role.name}}]}
      input_values:
        update_identifier: {get_param: DeployIdentifier}

  {% if role.name in ['Controller', 'ObjectStorage'] %}
  {{role.name}}SwiftRingUpdate:
    type: OS::TripleO::Tasks::SwiftRingUpdate
    depends_on:
  {% for dep in roles %}
      - {{dep.name}}Deployment_Step5
  {% endfor %}
    properties:
      servers: {get_param: [servers, {{role.name}}]}
  {% endif %}
{% endfor %}