a41bc2ca158977ec8ab93c14204d360834c57136
[apex-tripleo-heat-templates.git] / puppet / services / neutron-ovs-agent.yaml
1 heat_template_version: 2016-04-08
2
3 description: >
4   OpenStack Neutron OVS 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   EndpointMap:
14     default: {}
15     description: Mapping of service endpoint -> protocol. Typically set
16                  via parameter_defaults in the resource registry.
17     type: json
18   NeutronEnableL2Pop:
19     type: string
20     description: >
21         Enable/disable the L2 population feature in the Neutron agents.
22     default: "False"
23   NeutronBridgeMappings:
24     description: >
25       The OVS logical->physical bridge mappings to use. See the Neutron
26       documentation for details. Defaults to mapping br-ex - the external
27       bridge on hosts - to a physical name 'datacentre' which can be used
28       to create provider networks (and we use this for the default floating
29       network) - if changing this either use different post-install network
30       scripts or be sure to keep 'datacentre' as a mapping network name.
31     type: comma_delimited_list
32     default: "datacentre:br-ex"
33   NeutronTunnelTypes:
34     default: 'vxlan'
35     description: |
36         The tunnel types for the Neutron tenant network.
37     type: comma_delimited_list
38   NeutronAgentExtensions:
39     default: "qos"
40     description: |
41         Comma-separated list of extensions enabled for the Neutron agents.
42     type: comma_delimited_list
43   NeutronEnableDVR:
44     default: False
45     description: |
46       Enable support for distributed routing in the OVS Agent.
47     type: boolean
48
49 resources:
50
51   NeutronBase:
52     type: ./neutron-base.yaml
53     properties:
54       ServiceNetMap: {get_param: ServiceNetMap}
55       EndpointMap: {get_param: EndpointMap}
56
57 outputs:
58   role_data:
59     description: Role data for the Neutron OVS agent service.
60     value:
61       service_name: neutron_ovs_agent
62       config_settings:
63         map_merge:
64           - get_attr: [NeutronBase, role_data, config_settings]
65             neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
66             neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
67             neutron::agents::ml2::ovs::bridge_mappings:
68               str_replace:
69                 template: MAPPINGS
70                 params:
71                   MAPPINGS: {get_param: NeutronBridgeMappings}
72             neutron::agents::ml2::ovs::tunnel_types:
73               str_replace:
74                 template: TYPES
75                 params:
76                   TYPES: {get_param: NeutronTunnelTypes}
77             neutron::agents::ml2::ovs::extensions:
78               str_replace:
79                 template: AGENT_EXTENSIONS
80                 params:
81                   AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
82       step_config: |
83         include ::tripleo::profile::base::neutron::ovs