[openstack-dev] [nova] config options help text improvement: current status
Markus Zoeller
mzoeller at de.ibm.com
Fri Mar 18 17:40:53 UTC 2016
If you have open changes in Gerrit for this task, please be aware
that the commit message must be updated to the Newton blueprint [1]:
Implements blueprint centralize-config-options-newton
New changes should use this line in the commit message too. This was
necessary to keep a clean track record of the work done in Mitaka.
I'll find two IRC meeting slots (Europe/Asia and US friendly) shortly
after the Mitaka release where we can discuss open question. I will
also attend the Newton summit, in case you want to reach out there.
The next weeks until the release are focused on creating a stable
and reliable product and preparation for the summit, so I have less
time to review these changes. But you can always contact me in IRC.
References:
[1]
https://blueprints.launchpad.net/nova/+spec/centralize-config-options-newton
Regards, Markus Zoeller (markus_z)
Markus Zoeller/Germany/IBM at IBMDE wrote on 03/02/2016 06:45:45 PM:
> From: Markus Zoeller/Germany/IBM at IBMDE
> To: "OpenStack Development Mailing List"
<openstack-dev at lists.openstack.org>
> Date: 03/02/2016 06:47 PM
> Subject: [openstack-dev] [nova] config options help text improvement:
> current status
>
> TL;DR: From ~600 nova specific config options are:
> ~140 at a central location with an improved help text
> ~220 options in open reviews (currently on hold)
> ~240 options todo
>
>
> Background
> ==========
> Nova has a lot of config options. Most of them weren't well
> documented and without looking in the code you probably don't
> understand what they do. That's fine for us developers but the ops
> had more problems with the interface we provide for them [1]. After
> the Mitaka summit we came to the conclusion that this should be
> improved, which is currently in progress with blueprint [2].
>
>
> Current Status
> ==============
> After asking on the ML for help [3] the progress improved a lot.
> The goal is clear now and we know how to achieve it. The organization
> is done via [4] which also has a section of "odd config options".
> This section is important for a later step when we want do deprecate
> config options to get rid of unnecessary ones.
>
> As we reached the Mitaka-3 milestone we decided to put the effort [5]
> on hold to stabilize the project and focus the review effort on bug
> fixes. When the Newton cycle opens, we can continue the work. The
> current result can be seen in the sample "nova.conf" file generated
> after each commit [6]. The appendix at the end of this post shows an
> example.
>
> All options we have will be treated that way and moved to a central
> location at "nova/conf/". That's the central location which hosts
> now the interface to the ops. It's easier to get an overview now.
> The appendix shows how the config options were spread at the beginning
> and how they are located now.
>
> I initially thought that we have around 800 config options in Nova
> but I learned meanwhile that we import a lot from other libs, for
> example from "oslo.db" and expose them as Nova options. We have around
> 600 Nova specific config options, and ~140 are already treaded like
> described above and ca. 220 are in the pipeline of open reviews.
> Which leaves us ~240 which are not looked at yet.
>
>
> Outlook
> =======
> The numbers of the beginning of this ML post make me believe that we
> can finish the work in the upcoming Newton cycle. "Finished" means
> here:
> * all config options we provide to our ops have proper and usable docs
> * we have an understanding which options don't make sense anymore
> * we know which options should get stronger validation to reduce errors
>
> I'm looking forward to it :)
>
>
> Thanks
> ======
> I'd like to thank all the people who are working on this and making
> this possible. A special thanks goes to Ed Leafe, Esra Celik and
> Stephen Finucane. They put a tremendous amount of work in it.
>
>
> References:
> ===========
> [1]
> http://lists.openstack.org/pipermail/openstack-operators/2016-January/
> 009301.html
> [2]
https://blueprints.launchpad.net/nova/+spec/centralize-config-options
> [3]
>
http://lists.openstack.org/pipermail/openstack-dev/2015-December/081271.html
> [4] https://etherpad.openstack.org/p/config-options
> [5] Gerrit reviews for this topic:
> https://review.openstack.org/#/q/status:open+project:openstack/nova
> +branch:master+topic:bp/centralize-config-options
> [6] The sample config file which gets generated after each commit:
> http://docs.openstack.org/developer/nova/sample_config.html
>
>
> Appendix
> ========
>
> Example of the help text improvement
> -----------------------------------
> As an example, compare the previous documentation of the scheduler
> option "scheduler_tracks_instance_changes".
> Before we started:
>
> # Determines if the Scheduler tracks changes to instances to help
> # with its filtering decisions. (boolean value)
> #scheduler_tracks_instance_changes = true
>
> After the improvement:
>
> # The scheduler may need information about the instances on a host
> # in order to evaluate its filters and weighers. The most common
> # need for this information is for the (anti-)affinity filters,
> # which need to choose a host based on the instances already running
> # on a host.
> #
> # If the configured filters and weighers do not need this
information,
> # disabling this option will improve performance. It may also be
> # disabled when the tracking overhead proves too heavy, although
> # this will cause classes requiring host usage data to query the
> # database on each request instead.
> #
> # This option is only used by the FilterScheduler and its
subclasses;
> # if you use a different scheduler, this option has no effect.
> #
> # * Services that use this:
> #
> # ``nova-scheduler``
> #
> # * Related options:
> #
> # None
> # (boolean value)
> #scheduler_tracks_instance_changes = true
>
>
> The spread of config options in the tree
> ----------------------------------------
> We started with this in November 2015. It's the Nova project tree and
> the numbers behind the package name are the numbers of config options
> declared in that package (config options declared in sub-packages are
> not accumulated).
>
> Based on:
> commit 201090b0bcb
> Date: Thu Nov 19 04:08:51 2015 +0000
>
> nova [87]
> --- CA [0]
> ------ newcerts [0]
> ------ private [0]
> ------ projects [0]
> ------ reqs [0]
> --- api [3]
> ------ ec2 [14]
> ------ metadata [6]
> ------ openstack [6]
> --------- compute [2]
> ------------ legacy_v2 [2]
> --------------- contrib [6]
> ------------ schemas [0]
> ------------ views [0]
> ------ validation [0]
> --- cells [25]
> ------ filters [0]
> ------ weights [3]
> --- cert [2]
> --- cloudpipe [6]
> --- cmd [15]
> --- compute [49]
> ------ monitors [2]
> --------- cpu [0]
> ------ resources [0]
> --- conductor [5]
> ------ tasks [1]
> --- conf [0]
> --- console [16]
> --- consoleauth [3]
> --- db [4]
> ------ sqlalchemy [13]
> --------- api_migrations [0]
> ------------ migrate_repo [0]
> --------------- versions [0]
> --------- migrate_repo [0]
> ------------ versions [0]
> --- hacking [0]
> --- image [14]
> ------ download [3]
> --- ipv6 [1]
> --- keymgr [5]
> --- mks [2]
> --- network [68]
> ------ neutronv2 [14]
> ------ security_group [1]
> --- objects [2]
> --- objectstore [3]
> --- openstack [0]
> ------ common [4]
> --- pci [2]
> --- rdp [2]
> --- scheduler [14]
> ------ client [0]
> ------ filters [15]
> ------ weights [6]
> --- servicegroup [1]
> ------ drivers [4]
> --- spice [6]
> --- virt [18]
> ------ disk [2]
> --------- mount [1]
> --------- vfs [1]
> ------ hyperv [16]
> ------ image [0]
> ------ ironic [10]
> ------ libvirt [45]
> --------- storage [2]
> --------- volume [19]
> ------ vmwareapi [24]
> ------ xenapi [36]
> --------- client [2]
> --------- image [8]
> --- vnc [8]
> --- volume [8]
> ------ encryptors [0]
> --- wsgi [0]
> ----------------------------
> Number of total options: 637
>
>
> As of now, we have these numbers (please note the "nova/conf/" folder)
>
> Based on:
> commit 040df06bfc4
> Date: Wed Mar 2 11:09:24 2016 +0000
>
> nova [72]
> --- CA [0]
> ------ newcerts [0]
> ------ private [0]
> ------ projects [0]
> ------ reqs [0]
> --- api [3]
> ------ ec2 [0]
> ------ metadata [6]
> ------ openstack [7]
> --------- compute [2]
> ------------ legacy_v2 [2]
> --------------- contrib [6]
> ------------ schemas [0]
> ------------ views [0]
> ------ validation [0]
> --- cells [0]
> ------ filters [0]
> ------ weights [0]
> --- cert [0]
> --- cloudpipe [6]
> --- cmd [11]
> --- compute [41]
> ------ monitors [2]
> --------- cpu [0]
> ------ resources [0]
> --- conductor [1]
> ------ tasks [1]
> --- conf [136]
> --- console [11]
> --- consoleauth [3]
> --- db [4]
> ------ sqlalchemy [13]
> --------- api_migrations [0]
> ------------ migrate_repo [0]
> --------------- versions [0]
> --------- migrate_repo [0]
> ------------ versions [0]
> --- hacking [0]
> --- image [15]
> ------ download [3]
> --- ipv6 [1]
> --- keymgr [5]
> --- mks [2]
> --- network [68]
> ------ neutronv2 [7]
> ------ security_group [1]
> --- objects [2]
> --- openstack [0]
> ------ common [0]
> --- pci [0]
> --- rdp [2]
> --- scheduler [0]
> ------ client [0]
> ------ filters [0]
> ------ weights [0]
> --- servicegroup [1]
> ------ drivers [0]
> --- spice [6]
> --- virt [7]
> ------ disk [0]
> --------- mount [0]
> --------- vfs [1]
> ------ hyperv [15]
> ------ image [0]
> ------ ironic [0]
> ------ libvirt [48]
> --------- storage [2]
> --------- volume [19]
> ------ vmwareapi [24]
> ------ xenapi [36]
> --------- client [2]
> --------- image [8]
> --- vnc [0]
> --- volume [8]
> ------ encryptors [0]
> --- wsgi [0]
> ----------------------------
> Number of total options: 610
>
>
> Regards, Markus Zoeller (markus_z)
>
>
>
__________________________________________________________________________
> 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