Merge "Add support for linuxbridge agent"
[apex-tripleo-heat-templates.git] / puppet / services / neutron-linuxbridge-agent.yaml
1 heat_template_version: ocata
2
3 description: >
4   OpenStack Neutron Linuxbridge agent configured with Puppet.
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   DefaultPasswords:
14     default: {}
15     type: json
16   EndpointMap:
17     default: {}
18     description: Mapping of service endpoint -> protocol. Typically set
19                  via parameter_defaults in the resource registry.
20     type: json
21   RoleName:
22     default: ''
23     description: Role name on which the service is applied
24     type: string
25   RoleParameters:
26     default: {}
27     description: Parameters specific to the role
28     type: json
29   PhysicalInterfaceMapping:
30     description: List of  <physical_network>:<physical_interface> tuples
31                  mapping physical network names to agent's node-specific
32                  physical network interfaces. Defaults to empty list.
33     type: comma_delimited_list
34     default: ''
35   NeutronLinuxbridgeFirewallDriver:
36     default: ''
37     description: Configure the classname of the firewall driver to  use  for
38                  implementing security groups.  Possible  values  depend  on
39                  system  configuration. The default value of an empty string
40                  will result in a default supported configuration.
41     type: string
42   NeutronEnableL2Pop:
43     type: string
44     description: Enable/disable the L2 population feature in the Neutron agents.
45     default: 'False'
46   NeutronTunnelTypes:
47     default: 'vxlan'
48     description: The tunnel types for the Neutron tenant network.
49     type: comma_delimited_list
50
51 conditions:
52   no_firewall_driver: {equals : [{get_param: NeutronLinuxbridgeFirewallDriver}, '']}
53
54 resources:
55
56   NeutronBase:
57     type: ./neutron-base.yaml
58     properties:
59       ServiceNetMap: {get_param: ServiceNetMap}
60       DefaultPasswords: {get_param: DefaultPasswords}
61       EndpointMap: {get_param: EndpointMap}
62
63 outputs:
64   role_data:
65     description: Role data for the Neutron Linuxbridge agent service.
66     value:
67       service_name: neutron_linuxbridge_agent
68       config_settings:
69         map_merge:
70           - get_attr: [NeutronBase, role_data, config_settings]
71           - neutron::agents::ml2::linuxbridge::physical_interface_mappings: {get_param: PhysicalInterfaceMapping}
72             neutron::agents::ml2::linuxbridge::l2_population: {get_param: NeutronEnableL2Pop}
73             neutron::agents::ml2::linuxbridge::tunnel_types: {get_param: NeutronTunnelTypes}
74             neutron::agents::ml2::linuxbridge::local_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
75             neutron::agents::dhcp::interface_driver: 'neutron.agent.linux.interface.BridgeInterfaceDriver'
76             neutron::agents::dhcp::dhcp_driver: 'neutron.agent.linux.dhcp.Dnsmasq'
77           -
78             if:
79             - no_firewall_driver
80             - {}
81             - neutron::agents::ml2::linuxbridge::firewall_driver: {get_param: NeutronLinuxbridgeFirewallDriver}
82       step_config: |
83         include ::tripleo::profile::base::neutron::linuxbridge