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.
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to