[openstack-dev] [devstack][neutron] Eliminating the DevStack layer
Brandon Logan
brandon.logan at RACKSPACE.COM
Mon Apr 11 22:55:05 UTC 2016
On Mon, 2016-04-11 at 15:30 -0700, Kevin Benton wrote:
> >[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
>
>
> 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.
>
>
>
> >[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
>
>
> 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.
This is correct. In a large deployment the number of requests going to
keystone dramatically affects performance. Do you think this needs to
be a devstack config option though? I kind of don't think it does for
no better reason than it's easy to just change the option in the
neutron.conf and restart.
>
> 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
>
>
>
> __________________________________________________________________________
> 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
More information about the OpenStack-dev
mailing list