Ironic virt driver portgroups support

Registered by Vasyl Saienko on 2016-10-11

To allow utilize NIC aggregation when instance is spawned on hardware server. Nova virt driver should pick bonded NICs with higher preference that single NICs. It will allow user to increase performance or provide higher reliability of network connection.

So this consists of a few things, all contained within the ironic virt driver:

* Implement https://blueprints.launchpad.net/nova/+spec/ironic-plug-unplug-vifs-update

* Bump the ironic client API version to give us something that can use portgroups.

* Making use of cloud-init will likely include changes to the config drive generation code in ironic virt driver.

johnthetubaguy asked about QA in irc - cloud-init supports bonding today, but the cirros images used in the gate do not. The ironic team has manually tested a cirros image re-built with bonding modules enabled, and it works as expected. We plan to work with Scott (the cirros maintainer) to get an image released with the modules enabled, then update one or more of our CI jobs to use portgroups to test this feature.

Blueprint information

Status:
Complete
Approver:
Matt Riedemann
Priority:
Low
Drafter:
Vasyl Saienko
Direction:
Approved
Assignee:
Vladyslav Drok
Definition:
Approved
Series goal:
Accepted for ocata
Implementation:
Implemented
Milestone target:
milestone icon ocata-3
Started by
John Garbutt on 2016-10-11
Completed by
Matt Riedemann on 2017-01-20

Related branches

Sprints

Whiteboard

So this consists of a few things, all contained within the ironic virt driver:

* Implement https://blueprints.launchpad.net/nova/+spec/ironic-plug-unplug-vifs-update

* Bump the ironic client API version to give us something that can use portgroups.

* Making use of cloud-init will likely include changes to the config drive generation code in ironic virt driver.

johnthetubaguy asked about QA in irc - cloud-init supports bonding today, but the cirros images used in the gate do not. The ironic team has manually tested a cirros image re-built with bonding modules enabled, and it works as expected. We plan to work with Scott (the cirros maintainer) to get an image released with the modules enabled, then update one or more of our CI jobs to use portgroups to test this feature.

See POC patch here:
https://review.openstack.org/#/c/206163/

Given the non-trivial nature of this feature we should have a spec for this for Ocata. -- mriedem 20161013

Gerrit topic: https://review.openstack.org/#q,topic:bp/ironic-portgroups-support,n,z

Addressed by: https://review.openstack.org/387534
    Proposal for ironic static portgroups support

Addressed by: https://review.openstack.org/388756
    Generate necessary network metadata for portgroups

Addressed by: https://review.openstack.org/206163
    Ironic: use portgroups

I'm marking this blocked for now since the portgroups support depends on the attach/detach support in https://review.openstack.org/#/c/364413/ which has dependencies on an API change in Ironic and changes to the ironicclient. jroll thinks the Ironic side dependencies should be merged by end of week 1/13/2017 though. -- mriedem 20170106

Addressed by: https://review.openstack.org/364413
    Support Ironic interface attach/detach in nova virt

Addressed by: https://review.openstack.org/421261
    Support Ironic interface attach/detach in nova virt

Addressed by: https://review.openstack.org/421638
    DNM: Test interface attahc/detach for Ironic

Addressed by: https://review.openstack.org/422068
    Ensure we mark baremetal links as phy links

Addressed by: https://review.openstack.org/422070
    Ensure we mark baremetal links as phy links

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.