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