Add l2gw neutron agent support

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 agent which is one of the backend
of the l2 gateway service plugin.

Change-Id: I1ae8132ceff9410be7bd82caddf0d14251e720bf
Depends-On: If1501c153b1b170b9550cb7e5a23be463fba1fe9
Partially-Implements: blueprint l2gw-service-integration
Signed-off-by: Peng Liu <pliu@redhat.com>
This commit is contained in:
Peng Liu 2017-03-14 14:39:35 +08:00
parent 5b4e1bc823
commit 633ab23f88
6 changed files with 124 additions and 6 deletions

View File

@ -369,7 +369,7 @@ topics:
- overcloud-resource-registry-puppet.yaml
- file: environments/neutron-l2gw.yaml
title: Neutron L2 gateway Service Plugin
description: Enables Neutron L2 gateway Service Plugin
description: Enables Neutron L2 gateway Service Plugin and Agent
requires:
- overcloud-resource-registry-puppet.yaml

View File

@ -8,13 +8,20 @@
# - OpenDaylight: L2GW:OpenDaylight:networking_odl.l2gateway.driver.OpenDaylightL2gwDriver:default
resource_registry:
OS::TripleO::Services::NeutronL2gwApi: ../puppet/services/neutron-l2gw-api.yaml
OS::TripleO::Services::NeutronL2gwAgent: ../puppet/services/neutron-l2gw-agent.yaml
parameter_defaults:
NeutronServicePlugins: "networking_l2gw.services.l2gateway.plugin.L2GatewayPlugin"
L2gwServiceProvider: ["L2GW:l2gw:networking_l2gw.services.l2gateway.service_drivers.L2gwDriver:default"]
L2gwServiceProvider: ['L2GW:l2gw:networking_l2gw.services.l2gateway.service_drivers.L2gwDriver:default']
# Optional
# L2gwServiceDefaultInterfaceName:
# L2gwServiceDefaultDeviceName:
# L2gwServiceQuotaL2Gateway:
# L2gwServicePeriodicMonitoringInterval:
# L2gwServiceDefaultInterfaceName: "FortyGigE1/0/1"
# L2gwServiceDefaultDeviceName: "Switch1"
# L2gwServiceQuotaL2Gateway: 10
# L2gwServicePeriodicMonitoringInterval: 5
# L2gwAgentOvsdbHosts: ["ovsdb1:127.0.0.1:6632"]
# L2gwAgentEnableManager: False
# L2gwAgentManagerTableListeningPort: "6633"
# L2gwAgentPeriodicInterval: 20
# L2gwAgentMaxConnectionRetries: 10
# L2gwAgentSocketTimeout: 30

View File

@ -135,6 +135,7 @@ resource_registry:
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::NeutronL2gwAgent: OS::Heat::None
OS::TripleO::Services::NeutronMetadataAgent: puppet/services/neutron-metadata.yaml
# FIXME(shardy) the duplicate NeutronServer line can be removed when we've updated
# the multinode job ControllerServices after this patch merges

View File

@ -0,0 +1,106 @@
heat_template_version: pike
description: >
L2 Gateway agent 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
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
L2gwAgentOvsdbHosts:
default: ''
description: L2 gateway agent OVSDB server list.
type: comma_delimited_list
L2gwAgentEnableManager:
default: false
description: Connection can be initiated by the ovsdb server.
type: boolean
L2gwAgentManagerTableListeningPort:
default: 6632
description: port number for L2 gateway agent, so that it can listen
type: number
L2gwAgentPeriodicInterval:
default: 20
description: The L2 gateway agent checks connection state with the OVSDB
servers. The interval is number of seconds between attempts.
type: number
L2gwAgentMaxConnectionRetries:
default: 10
description: The L2 gateway agent retries to connect to the OVSDB server
type: number
L2gwAgentSocketTimeout:
default: 30
description: socket timeout
type: number
MonitoringSubscriptionNeutronL2gwAgent:
default: 'overcloud-neutron-l2gw-agent'
type: string
NeutronL2gwAgentLoggingSource:
type: json
default:
tag: openstack.neutron.agent.l2gw
path: /var/log/neutron/l2gw-agent.log
conditions:
internal_manager_enabled: {equals: [{get_param: L2gwAgentEnableManager}, True]}
outputs:
role_data:
description: Role data for the L2 Gateway role.
value:
service_name: neutron_l2gw_agent
monitoring_subscription: {get_param: MonitoringSubscriptionNeutronL2gwAgent}
logging_source: {get_param: NeutronL2gwAgentLoggingSource}
logging_groups:
- neutron
config_settings:
map_merge:
- neutron::agents::l2gw::ovsdb_hosts: {get_param: L2gwAgentOvsdbHosts}
neutron::agents::l2gw::enable_manager: {get_param: L2gwAgentEnableManager}
neutron::agents::l2gw::manager_table_listening_port: {get_param: L2gwAgentManagerTableListeningPort}
neutron::agents::l2gw::periodic_interval: {get_param: L2gwAgentPeriodicInterval}
neutron::agents::l2gw::max_connection_retries: {get_param: L2gwAgentMaxConnectionRetries}
neutron::agents::l2gw::socket_timeout: {get_param: L2gwAgentSocketTimeout}
-
if:
- internal_manager_enabled
- tripleo.neutron_l2gw_agent.firewall_rules:
'142 neutron l2gw agent input':
proto: 'tcp'
dport: {get_param: L2gwAgentManagerTableListeningPort}
- null
step_config: |
include tripleo::profile::base::neutron::agents::l2gw
upgrade_tasks:
- name: Check if neutron_l2gw_agent is deployed
command: systemctl is-enabled neutron-l2gw-agent
tags: common
ignore_errors: True
register: neutron_l2gw_agent_enabled
- name: "PreUpgrade step0,validation: Check service neutron-l2gw-agent is running"
shell: /usr/bin/systemctl show 'neutron-l2gw-agent' --property ActiveState | grep '\bactive\b'
when: neutron_l2gw_agent_enabled.rc == 0
tags: step0,validation
- name: Stop neutron_l2gw_agent service
tags: step1
when: neutron_l2gw_agent_enabled.rc == 0
service: name=neutron-l2gw-agent state=stopped

View File

@ -0,0 +1,3 @@
---
features:
- Add support for L2 Gateway Neutron agent

View File

@ -74,6 +74,7 @@
- OS::TripleO::Services::NeutronApi
- OS::TripleO::Services::NeutronCorePlugin
- OS::TripleO::Services::NeutronOvsAgent
- OS::TripleO::Services::NeutronL2gwAgent
- OS::TripleO::Services::RabbitMQ
- OS::TripleO::Services::HAproxy
- OS::TripleO::Services::Keepalived