aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/all-nodes-config.yaml
blob: ec7fa7fafff9de73deff224c4d10b8ec246c06a3 (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
heat_template_version: 2014-10-16
description: 'All Nodes Config for Puppet'

parameters:
  compute_hosts:
    type: comma_delimited_list
  controller_hosts:
    type: comma_delimited_list
  controller_ips:
    type: comma_delimited_list
  block_storage_hosts:
    type: comma_delimited_list
  object_storage_hosts:
    type: comma_delimited_list
  ceph_storage_hosts:
    type: comma_delimited_list
  controller_names:
    type: comma_delimited_list

resources:

  allNodesConfigImpl:
    type: OS::Heat::StructuredConfig
    properties:
      config:
        completion-signal: {get_input: deploy_signal_id}
        hosts:
          list_join:
          - "\n"
          - - list_join:
              - "\n"
              - {get_param: compute_hosts}
            - list_join:
              - "\n"
              - {get_param: controller_hosts}
            - list_join:
              - "\n"
              - {get_param: block_storage_hosts}
            - list_join:
              - "\n"
              - {get_param: object_storage_hosts}
            - list_join:
              - "\n"
              - {get_param: ceph_storage_hosts}
        sysctl:
          net.ipv4.tcp_keepalive_time: 5
          net.ipv4.tcp_keepalive_probes: 5
          net.ipv4.tcp_keepalive_intvl: 1
        hiera:
          datafiles:
            all_nodes:
              mapped_data:
                controller_node_ips:
                  list_join:
                  - ','
                  - {get_param: controller_ips}
                controller_node_names:
                  list_join:
                  - ','
                  - {get_param: controller_names}
                galera_node_names:
                  list_join:
                  - ','
                  - {get_param: controller_names}
                rabbit_node_ips: &rabbit_nodes_array
                  str_replace:
                    template: "['SERVERS_LIST']"
                    params:
                      SERVERS_LIST:
                        list_join:
                        - "','"
                        - {get_param: controller_ips}
                mongo_node_ips:
                  list_join:
                  - ','
                  - {get_param: controller_ips}
                redis_node_ips:
                  list_join:
                  - ','
                  - {get_param: controller_ips}
                memcache_node_ips:
                  list_join:
                  - ','
                  - {get_param: controller_ips}
                # NOTE(gfidente): interpolation with %{} in the
                # hieradata file can't be used as it returns string
                ceilometer::rabbit_hosts: *rabbit_nodes_array
                cinder::rabbit_hosts: *rabbit_nodes_array
                heat::rabbit_hosts: *rabbit_nodes_array
                neutron::rabbit_hosts: *rabbit_nodes_array
                nova::rabbit_hosts: *rabbit_nodes_array

outputs:
  config_id:
    description: The ID of the allNodesConfigImpl resource.
    value:
      {get_resource: allNodesConfigImpl}