[openstack-dev] [devstack][neutron] Eliminating the DevStack layer
Kevin Benton
kevin at benton.pub
Mon Apr 11 23:02:29 UTC 2016
Oh right, I'm definitely for eliminating these values from Devstack and
just telling people to use post-config. I was just hesitant about
advocating for their removal from neutron.
On Mon, Apr 11, 2016 at 3:55 PM, Brandon Logan <brandon.logan at rackspace.com>
wrote:
> 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
>
> __________________________________________________________________________
> 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/0f34128f/attachment.html>
More information about the OpenStack-dev
mailing list