[openstack-dev] [DevStack] Generalize config file settings

Sean Dague sean at dague.net
Fri Sep 13 11:10:22 UTC 2013


On 09/12/2013 11:36 AM, Dean Troyer wrote:
> DevStack has long had a config setting in localrc called EXTRA_OPTS that
> allowed arbitrary settings to be added to /etc/nova/nova.conf [DEFAULT]
> section.  Additional files and sections have recently been implemented
> with a similar scheme.  I don't think this scales well as at a minimum
> every config file and section needs to be individually handled.
>
> I'd like to get some feedback on the following two proposals, or hear
> other ideas on how to generalize solving the problem of setting
> arbitrary configuration values.
>
>
> a) Create conf.d/*.conf files as needed and process each file present
> into a corresponding config file.  These files would not be supplied by
> DevStack but created and maintained locally.
>
> Example: conf.d/etc/nova/nova.conf:
> [DEFAULT]
> use_syslog = True
>
> [osapi_v3]
> enabled = False
>
>
> b) Create a single service.local.conf file for each project (Nova,
> Cinder, etc) that contains a list of settings to be applied to the
> config files for that service.
>
> Example: nova.local.conf:
> # conf file names are parsed out of the section name below between '['
> and the first ':'
> [/etc/nova/nova.conf:DEFAULT]
> use_syslog = True
>
> [/etc/nova/nova.conf:osapi_v3]
> enabled = False
>
>
> Both cases need to be able to specify the destination config file and
> section in addition to the attribute name and value.
>
> Thoughts?

I like option a, though I'm not sure we need the full system path in the 
conf.d (that's pretty minor though).

I think this plus going through and purging all the conf variables that 
are just pass through would cause a lot of simplification in devstack, 
and allow for easily setting other items.

Honestly, the thing I'd really like is sort of a super version of "a" 
that would let you put everything in one file:

Example: local.conf
[[/etc/nova/nova.conf]]
[DEFAULT]
use_syslog = True

[osapi_v3]
enabled = False

[[/etc/cinder/cinder.conf]]
[DEFAULT]
use_syslog = True

Because inevitably people ask for copies of other folks configs to 
duplicate things, and a single file is easier to pass around than a 
tree. But that would mean a unique parser to handle the top level stanza.

	-Sean

-- 
Sean Dague
http://dague.net



More information about the OpenStack-dev mailing list