Use physical network interfaces in fuel-devops for connecting to baremetal servers

Registered by Dennis Dmitriev

To allow running baremetal and hybrid environments, libvirt virtual networks should be able to use already created network devices on the host server, that configured to provide connectivity to baremetal nodes.
Tagged environment networks should be accessible on the host with fuel-devops.

Libvirt supports different 'forward' modes, so it should be supported in XML builder, templates, and template validator.

Baremetal networks should be supported for the following configurations:

1. Untagged 'admin/PXE' and tagged 'public', 'management', 'storage', 'private' are configured to use the same L2 network that is connected to a network interface on the host server where fuel-devops is running. The host server is the gateway for 'admin' and 'public' networks to provide access the Internet.
2. Untagged 'admin/PXE' and tagged 'public', 'management', 'storage', 'private' are configured to use the same L2 network that is connected to a network interface on the host where fuel-devops is running. The host server is only connected to an L2 network, while gateways for 'admin' and 'private' networks are configured somewhere on a baremetal router.
3. All networks are configured to use different L2 networks that are connected to different network interfaces on the host server where fuel-devops is running. The host server is the gateway for 'admin' and 'public' networks to provide access the Internet.
4. All networks are configured to use different L2 networks that are connected to different network interfaces on the host server where fuel-devops is running. The host server is only connected to L2 networks, while gateways for 'admin' and 'private' networks are configured somewhere on a baremetal router.
5. Mixed, when some OpenStack networks are on the same L2 network, some - on other L2 network, that are connected to the host server with fuel-devops. At least 'admin', 'public' and 'management' networks should be avalable from the host server.

As the solution, there can be used libvirt networks with the following flow:
1) Create l2_network_device for each OpenStack network that should be used on the host server, using libvirt fuel-devops driver. If necessary, a separate group for the libvirt driver should be configured , even if no VMs used for the test.
2) Add necessary physical network interfaces of the host server to necessary l2_network_device (these interface names are expected to be provided with YAML templates)
3) Create necessary tagged interfaces for specified libvirt l2_network_devices
4) Add created tagged interfaces to appropriate l2_network_devices, so the tagged packets from one l2_network_devices come as untagged packets to another l2_network_device.

Blueprint information

Status:
Complete
Approver:
Nastya Urlapova
Priority:
Undefined
Drafter:
Dennis Dmitriev
Direction:
Needs approval
Assignee:
Dennis Dmitriev
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon 9.0
Started by
Dennis Dmitriev
Completed by
Dennis Dmitriev

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/fuel-devops-use-phys-interfaces,n,z

Addressed by: https://review.openstack.org/275391
    Use physical network interfaces in fuel-devops

Gerrit topic: https://review.openstack.org/#q,topic:bp/template-based-virtual-devops-environments,n,z

Addressed by: https://review.openstack.org/286172
    Use physical host interfaces to connect virtual and baremetal networks

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.