aboutsummaryrefslogtreecommitdiffstats
path: root/extraconfig/all_nodes/random_string.yaml
blob: 49d2d8b63475c0300853becc4b60d44bea4aa5b2 (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
heat_template_version: 2014-10-16

description: >
  Example extra config for cluster config
  this example deploys a random string to all controller and compute
  nodes, showing how data may be shared amongst nodes, vs the
  other ExtraConfig interfaces which act only on individual nodes.

# Parameters passed from the parent template - note if you maintain
# out-of-tree templates they may require additional parameters if the
# in-tree templates add a new role.
parameters:
  controller_servers:
    type: json
  compute_servers:
    type: json
  blockstorage_servers:
    type: json
  objectstorage_servers:
    type: json
  cephstorage_servers:
    type: json
# Note extra parameters can be defined, then passed data via the
# environment parameter_defaults, without modifying the parent template

resources:

  Random:
    type: OS::Heat::RandomString

  RandomConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      inputs:
      - name: random_value
      config: |
        #!/bin/sh
        echo $random_value > /root/random_value

  RandomDeploymentsController:
    type: OS::Heat::SoftwareDeployments
    properties:
      name: RandomDeploymentsController
      servers:  {get_param: controller_servers}
      config: {get_resource: RandomConfig}
      actions: ['CREATE'] # Only do this on CREATE
      input_values:
        random_value: {get_attr: [Random, value]}

  RandomDeploymentsCompute:
    type: OS::Heat::SoftwareDeployments
    properties:
      name: RandomDeploymentsCompute
      servers:  {get_param: compute_servers}
      config: {get_resource: RandomConfig}
      actions: ['CREATE'] # Only do this on CREATE
      input_values:
        random_value: {get_attr: [Random, value]}

outputs:
  # This value should change if the configuration data has changed
  # It is used to e.g re-apply puppet after hieradata values change.
  config_identifier:
    value: {get_attr: [Random, value]}