composable neutron ml2 and ovs agent
[apex-tripleo-heat-templates.git] / puppet / services / neutron-plugin-ml2.yaml
diff --git a/puppet/services/neutron-plugin-ml2.yaml b/puppet/services/neutron-plugin-ml2.yaml
new file mode 100644 (file)
index 0000000..435a6de
--- /dev/null
@@ -0,0 +1,109 @@
+heat_template_version: 2016-04-08
+
+description: >
+  OpenStack Neutron ML2 Plugin configured with Puppet
+
+parameters:
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  NeutronMechanismDrivers:
+    default: 'openvswitch'
+    description: |
+        The mechanism drivers for the Neutron tenant network.
+    type: comma_delimited_list
+  NeutronTypeDrivers:
+    default: "vxlan,vlan,flat,gre"
+    description: |
+        Comma-separated list of network type driver entrypoints to be loaded.
+    type: comma_delimited_list
+  NeutronFlatNetworks:
+    type: comma_delimited_list
+    default: 'datacentre'
+    description: If set, flat networks to configure in neutron plugins.
+  NeutronPluginExtensions:
+    default: "qos,port_security"
+    description: |
+        Comma-separated list of extensions enabled for the Neutron plugin.
+    type: comma_delimited_list
+  NeutronNetworkVLANRanges:
+    default: 'datacentre:1:1000'
+    description: >
+      The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
+      Neutron documentation for permitted values. Defaults to permitting any
+      VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
+    type: comma_delimited_list
+  NeutronTunnelIdRanges:
+    description: |
+        Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
+        of GRE tunnel IDs that are available for tenant network allocation
+    default: ["1:4094", ]
+    type: comma_delimited_list
+  NeutronVniRanges:
+    description: |
+        Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
+        of VXLAN VNI IDs that are available for tenant network allocation
+    default: ["1:4094", ]
+    type: comma_delimited_list
+  NeutronNetworkType:
+    default: 'vxlan'
+    description: The tenant network type for Neutron.
+    type: comma_delimited_list
+
+resources:
+
+  NeutronBase:
+    type: ./neutron-base.yaml
+
+outputs:
+  role_data:
+    description: Role data for the Neutron ML2 plugin.
+    value:
+      config_settings:
+        map_merge:
+          - get_attr: [NeutronBase, role_data, config_settings]
+          - neutron::plugins::ml2::mechanism_drivers:
+              str_replace:
+                template: MECHANISMS
+                params:
+                  MECHANISMS: {get_param: NeutronMechanismDrivers}
+            neutron::plugins::ml2::type_drivers:
+              str_replace:
+                template: DRIVERS
+                params:
+                  DRIVERS: {get_param: NeutronTypeDrivers}
+            neutron::plugins::ml2::flat_networks:
+              str_replace:
+                template: NETWORKS
+                params:
+                  NETWORKS: {get_param: NeutronFlatNetworks}
+            neutron::plugins::ml2::extension_drivers:
+              str_replace:
+                template: PLUGIN_EXTENSIONS
+                params:
+                  PLUGIN_EXTENSIONS: {get_param: NeutronPluginExtensions}
+            neutron::plugins::ml2::network_vlan_ranges:
+              str_replace:
+                template: RANGES
+                params:
+                  RANGES: {get_param: NeutronNetworkVLANRanges}
+            neutron::plugins::ml2::tunnel_id_ranges:
+              str_replace:
+                template: RANGES
+                params:
+                  RANGES: {get_param: NeutronTunnelIdRanges}
+            neutron::plugins::ml2::vni_ranges:
+              str_replace:
+                template: RANGES
+                params:
+                  RANGES: {get_param: NeutronVniRanges}
+            neutron::plugins::ml2::tenant_network_types:
+              str_replace:
+                template: TYPES
+                params:
+                  TYPES: {get_param: NeutronNetworkType}
+
+      step_config: |
+        include ::tripleo::profile::base::neutron::ml2