[openstack-dev] [Neutron][L3] Agent manager customization

Carl Baldwin carl at ecbaldwin.net
Tue Apr 22 16:18:35 UTC 2014


Cedric,

I'm just getting back from a short vacation.  Please excuse the delayed reply.

I have a feeling that this subject may have been discussed in the past
before I was very active in Neutron.  So, others may chime in if I'm
missing something.

For the customizations that you're making, it sounds like some sort of
hook system would work best.  You are currently using inheritance to
achieve it but I worry that the L3 agent class has not been designed
for this inheritance and may not be entirely suitable for your needs.
What has been your experience?  Have you found it easy to maintain
your subclass as the L3 agent evolves?  If not, what problems have you
seen?  Are there parts of the agent design that made it difficult or
awkward?

I suspect that a well-designed and stable hook system will better suit
your needs in the long run.  However, nothing like that exists in the
agent now.

Is there some synergy here with the "L3 Vendor plugins" summit topic
proposal [1].  Could you look through that proposal and the linked
blueprints with that in mind?

Carl

[1] http://summit.openstack.org/cfp/details/81

On Fri, Apr 18, 2014 at 9:11 AM, zz elle <zzelle at gmail.com> wrote:
> Hi everyone,
>
>
> I would like to propose a change to simplify/allow l3 agent manager
> customization and i would like the community feedback.
>
>
> Just to precise my context, I deploy OpenStack for small specific business
> use cases and i often customize it because of specific use case needs.
> In particular must of the time i must customize L3 agent behavior in order
> to:
> - add custom iptables rules in the router (on router/port post-deployment),
> - remove custom iptables rules in the router (on port pre-undeployment),
> - update router config through sysctl (on router post-deployment),
> - start an application in the router (on router/port post-deployment),
> - stop an application in the router (on router/port pre-undeployment),
> - etc ...
> Currently (Havana,Icehouse), i create my own L3 agent manager which extends
> neutron one.
> And I replace neutron-l3-agent binary, indeed it's not possible to
> change/hook l3 agent manager implementation by configuration.
>
>
> What would be the correct way to allow l3 agent manager customization ?
>  - Allow to specify l3 agent manager implementation through configuration
>   ==> like the option router_scheduler_driver which allows to change router
> scheduler implementation
>  - Allow to hook l3 agent manager implementation
>   ==> like the generic hook system in nova (nova.hooks used in
> nova.compute.api)
>   ==> or like the neutron ML2 mechanism hook system
> (neutron.plugins.ml2.driver_api:MechanismDriver)
>  - Other idea ?
>
>
> It seems the same question could be asked for the dhcp agent ?
>
>
> Thanks,
>
> Cedric (zzelle at irc)
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>



More information about the OpenStack-dev mailing list