]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commit
Add HA support to the l3 agent
authorSylvain Afchain <sylvain.afchain@enovance.com>
Wed, 6 Aug 2014 12:32:51 +0000 (15:32 +0300)
committerAssaf Muller <amuller@redhat.com>
Sun, 14 Sep 2014 17:34:06 +0000 (20:34 +0300)
commite7ce526ac1bb2b2ea0803ec32b147fe7feeac35c
tree0f0673ddf91df4156367eda22c088c67212e91bd
parentf095f993302f63d88ae8e90826aad706277996ca
Add HA support to the l3 agent

* Add HA mixins used by RouterInfo and LNAT3Agent
* For HA routers: Internal, external and floating IP addresses are no
  longer configured by the agent. Instead the interfaces and addresses
  are passed to a keepalived configuration, which configures the
  addresses when the router transitions to the master state.
* Only the master instance of the router opens the metadata proxy.
  This happens due to keepalived notification scripts that are
  called upon state transitions.
* Extra routes are handled via keepalived virtual routes and are
  no longer configured by the agent.
* HA routers create a 'HA device' on a VRRP-traffic only HA-network.
* Functional testing: Add two new tests to the L3 agent:
    1) Translation of a router configuration to a keepalived
       configuration.
    2) HA specific events when creating a HA router - Assert that
       keepalived is up, etc.

Change-Id: I83f2a5d2af42164c42773b385ba7b00872eed54e
Implements: blueprint l3-high-availability
Co-Authored-By: Assaf Muller <amuller@redhat.com>
12 files changed:
etc/l3_agent.ini
neutron/agent/l3_agent.py
neutron/agent/l3_ha_agent.py [new file with mode: 0644]
neutron/agent/linux/keepalived.py
neutron/services/firewall/agents/varmour/varmour_router.py
neutron/tests/functional/agent/test_l3_agent.py
neutron/tests/functional/base.py
neutron/tests/unit/services/firewall/agents/l3reference/test_firewall_l3_agent.py
neutron/tests/unit/services/firewall/agents/varmour/test_varmour_router.py
neutron/tests/unit/services/firewall/drivers/varmour/test_varmour_fwaas.py
neutron/tests/unit/services/vpn/test_vpn_agent.py
neutron/tests/unit/test_l3_agent.py