165b9687deb360a11af00e07097b90f32d7776e7
[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   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   NeutronMechanismDrivers:
22     default: 'openvswitch'
23     description: |
24         The mechanism drivers for the Neutron tenant network.
25     type: comma_delimited_list
26   NeutronTypeDrivers:
27     default: "vxlan,vlan,flat,gre"
28     description: |
29         Comma-separated list of network type driver entrypoints to be loaded.
30     type: comma_delimited_list
31   NeutronFlatNetworks:
32     type: comma_delimited_list
33     default: 'datacentre'
34     description: If set, flat networks to configure in neutron plugins.
35   NeutronPluginExtensions:
36     default: "qos,port_security"
37     description: |
38         Comma-separated list of extensions enabled for the Neutron plugin.
39     type: comma_delimited_list
40   NeutronNetworkVLANRanges:
41     default: 'datacentre:1:1000'
42     description: >
43       The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
44       Neutron documentation for permitted values. Defaults to permitting any
45       VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
46     type: comma_delimited_list
47   NeutronTunnelIdRanges:
48     description: |
49         Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
50         of GRE tunnel IDs that are available for tenant network allocation
51     default: ["1:4094", ]
52     type: comma_delimited_list
53   NeutronVniRanges:
54     description: |
55         Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
56         of VXLAN VNI IDs that are available for tenant network allocation
57     default: ["1:4094", ]
58     type: comma_delimited_list
59   NeutronNetworkType:
60     default: 'vxlan'
61     description: The tenant network type for Neutron.
62     type: comma_delimited_list
63
64 resources:
65
66   NeutronBase:
67     type: ./neutron-base.yaml
68     properties:
69       ServiceNetMap: {get_param: ServiceNetMap}
70       DefaultPasswords: {get_param: DefaultPasswords}
71       EndpointMap: {get_param: EndpointMap}
72
73 outputs:
74   role_data:
75     description: Role data for the Neutron ML2 plugin.
76     value:
77       service_name: neutron_plugin_ml2
78       config_settings:
79         map_merge:
80           - get_attr: [NeutronBase, role_data, config_settings]
81           - neutron::plugins::ml2::mechanism_drivers:
82               str_replace:
83                 template: MECHANISMS
84                 params:
85                   MECHANISMS: {get_param: NeutronMechanismDrivers}
86             neutron::plugins::ml2::type_drivers:
87               str_replace:
88                 template: DRIVERS
89                 params:
90                   DRIVERS: {get_param: NeutronTypeDrivers}
91             neutron::plugins::ml2::flat_networks:
92               str_replace:
93                 template: NETWORKS
94                 params:
95                   NETWORKS: {get_param: NeutronFlatNetworks}
96             neutron::plugins::ml2::extension_drivers:
97               str_replace:
98                 template: PLUGIN_EXTENSIONS
99                 params:
100                   PLUGIN_EXTENSIONS: {get_param: NeutronPluginExtensions}
101             neutron::plugins::ml2::network_vlan_ranges:
102               str_replace:
103                 template: RANGES
104                 params:
105                   RANGES: {get_param: NeutronNetworkVLANRanges}
106             neutron::plugins::ml2::tunnel_id_ranges:
107               str_replace:
108                 template: RANGES
109                 params:
110                   RANGES: {get_param: NeutronTunnelIdRanges}
111             neutron::plugins::ml2::vni_ranges:
112               str_replace:
113                 template: RANGES
114                 params:
115                   RANGES: {get_param: NeutronVniRanges}
116             neutron::plugins::ml2::tenant_network_types:
117               str_replace:
118                 template: TYPES
119                 params:
120                   TYPES: {get_param: NeutronNetworkType}
121
122       step_config: |
123         include ::tripleo::profile::base::neutron::plugins::ml2