Move network bind IPs out of compute.yaml
[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   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   NeutronEnableL2Pop:
22     type: string
23     description: >
24         Enable/disable the L2 population feature in the Neutron agents.
25     default: "False"
26   NeutronBridgeMappings:
27     description: >
28       The OVS logical->physical bridge mappings to use. See the Neutron
29       documentation for details. Defaults to mapping br-ex - the external
30       bridge on hosts - to a physical name 'datacentre' which can be used
31       to create provider networks (and we use this for the default floating
32       network) - if changing this either use different post-install network
33       scripts or be sure to keep 'datacentre' as a mapping network name.
34     type: comma_delimited_list
35     default: "datacentre:br-ex"
36   NeutronTunnelTypes:
37     default: 'vxlan'
38     description: |
39         The tunnel types for the Neutron tenant network.
40     type: comma_delimited_list
41   NeutronAgentExtensions:
42     default: "qos"
43     description: |
44         Comma-separated list of extensions enabled for the Neutron agents.
45     type: comma_delimited_list
46   NeutronEnableDVR:
47     default: False
48     description: |
49       Enable support for distributed routing in the OVS Agent.
50     type: boolean
51
52 resources:
53
54   NeutronBase:
55     type: ./neutron-base.yaml
56     properties:
57       ServiceNetMap: {get_param: ServiceNetMap}
58       DefaultPasswords: {get_param: DefaultPasswords}
59       EndpointMap: {get_param: EndpointMap}
60
61 outputs:
62   role_data:
63     description: Role data for the Neutron OVS agent service.
64     value:
65       service_name: neutron_ovs_agent
66       config_settings:
67         map_merge:
68           - get_attr: [NeutronBase, role_data, config_settings]
69             neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
70             neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
71             neutron::agents::ml2::ovs::bridge_mappings:
72               str_replace:
73                 template: MAPPINGS
74                 params:
75                   MAPPINGS: {get_param: NeutronBridgeMappings}
76             neutron::agents::ml2::ovs::tunnel_types:
77               str_replace:
78                 template: TYPES
79                 params:
80                   TYPES: {get_param: NeutronTunnelTypes}
81             neutron::agents::ml2::ovs::extensions:
82               str_replace:
83                 template: AGENT_EXTENSIONS
84                 params:
85                   AGENT_EXTENSIONS: {get_param: NeutronAgentExtensions}
86             # NOTE: bind IP is found in Heat replacing the network name with the
87             # local node IP for the given network; replacement examples
88             # (eg. for internal_api):
89             # internal_api -> IP
90             # internal_api_uri -> [IP]
91             # internal_api_subnet - > IP/CIDR
92             neutron::agents::ml2::ovs::local_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
93       step_config: |
94         include ::tripleo::profile::base::neutron::ovs