Add High Availability Features on l3 agent

Registered by Sylvain Afchain

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
Completed by
Kyle Mestery

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.