[openstack-dev] [devstack][neutron] Eliminating the DevStack layer

Kevin Benton kevin at benton.pub
Mon Apr 11 22:30:24 UTC 2016


This is a Nova option to decide how long to wait for Neutron to callback
before considering a port failed to be wired. The time this will take will
depend quite a bit on how heavily loaded the system is. We can certainly
try to get rid of it, but it means that we have to force assumptions about
how quickly a system should give up waiting for wiring. It would be similar
to getting rid of the option to choose a timeout value for the API clients.


Neutron does not need to be deployed with keystone. This is how you disable
it. Some operators do not have Neutron exposed to tenants so keystone is
stripped away for performance since the only things communicating with
Neutron are internal trusted services.

On Mon, Apr 11, 2016 at 12:42 PM, Hirofumi Ichihara <
ichihara.hirofumi at lab.ntt.co.jp> wrote:

> I agree. Throughout I was reviewing Devstack over 3 cycles,
> I thought the same thing. Devstack often accepted patches just
> adding option although we're not sure who really needs the options.
> There are many useless stuff in the options.
> For example, default value of devstack option is the same value as
> default in Projects. Please look at [1] and [2], [3] and [4]. Who uses
> these options?
> We can see such options in devstack throughout. I agree we will adjust
> default configurations and
> that documents in Neutron side. However, let's eliminate such options are
> clearly useless first.
> And then we should do after we made necessary options clear.
> [1]:
> https://github.com/openstack-dev/devstack/blob/master/lib/neutron-legacy#L178
> [2]:
> https://github.com/openstack/nova/blob/master/nova/conf/virt.py#L164-L166
> [3]:
> https://github.com/openstack-dev/devstack/blob/master/lib/neutron-legacy#L162
> [4]:
> https://github.com/openstack/neutron/blob/master/neutron/common/config.py#L53
> Thanks,
> Hirofumi
> On 2016/04/09 0:07, Sean M. Collins wrote:
>> Prior to the introduction of local.conf, the only way to configure
>> OpenStack components was to introduce code directly into DevStack, so
>> that DevStack would pick it up then inject it into the configuration
>> file.
>> This was because DevStack writes out new configuration files on each
>> run, so it wasn't possible for you to make changes to any configuration
>> file (nova.conf, neutron.conf, ml2_plugin.ini, etc..).
>> So, someone who wanted to set the Linux Bridge Agent's
>> physical_interface_mappings setting for Neutron would have to use
>> $LB_INTERFACE_MAPPINGS in DevStack, which would then be invoked by
>> DevStack[1].
>> The local.conf functionality was introduced quite a while back, and
>> I think it's time to have a conversation about why we should start
>> moving away from the previous practice of declaring variables in
>> DevStack, and then having them injected into the configuration files.
>> The biggest issue is: There is a disconnect between the developers
>> using DevStack and someone who is an operator or who has been editing
>> OpenStack conf files directly. So, for example I can tell you all about
>> how DevStack has a bunch of variables for configuring Neutron (which is
>> Not a Good Thing™), and how those go into DevStack and then end up coming
>> out the other side in a Neutron configuration file.
>> Really, I would like to get rid of the intermediate layer (DevStack)
>> and get both Devs and Deployers to be able to just say: Here's my
>> neutron.conf - let's diff mine and yours and see what we need to sync.
>> Matt Kassawara and I have had this issue, since he's coming from the
>> OSAD side, and I'm coming from the DevStack side. We both know what the
>> Neutron configuration should end up as, but DevStack having its own set
>> of variables and how those variables are handled and eventually rendered
>> as a Neutron config file makes things more difficult than it needs to
>> be, since Matt has to now go and learn about how DevStack handles all
>> these Neutron specific variables.
>> The Neutron refactor[2] that I am working on, I am trying to configure
>> as little as possible in DevStack. Neutron should be able to, out of the
>> box, Just Work™. If it can't, then that needs to be fixed in Neutron.
>> Secondly, the Neutron refactor will be getting rid of all the things
>> like $LB_INTERFACE_MAPPINGS - I would *much* prefer that someone using
>> DevStack actually set the apropriate line in their local.conf
>> Such as:
>>      [[post-config|/$Q_PLUGIN_CONF_FILE]]
>>      [linux_bridge]
>>      physical_interface_mappings = foo:bar
>> The advantage of this is, when someone is working with DevStack, the
>> things they are configuring are the same as all the other OpenStack
>> documentation.
>> For example, someone could read the Networking Guide, read the example
>> configuration[3] and the only thing they'd need to learn is our syntax
>> for specifying what file the contents go in (the
>> "[[post-config|/$Q_PLUGIN_CONF_FILE]]" piece).
>> Thoughts?
>> [1]:
>> https://github.com/openstack-dev/devstack/blob/1195a5b7394fc5b7a1cb1415978e9997701f5af1/lib/neutron_plugins/linuxbridge_agent#L63
>> [2]: https://review.openstack.org/168438
>> [3]:
>> http://docs.openstack.org/liberty/networking-guide/scenario-classic-lb.html#example-configuration
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160411/100efdc3/attachment.html>

More information about the OpenStack-dev mailing list