[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