Add High Availability Features on l3 agent

Registered by Sylvain Afchain on 2013-10-15

The aim of this blueprint is to add High Availability Features on virtual routers.

High availability features will be implemented as extensions or drivers.
A first extension/driver will be based on VRRP.

A new scheduler will be also added in order to be able to spawn multiple instances of
a same router in many places.

Blueprint information

Status:
Complete
Approver:
Kyle Mestery
Priority:
High
Drafter:
Sylvain Afchain
Direction:
Approved
Assignee:
Sylvain Afchain
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
Sylvain Afchain on 2013-11-21
Completed by
Kyle Mestery on 2014-09-15

Related branches

Sprints

Whiteboard

September-3 (mestery): This has been granted an FFE for Juno, targeting RC1.

14-July (mestery): Moving to Juno-2 as the spec was just approved.

2-Jun (mestery): Moving this to Juno-2, and marking it as "Pending approval" since the spec hasn't merged in neutron-specs yet.

6-Mar (markmcclain): Deferring to Juno as the code is not ready for immediate merge.

Gerrit topic: https://review.openstack.org/#/q/topic:bp/l3-high-availability,n,z

Addressed by: https://review.openstack.org/64553
    Add L3 VRRP HA base classes

Addressed by: https://review.openstack.org/66347
    Add a new scheduler for the l3 HA

Addressed by: https://review.openstack.org/68142
    Introduces a keepalived manager for HA

Addressed by: https://review.openstack.org/71586
    Introduces a conntrackd manager for HA

Addressed by: https://review.openstack.org/#/c/70700/
    Add HA support to the l3 agent

Gerrit topic: https://review.openstack.org/#/q/topic:bp/l3-high-availability-api,n,z

Gerrit topic: https://review.openstack.org/#/q/topic:bp/l3-high-availability-keepalived,n,z

Addressed by: https://review.openstack.org/70700
    Add HA support to the l3 agent

Gerrit topic: https://review.openstack.org/#/q/topic:bp/l3-high-availability-scheduler,n,z

Addressed by: https://review.openstack.org/80332
    Add conntrackd to the L3 HA agent

Addressed by: https://review.openstack.org/86200
    add l3 ha

Addressed by: https://review.openstack.org/94175
    Specification for the BP l3-high-availability

Addressed by: https://review.openstack.org/109855
    Remove redundant code in tests/unit/test_l3_agent

Addressed by: https://review.openstack.org/109856
    Make tests/unit/test_l3_agent._prepare_router_data static

Addressed by: https://review.openstack.org/109860
    Add functional test for l3_agent

Addressed by: https://review.openstack.org/112140
    Implement ip_lib.device_configured_with

Addressed by: https://review.openstack.org/112415
    Add HA support to the l3 agent

Addressed by: https://review.openstack.org/114717
    Add rootwrap template to support functional tests

Addressed by: https://review.openstack.org/117759
    Fix state_path in tests

Gerrit topic: https://review.openstack.org/#/q/topic:vrrp_agents,n,z

Addressed by: https://review.openstack.org/117994
    Test HA router failover

Addressed by: https://review.openstack.org/120175
    Refactor l3_agent.process_router_floating_ip_addresses

Addressed by: https://review.openstack.org/123000
    HA integration tests

Addressed by: https://review.openstack.org/122357
    Iterate over same port_id if more than one exists

Addressed by: https://review.openstack.org/123434
    L3 Agent should generate ns_name in a single place

Addressed by: https://review.openstack.org/123435
    Divide _cleanup_namespaces for easy extensibility

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.