Add l2gw neutron service plugin support
authorPeng Liu <pliu@redhat.com>
Tue, 7 Mar 2017 08:45:37 +0000 (16:45 +0800)
committerRicardo Noriega <rnoriega@redhat.com>
Thu, 30 Mar 2017 14:42:10 +0000 (14:42 +0000)
L2 Gateway (L2GW) is an API framework for OpenStack that offers bridging
two or more networks together to make them look at a single broadcast
domain. This patch implements the l2gw neutron service plugin support part
in t-h-t.

Change-Id: I1b52dc2c11a15698e43b6deeac6cadeeba1802d5
Depends-On: I01a8afdc51b2a077be1bbc7855892f68756e1fd3
Partially-Implements: blueprint l2gw-service-integration
Signed-off-by: Peng Liu <pliu@redhat.com>
capabilities-map.yaml
environments/neutron-l2gw-api.yaml [new file with mode: 0644]
overcloud-resource-registry-puppet.j2.yaml
puppet/services/neutron-l2gw-api.yaml [new file with mode: 0644]
releasenotes/notes/add-l2gw-api-support-2206d3d14f409088.yaml [new file with mode: 0644]
roles_data.yaml

index 83b3ac4..85c327c 100644 (file)
@@ -370,6 +370,11 @@ topics:
             description: Enable FOS in the overcloud
             requires:
               - overcloud-resource-registry-puppet.yaml
+          - file: environments/neutron-l2gw.yaml
+            title: Neutron L2 gateway Service Plugin
+            description: Enables Neutron L2 gateway Service Plugin
+            requires:
+              - overcloud-resource-registry-puppet.yaml
 
   - title: Nova Extensions
     description:
diff --git a/environments/neutron-l2gw-api.yaml b/environments/neutron-l2gw-api.yaml
new file mode 100644 (file)
index 0000000..0989467
--- /dev/null
@@ -0,0 +1,20 @@
+# A Heat environment file that can be used to deploy Neutron L2 Gateway service
+#
+# Currently there are only two service provider for Neutron L2 Gateway
+# The default option is a dummy driver that allows to enable the API.
+# In order to enable other backend, replace the content of L2gwServiceProvider
+#
+# - L2 gateway agent: L2GW:l2gw:networking_l2gw.services.l2gateway.service_drivers.rpc_l2gw.L2gwRpcDriver:default
+# - OpenDaylight: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
+resource_registry:
+  OS::TripleO::Services::NeutronL2gwApi: ../puppet/services/neutron-l2gw-api.yaml
+
+parameter_defaults:
+  NeutronServicePlugins: "networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin"
+  L2gwServiceProvider: ["L2GW:l2gw:networking_l2gw.services.l2gateway.service_drivers.L2gwDriver:default"]
+
+  # Optional
+  # L2gwServiceDefaultInterfaceName:
+  # L2gwServiceDefaultDeviceName:
+  # L2gwServiceQuotaL2Gateway:
+  # L2gwServicePeriodicMonitoringInterval:
index b294d7c..f0f2a26 100644 (file)
@@ -145,6 +145,7 @@ resource_registry:
   OS::TripleO::Services::MySQL: puppet/services/database/mysql.yaml
   OS::TripleO::Services::NeutronBgpvpnApi: OS::Heat::None
   OS::TripleO::Services::NeutronDhcpAgent: puppet/services/neutron-dhcp.yaml
+  OS::TripleO::Services::NeutronL2gwApi: OS::Heat::None
   OS::TripleO::Services::NeutronL3Agent: puppet/services/neutron-l3.yaml
   OS::TripleO::Services::NeutronMetadataAgent: puppet/services/neutron-metadata.yaml
   # FIXME(shardy) the duplicate NeutronServer line can be removed when we've updated
diff --git a/puppet/services/neutron-l2gw-api.yaml b/puppet/services/neutron-l2gw-api.yaml
new file mode 100644 (file)
index 0000000..b6f0d28
--- /dev/null
@@ -0,0 +1,54 @@
+heat_template_version: ocata
+
+description: >
+  L2 Gateway service plugin configured with Puppet
+
+parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
+  EndpointMap:
+    default: {}
+    description: Mapping of service endpoint -> protocol. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  L2gwServiceDefaultInterfaceName:
+    default: 'FortyGigE1/0/1'
+    description: default interface name of the L2 gateway
+    type: string
+  L2gwServiceDefaultDeviceName:
+    default: 'Switch1'
+    description: default device name of the L2 gateway
+    type: string
+  L2gwServiceQuotaL2Gateway:
+    default: 5
+    description: quota of the L2 gateway
+    type: number
+  L2gwServicePeriodicMonitoringInterval:
+    default: 5
+    description: The periodic interval at which the plugin
+    type: number
+  L2gwServiceProvider:
+    default: ["L2GW:l2gw:networking_l2gw.services.l2gateway.service_drivers.L2gwDriver:default"]
+    description: Backend to use as a service provider for L2 Gateway
+    type: comma_delimited_list
+
+outputs:
+  role_data:
+    description: Role data for the L2 Gateway role.
+    value:
+      service_name: neutron_l2gw_api
+      config_settings:
+        neutron::services::l2gw::default_interface_name: {get_param: L2gwServiceDefaultInterfaceName}
+        neutron::services::l2gw::default_device_name: {get_param: L2gwServiceDefaultDeviceName}
+        neutron::services::l2gw::quota_l2_gateway: {get_param: L2gwServiceQuotaL2Gateway}
+        neutron::services::l2gw::periodic_monitoring_interval: {get_param: L2gwServicePeriodicMonitoringInterval}
+        neutron::services::l2gw::service_providers: {get_param: L2gwServiceProvider}
+      step_config: |
+        include tripleo::profile::base::neutron::l2gw
diff --git a/releasenotes/notes/add-l2gw-api-support-2206d3d14f409088.yaml b/releasenotes/notes/add-l2gw-api-support-2206d3d14f409088.yaml
new file mode 100644 (file)
index 0000000..8183532
--- /dev/null
@@ -0,0 +1,3 @@
+---
+features:
+  - Add support for L2 Gateway Neutron service plugin
index 130451f..780c9c9 100644 (file)
@@ -55,6 +55,7 @@
     - OS::TripleO::Services::MySQLClient
     - OS::TripleO::Services::NeutronBgpvpnApi
     - OS::TripleO::Services::NeutronDhcpAgent
+    - OS::TripleO::Services::NeutronL2gwApi
     - OS::TripleO::Services::NeutronL3Agent
     - OS::TripleO::Services::NeutronMetadataAgent
     - OS::TripleO::Services::NeutronApi