Enable deployment of TripleO onto a routed network with multiple subnets for overcloud nodes.

Registered by Dan Sneddon

TripleO currently models only a single set of subnets for all overcloud nodes, and it is expected that all nodes will share at least one common subnet (the provisioning network, A.K.A. Control Plane).

In order to support larger scale, and to conform to common modern datacenter practices of limiting broadcast domains to a single rack or group of racks, TripleO should support deploying to nodes which span multiple routed subnets. TripleO will have to model multiple sets of subnets and assign IPs and router information differently depending on where in the network the node is wired up. This requires both the IP address management (IPAM) backend to support routed subnets, but also the PXE boot process will need to support booting across routers via DHCP proxy or relay.

The implementation of routed networks support for deployments will require changes to multiple projects, and has several dependencies. This blueprint serves as a master blueprint for keeping track of the overall implementation and the sub-blueprints that cover each part of the implementation.

Blueprint information

Status:
Complete
Approver:
Emilien Macchi
Priority:
Medium
Drafter:
Dan Sneddon
Direction:
Approved
Assignee:
Dan Sneddon
Definition:
Approved
Series goal:
Accepted for rocky
Implementation:
Implemented
Milestone target:
milestone icon rocky-1
Started by
Emilien Macchi
Completed by
Alex Schultz

Related branches

Sprints

Whiteboard

[2017-12-08] Moving out to Rocky. If necessary please request FFE to explain why this is needed for Queens.
[2018-04-09] All patches seem to be merged. If this is still in progress please update the Blueprint with the work in progress.

Gerrit topic: https://review.openstack.org/#q,topic:tripleo-routed-networks-deployment,n,z

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

Addressed by: https://review.openstack.org/421009
    Spec: tripleo-routed-networks-deployment - Routed Spine and Leaf

Gerrit topic: https://review.openstack.org/#q,topic:bp/tripleo-routed-networks-deployment,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/tripleo-predictable-ctlplane-ips,n,z

Addressed by: https://review.openstack.org/421010
    blueprint tripleo-predictable-ctlplane-ips

Gerrit topic: https://review.openstack.org/#q,topic:bp/tripleo-routed-networks-ironic-inspector,n,z

Addressed by: https://review.openstack.org/421011
    blueprint tripleo-routed-networks-ironic-inspector

Gerrit topic: https://review.openstack.org/#q,topic:bp/tripleo-routed-networks-templates,n,z

Addressed by: https://review.openstack.org/425464
    blueprint tripleo-routed-networks-templates

Addressed by: https://review.openstack.org/442669
    [WIP] [Concept] Add NetName to Port: resource in role tamplate

Addressed by: https://review.openstack.org/437544
    Tripleo routed networks ironic inspector, and Undercloud

Addressed by: https://review.openstack.org/447214
    Custom DHCP agent for DHCP-relay support

Addressed by: https://review.openstack.org/447948
    Custom DHCP agent for DHCP-relay support

Addressed by: https://review.openstack.org/451584
    blueprint tripleo-routed-networks-templates

Addressed by: https://review.openstack.org/413278
    Add pre-selected Control Plane IP support.

Gerrit topic: https://review.openstack.org/#q,topic:neutron-mech-driver,n,z

Addressed by: https://review.openstack.org/473817
    Add subnet property to ctlplane network for server resources

Addressed by: https://review.openstack.org/533364
    Move ctlplane network/subnet setup to python

Addressed by: https://review.openstack.org/533365
    Update config to use per network groups

Addressed by: https://review.openstack.org/533366
    Update validations to validate all subnets

Addressed by: https://review.openstack.org/533368
    Create static routes for remote subnets

Addressed by: https://review.openstack.org/533369
    Add per subnet network cidr nat rules

Addressed by: https://review.openstack.org/533370
    Add per subnet masquerading

Addressed by: https://review.openstack.org/537830
    Install and enable neutron baremetal mech plugin

Addressed by: https://review.openstack.org/539939
    Documentation - TripleO routed-spine-and-leaf

Gerrit topic: https://review.openstack.org/#q,topic:bp/tripleo-routed-networks-ironic-inspector3,n,z

Gerrit topic: https://review.openstack.org/#q,topic:tripleo-routed-networks-deployment7,n,z

Addressed by: https://review.openstack.org/533367
    Add support for multiple inspection subnets

Addressed by: https://review.openstack.org/541678
    Prep-CI for routed-networks changes

Addressed by: https://review.openstack.org/542215
    Make routed networks optional

Addressed by: https://review.openstack.org/542500
    Set physical_network on baremetal nodes

Addressed by: https://review.openstack.org/550234
    Install and enable neutron baremetal ML2 and L2 agent

Gerrit topic: https://review.opendev.org/#/q/topic:neutron-routed-provider-networks

Addressed by: https://review.opendev.org/663019
    Configure Neutron API for Nova Placement...

Gerrit topic: https://review.opendev.org/#/q/topic:bp/tripleo-routed-networks-deployment

Addressed by: https://review.opendev.org/663335
    Configure Neutron API for Nova Placement...

Addressed by: https://review.opendev.org/663476
    Configure Neutron API for Nova Placement...

Addressed by: https://review.opendev.org/663479
    Configure Neutron API for Nova Placement...

Addressed by: https://review.opendev.org/663481
    Configure Neutron API for Nova Placement...

Addressed by: https://review.opendev.org/664851
    Use auth_uri for Neutron API for Nova Placement

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.