3511b2f259035233c88ec02e080a7cc33fb8bca9
[apex-tripleo-heat-templates.git] / puppet / services / neutron-plugin-ml2.yaml
1 heat_template_version: 2016-04-08
2
3 description: >
4   OpenStack Neutron ML2 Plugin configured with Puppet
5
6 parameters:
7   EndpointMap:
8     default: {}
9     description: Mapping of service endpoint -> protocol. Typically set
10                  via parameter_defaults in the resource registry.
11     type: json
12   NeutronMechanismDrivers:
13     default: 'openvswitch'
14     description: |
15         The mechanism drivers for the Neutron tenant network.
16     type: comma_delimited_list
17   NeutronTypeDrivers:
18     default: "vxlan,vlan,flat,gre"
19     description: |
20         Comma-separated list of network type driver entrypoints to be loaded.
21     type: comma_delimited_list
22   NeutronFlatNetworks:
23     type: comma_delimited_list
24     default: 'datacentre'
25     description: If set, flat networks to configure in neutron plugins.
26   NeutronPluginExtensions:
27     default: "qos,port_security"
28     description: |
29         Comma-separated list of extensions enabled for the Neutron plugin.
30     type: comma_delimited_list
31   NeutronNetworkVLANRanges:
32     default: 'datacentre:1:1000'
33     description: >
34       The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
35       Neutron documentation for permitted values. Defaults to permitting any
36       VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
37     type: comma_delimited_list
38   NeutronTunnelIdRanges:
39     description: |
40         Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
41         of GRE tunnel IDs that are available for tenant network allocation
42     default: ["1:4094", ]
43     type: comma_delimited_list
44   NeutronVniRanges:
45     description: |
46         Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
47         of VXLAN VNI IDs that are available for tenant network allocation
48     default: ["1:4094", ]
49     type: comma_delimited_list
50   NeutronNetworkType:
51     default: 'vxlan'
52     description: The tenant network type for Neutron.
53     type: comma_delimited_list
54
55 resources:
56
57   NeutronBase:
58     type: ./neutron-base.yaml
59
60 outputs:
61   role_data:
62     description: Role data for the Neutron ML2 plugin.
63     value:
64       service_name: neutron-plugin-ml2
65       config_settings:
66         map_merge:
67           - get_attr: [NeutronBase, role_data, config_settings]
68           - neutron::plugins::ml2::mechanism_drivers:
69               str_replace:
70                 template: MECHANISMS
71                 params:
72                   MECHANISMS: {get_param: NeutronMechanismDrivers}
73             neutron::plugins::ml2::type_drivers:
74               str_replace:
75                 template: DRIVERS
76                 params:
77                   DRIVERS: {get_param: NeutronTypeDrivers}
78             neutron::plugins::ml2::flat_networks:
79               str_replace:
80                 template: NETWORKS
81                 params:
82                   NETWORKS: {get_param: NeutronFlatNetworks}
83             neutron::plugins::ml2::extension_drivers:
84               str_replace:
85                 template: PLUGIN_EXTENSIONS
86                 params:
87                   PLUGIN_EXTENSIONS: {get_param: NeutronPluginExtensions}
88             neutron::plugins::ml2::network_vlan_ranges:
89               str_replace:
90                 template: RANGES
91                 params:
92                   RANGES: {get_param: NeutronNetworkVLANRanges}
93             neutron::plugins::ml2::tunnel_id_ranges:
94               str_replace:
95                 template: RANGES
96                 params:
97                   RANGES: {get_param: NeutronTunnelIdRanges}
98             neutron::plugins::ml2::vni_ranges:
99               str_replace:
100                 template: RANGES
101                 params:
102                   RANGES: {get_param: NeutronVniRanges}
103             neutron::plugins::ml2::tenant_network_types:
104               str_replace:
105                 template: TYPES
106                 params:
107                   TYPES: {get_param: NeutronNetworkType}
108
109       step_config: |
110         include ::tripleo::profile::base::neutron::plugins::ml2