<div dir="ltr">Oh no, not another *aas!<div><br></div><div>Seriously, I don't think IP address management should be a service of its own independent from Neutron and/or nova-network.</div><div>Neutron currently has an IPAM logic which is entirely coded in db_base_plugin_v2.py, and is more or less loosely coupled with the DHCP agent.</div>
<div>We already have in place blueprints for allowing different IPAM drivers, which might or might not be part of the neutron code base, and which might or might not leverage the DHCP agent. There has been slow progress on these blueprints, and it would be awesome if somebody could jump in and help us deliver them.<br>
</div><div><br></div><div>In my opinion, I don't think this calls for a new service plugin, IPAM is and should always be part of the 'core' Neutron API.</div><div>It should be possible to abstract an interface for allocation/dellocating IP addresses for ports, and then have 'drivers' implementing this interface, with the current IPAM logic becoming the default drivers to be executed in gate jobs.</div>
<div><br></div><div>As different IPAM drivers might have totally different DB schemas, the final design should also provide a solution for addressing database migrations, and, if possible, data model conversion when switching from one driver to another (though I am not sure if this should be a requirement)</div>
<div><br></div><div>Another interesting, and perhaps orthogonal aspect is whether we want to expose IP addresses as a first-level resource in the Neutron API, but this is probably the subject for another thread.<br></div>
<div><br></div><div>Regards,</div><div>Salvatore</div><div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 18 November 2013 10:08, Mathieu Rohon <span dir="ltr"><<a href="mailto:mathieu.rohon@gmail.com" target="_blank">mathieu.rohon@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
As I understood Juniper/contrail developers have also troubles with IPAM.<br>
The Hooks you are talking about in Nova, is handled with service<br>
plugin in Neutron. May be there is a place to implement an IPAMaaS<br>
service, or DHCPaaS?<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Thu, Nov 14, 2013 at 6:32 AM, Lari Partanen <<a href="mailto:lari.partanen@gmail.com">lari.partanen@gmail.com</a>> wrote:<br>
> Thanks! So _generate_ip @ <a href="http://neutron.db.db_base_plugin_v2.py" target="_blank">neutron.db.db_base_plugin_v2.py</a> is one of the<br>
> methods I need to modify. Is there something like this<br>
> <a href="http://docs.openstack.org/developer/nova/devref/hooks.html" target="_blank">http://docs.openstack.org/developer/nova/devref/hooks.html</a> in Neutron for<br>
> extending its methods or do I need to make a patch<br>
> if I wish to distribute my changes?<br>
><br>
> Regards,<br>
> Lari<br>
><br>
> Hi,<br>
><br>
> You can take a look at the patches in this blueprint:<br>
> <a href="https://blueprints.launchpad.net/neutron/+spec/configurable-ip-allocation" target="_blank">https://blueprints.launchpad.net/neutron/+spec/configurable-ip-allocation</a><br>
><br>
> There was also a bp created earlier to talk to an external IPAM:<br>
> <a href="https://blueprints.launchpad.net/neutron/+spec/neutron-ipam" target="_blank">https://blueprints.launchpad.net/neutron/+spec/neutron-ipam</a><br>
><br>
> Thanks,<br>
> ~Sumit.<br>
><br>
><br>
> On Wed, Nov 13, 2013 at 7:22 PM, Lari Partanen <lari.partanen at<br>
> <a href="http://gmail.com" target="_blank">gmail.com</a>>wrote:<br>
><br>
>> Hi,<br>
>><br>
>> our company is using an IPAM solution that we would like to integrate with<br>
>> OpenStack. The idea would be that when instances request IP addresses they<br>
>> would get a free IP address from our IPAM which would be then allocated to<br>
>> them and when instances are deleted the IP addresses are released from the<br>
>> IPAM.<br>
>><br>
>> I've gone through the source code but I'm having hard time figuring out<br>
>> how should I proceed with the integration. I would be grateful on<br>
>> information about what methods I should be looking for in the source code<br>
>> and how to extend them properly.<br>
>><br>
>> Thanks!<br>
>> _______________________________________________<br>
>> OpenStack-dev mailing list<br>
>> OpenStack-dev at <a href="http://lists.openstack.org" target="_blank">lists.openstack.org</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>><br>
><br>
><br>
><br>
</div></div><div class="HOEnZb"><div class="h5">> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> <a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div>