summaryrefslogtreecommitdiffstats
path: root/puppet/extraconfig/all_nodes/neutron-midonet-all-nodes.yaml
blob: 3e455347e8f49f4c293261ed6fb7d46b3dfd36ba (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
heat_template_version: 2015-10-15

description: Configure hieradata for all MidoNet nodes

parameters:
  # Parameters passed from the parent template
  controller_servers:
    type: json
  compute_servers:
    type: json
  blockstorage_servers:
    type: json
  objectstorage_servers:
    type: json
  cephstorage_servers:
    type: json

  EnableZookeeperOnController:
    label: Enable Zookeeper On Controller
    description: 'Whether enable Zookeeper cluster on Controller'
    type: boolean
    default: false
  EnableCassandraOnController:
    label: Enable Cassandra On Controller
    description: 'Whether enable Cassandra cluster on Controller'
    type: boolean
    default: false
  CassandraStoragePort:
    label: Cassandra Storage Port
    description: 'The Cassandra port for inter-node communication'
    type: string
    default: '7000'
  CassandraSslStoragePort:
    label: Cassandra SSL Storage Port
    description: 'The SSL port for encrypted communication. Unused unless enabled in encryption_options'
    type: string
    default: '7001'
  CassandraClientPort:
    label: Cassandra Client Port
    description: 'Native Transport Port'
    type: string
    default: '9042'
  CassandraClientPortThrift:
    label: Cassandra Client Thrift Port
    description: 'The port for the Thrift RPC service, which is used for client connections'
    type: string
    default: '9160'
  TunnelZoneName:
    label: Name of the Tunnelzone
    description: 'Name of the tunnel zone used to tunnel packages'
    type: string
    default: 'tunnelzone_tripleo'
  TunnelZoneType:
    label: Type of the Tunnel
    description: 'Type of the tunnels on the overlay. Choose between `gre` and `vxlan`'
    type: string
    default: 'vxlan'

resources:

  NetworkMidoNetConfig:
    type: OS::Heat::StructuredConfig
    properties:
      group: os-apply-config
      config:
        hiera:
          datafiles:
            midonet_data:
              mapped_data:
                enable_zookeeper_on_controller: {get_param: EnableZookeeperOnController}
                enable_cassandra_on_controller: {get_param: EnableCassandraOnController}
                midonet_tunnelzone_name: {get_param: TunnelZoneName}
                midonet_tunnelzone_type: {get_param: TunnelZoneType}
                midonet_libvirt_qemu_data: |
                    user = "root"
                    group = "root"
                    cgroup_device_acl = [
                        "/dev/null", "/dev/full", "/dev/zero",
                        "/dev/random", "/dev/urandom",
                        "/dev/ptmx", "/dev/kvm", "/dev/kqemu",
                        "/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
                        "/dev/net/tun"
                    ]
                tripleo::cluster::cassandra::storage_port: {get_param: CassandraStoragePort}
                tripleo::cluster::cassandra::ssl_storage_port: {get_param: CassandraSslStoragePort}
                tripleo::cluster::cassandra::client_port: {get_param: CassandraClientPort}
                tripleo::cluster::cassandra::client_port_thrift: {get_param: CassandraClientPortThrift}
                tripleo::haproxy::midonet_api: true
                # Missed Neutron Puppet data
                neutron::agents::dhcp::interface_driver: 'neutron.agent.linux.interface.MidonetInterfaceDriver'
                neutron::agents::dhcp::dhcp_driver: 'midonet.neutron.agent.midonet_driver.DhcpNoOpDriver'
                neutron::plugins::midonet::midonet_api_port: 8081
                neutron::params::midonet_server_package: 'python-networking-midonet'

                # Make sure the l3 agent does not run
                l3_agent_service: false
                neutron::agents::l3::manage_service: false
                neutron::agents::l3::enabled: false


  NetworkMidonetDeploymentControllers:
    type: OS::Heat::StructuredDeploymentGroup
    properties:
      config: {get_resource: NetworkMidoNetConfig}
      servers: {get_param: controller_servers}

  NetworkMidonetDeploymentComputes:
    type: OS::Heat::StructuredDeploymentGroup
    properties:
      config: {get_resource: NetworkMidoNetConfig}
      servers: {get_param: compute_servers}

outputs:
  config_identifier:
    value:
      list_join:
        - ' '
        - - {get_attr: [NetworkMidonetDeploymentControllers, deploy_stdouts]}
          - {get_attr: [NetworkMidonetDeploymentComputes, deploy_stdouts]}