← Back to team overview

openstack team mailing list archive

Melange/IPAM update and path forward

 

At the Diablo summit, one of the outcomes from the networking discussions was the decision to build a separate IP address management system (IPAM). The work to deliver on this requirement has been done under the project name Melange. Melange is envisioned to provide network information services that can track IP blocks, subnets, address allocation and also manage gateway and NAT'ing information. Our target has been to encapsulate the required IPAM features into a separate service with a RESTful API. This would provide a way to isolate IP management and also provide a future, centralized service for other OpenStack offerings.

In discussions over the past few weeks with Vish and other Nova core devs, it was recommended that we bring the Melange effort into the Nova project. There were several reasons feels like right direction. First, there is a great deal of refactoring that needs to be done with Nova's current IP management code and this approach would prevent doing it twice. The project is small enough that it doesn't seem to warrant a full-scale incubated project in FutureStack. Nova core devs could oversee the evolution and commits for Melange to ensure consistency and adequate coverage for Nova's needs.

Based on this feedback, we are proposing a plan with the following steps:

1. Bring Melange into a subfolder within Nova.  It would not share any code with nova, but it does use ‘dev infrastructure’ like run_tests.sh and pip-installs of nova. There is no direct coupling between the two, Nova interacts with Melange through REST. Melange development stack is similar to glance.

2. Integrate Melange into a new "NetStack" network manager that would exploit both Melange and Quantum

3. Use Melange to refactor Nova features such as DHCP, Floating IPs, HA IP allocation, Shared IPs

With these ideas in mind, we will be making a merge prop within the next week or two to address step 1. There will be ample time to review code and comment on the merge prop. But, I wanted to provide and opportunity to discuss this approach ahead of time and point you to some resources to find out more about Melange so that no one is unprepared.

There is a current Launchpad branch for Melange that can be found here:

https://code.launchpad.net/~raxnetworking/nova/melange

A draft API specification (still needs more formatting work but it's a start!):
http://wiki.openstack.org/MelangeAPIBase

Initial blueprints:

https://blueprints.launchpad.net/nova/+spec/melange-network-info-svcs
https://blueprints.launchpad.net/nova/+spec/melange-ipam
<https://blueprints.launchpad.net/nova/+spec/melange-api><https://blueprints.launchpad.net/nova/+spec/melange-api>https://blueprints.launchpad.net/nova/+spec/melange-api
https://blueprints.launchpad.net/nova/+spec/melange-address-discovery

Please let me know if there are any other questions that we can field while we finalize our current work to prepare the code for a move into Nova.

Thank you,
Troy Toman
This email may include confidential information. If you received it in error, please delete it.

Follow ups