On 8 April 2014 11:51, Dan Prince <dpri...@redhat.com> wrote: > > > ----- Original Message ----- >> From: "Robert Collins" <robe...@robertcollins.net> >> To: "OpenStack Development Mailing List" <openstack-dev@lists.openstack.org> >> Sent: Monday, April 7, 2014 4:00:30 PM >> Subject: [openstack-dev] [TripleO] config options, defaults, oh my! >> >> So one interesting thing from the influx of new reviews is lots of >> patches exposing all the various plumbing bits of OpenStack. This is >> good in some ways (yay, we can configure more stuff), but in some ways >> its kindof odd - like - its not clear when >> https://review.openstack.org/#/c/83122/ is needed. >> >> I'm keen to expose things that are really needed, but i'm not sure >> that /all/ options are needed - what do folk think? > > I think we can learn much from some of the more mature configuration > management tools in the community on this front. Using puppet as an example > here (although I'm sure other tools may do similar things as well)... Take > configuration of the Nova API server. There is a direct configuration > parameter for 'neutron_metadata_proxy_shared_secret' in the Puppet nova::api > class. This parameter is exposed in the class (sort of the equivalent of a > TripleO element) directly because it is convenient and many users may want to > customize the value. There are however hundreds of Nova config options and > most of them aren't exposed as parameters in the various Nova puppet classes. > For these it is possible to define a nova_config resource to configure *any* > nova.conf parameter in an ad hoc style for your own installation tuning > purposes. > > I could see us using a similar model in TripleO where our elements support > configuring common config elements directly, but we also allow people to tune > extra "undocumented" options for their own use. There is always going to be a > need for this as people need to tune things for their own installations with > options that may not be appropriate for the common set of elements. > > Standardizing this mechanism across many of the OpenStack service elements > would also make a lot of sense. Today we have this for Nova: > > nova: > verbose: False > - Print more verbose output (set logging level to INFO instead of default > WARNING level). > debug: False > - Print debugging output (set logging level to DEBUG instead of default > WARNING level). > baremetal: > pxe_deploy_timeout: "1200" > ..... > > I could see us adding a generic mechanism like this to overlay with the > existing (documented) data structure: > > nova: > config: > default.compute_manager: > ironic.nova.compute.manager.ClusterComputeManager > cells.driver: nova.cells.rpc_driver.CellsRPCDriver > > And in this manner a user might be able to add *any* supported config param > to the element.
I like this - something like nova: config: - section: default values: - option: 'compute_manager' value: 'ironic.nova.compute.manager.ClusterComputeManager' - section: cells values: - option: 'driver' value: nova.cells.rpc_driver.CellsRPCDriver should be able to represent most? all (it can handle repeating items) oslo.config settings and render it easily: {{#config}} {{#comment}} repeats for each section {{/comment}} [{{section}}] {{#values}} {{option}}={{value}} {{/values}} {{/config}} >> Also, some things >> really should be higher order operations - like the neutron callback >> to nova right - that should be either set to timeout in nova & >> configured in neutron, *or* set in both sides appropriately, never >> one-half or the other. >> >> I think we need to sort out our approach here to be systematic quite >> quickly to deal with these reviews. > > I totally agree. I was also planning to email the list about this very issue > this week :) My email subject was going to be "TripleO templates... an > upstream maintenance problem". > > For the existing reviews today I think we should be somewhat selective about > what parameters we expose as top level within the elements. That said we are > missing some rather fundamental features to allow users to configure > "undocumented" parameters as well. So we need to solve this problem quickly > because there are certainly some configuration corner that users will need. > > As is today we are missing some rather fundamental features in > os-apply-config and the elements to be able to pull this off. What we really > need is a generic INI style template generator. Or perhaps we could use > something like augeus or even devstacks simple ini editing functions to pull > this off. In any case the idea would be that we allow users to inject their > own undocumented config parameters into the various service config files. Or > perhaps we could auto-generate mustache templates based off of the upstream > sample config files. Many approaches would work here I think... I agree that there are many approaches here - I think the sketch above may be sufficient for right now. -Rob -- Robert Collins <rbtcoll...@hp.com> Distinguished Technologist HP Converged Cloud _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev