Re: [Openstack] Hiding complexity of paste config files from operators

2012-08-01 Thread Lorin Hochstein

On Jul 30, 2012, at 9:48 AM, Adam Young ayo...@redhat.com wrote:

 On 07/30/2012 05:12 AM, Thierry Carrez wrote:
 Lorin Hochstein wrote:
 I wanted to discuss the usability of the paste config files from an
 operator's point of view. The paste config files are opaque to
 administrators who are trying to stand an OpenStack cloud for the first
 time, since they expose a lot of implementation details about the
 middleware. I can follow the instructions in the Install and Deploy
 guide, but I have no idea what the options I don't edit are, and if the
 documentation has deviated from the implementation, I'm pretty much stuck.
 [...]
 This was mentioned in the Making configuration easier session on the
 DevOps track at the last design summit. You can find the notes at:
 
 http://etherpad.openstack.org/FolsomMakingConfigurationEasier
 
 In particular, it was identified that paste configs were evil, failing
 to properly separate service/code configuration from end-user configuration.
 
 Assuming that the *-paste.ini files always need to be there, is there some 
 way we could avoid requiring admins to edit these files, and instead make 
 it more like editing the .conf files? For example, could the paste.ini 
 files be generated from the corresponding .conf file as needed?
 I would not assume that *-paste.ini files always need to be there...
 Paste is a pain point if we are to support Python 3 one day, so it's
 also on the black list of the (still inexistant) OpenStack Python3
 advocacy group.
 
 So I'd rather investigate a solution that solves our two problems,
 rather than adding a layer on top of the current broken solution... That
 said I'm not really a specialist of Paste alternatives.
 
 It seems to me that there is nothing that you can do in Paste that you cannot 
 do in straight python.  THe advantage of Paste is hat it is viewed as a 
 Config file, not as code and thus is a file that end system administrators 
 can use.
 
 
 A paste file is nothing more than an assignment to a variable name from a 
 string that is  done at run time.  For example,   the Keystone config file 
 has a paste fragment in it:
 
 [app:public_version_service]
 paste.app_factory = keystone.service:public_version_app_factory
 
 
 
 This same code could be performed inside the Python code base with pretty 
 much the same code interpred as Python.  The issue is that we would then want 
 to allow a value such as this to be overridden:
 
 For example, specifying the driver for the token api is done:
 
 [token]
 driver = keystone.token.backends.kvs.Token
 
 Since most of these cases have reasonable defaults,  they should be left out 
 of the paste files.  What needs to be available is solid documentation of the 
 values that can be overridden this way.  Any keys that are not defaulted,  
 but are not really designed to be overloaded should be modified so that they 
 are defaulted, and then the keys removed from the paste file.
 

I logged a doc bug: 
https://answers.launchpad.net/openstack-manuals/+question/204782 but we really 
need someone who understands these files to help us document this.


Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com






smime.p7s
Description: S/MIME cryptographic signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Hiding complexity of paste config files from operators

2012-07-30 Thread Thierry Carrez
Lorin Hochstein wrote:
 I wanted to discuss the usability of the paste config files from an
 operator's point of view. The paste config files are opaque to
 administrators who are trying to stand an OpenStack cloud for the first
 time, since they expose a lot of implementation details about the
 middleware. I can follow the instructions in the Install and Deploy
 guide, but I have no idea what the options I don't edit are, and if the
 documentation has deviated from the implementation, I'm pretty much stuck.
 [...]

This was mentioned in the Making configuration easier session on the
DevOps track at the last design summit. You can find the notes at:

http://etherpad.openstack.org/FolsomMakingConfigurationEasier

In particular, it was identified that paste configs were evil, failing
to properly separate service/code configuration from end-user configuration.

 Assuming that the *-paste.ini files always need to be there, is there some 
 way we could avoid requiring admins to edit these files, and instead make it 
 more like editing the .conf files? For example, could the paste.ini files be 
 generated from the corresponding .conf file as needed?

I would not assume that *-paste.ini files always need to be there...
Paste is a pain point if we are to support Python 3 one day, so it's
also on the black list of the (still inexistant) OpenStack Python3
advocacy group.

So I'd rather investigate a solution that solves our two problems,
rather than adding a layer on top of the current broken solution... That
said I'm not really a specialist of Paste alternatives.

-- 
Thierry Carrez (ttx)
Release Manager, OpenStack

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Hiding complexity of paste config files from operators

2012-07-30 Thread Adam Young

On 07/30/2012 05:12 AM, Thierry Carrez wrote:

Lorin Hochstein wrote:

I wanted to discuss the usability of the paste config files from an
operator's point of view. The paste config files are opaque to
administrators who are trying to stand an OpenStack cloud for the first
time, since they expose a lot of implementation details about the
middleware. I can follow the instructions in the Install and Deploy
guide, but I have no idea what the options I don't edit are, and if the
documentation has deviated from the implementation, I'm pretty much stuck.
[...]

This was mentioned in the Making configuration easier session on the
DevOps track at the last design summit. You can find the notes at:

http://etherpad.openstack.org/FolsomMakingConfigurationEasier

In particular, it was identified that paste configs were evil, failing
to properly separate service/code configuration from end-user configuration.


Assuming that the *-paste.ini files always need to be there, is there some way 
we could avoid requiring admins to edit these files, and instead make it more 
like editing the .conf files? For example, could the paste.ini files be 
generated from the corresponding .conf file as needed?

I would not assume that *-paste.ini files always need to be there...
Paste is a pain point if we are to support Python 3 one day, so it's
also on the black list of the (still inexistant) OpenStack Python3
advocacy group.

So I'd rather investigate a solution that solves our two problems,
rather than adding a layer on top of the current broken solution... That
said I'm not really a specialist of Paste alternatives.

It seems to me that there is nothing that you can do in Paste that you 
cannot do in straight python.  THe advantage of Paste is hat it is 
viewed as a Config file, not as code and thus is a file that end 
system administrators can use.



A paste file is nothing more than an assignment to a variable name from 
a string that is  done at run time.  For example,   the Keystone config 
file has a paste fragment in it:


[app:public_version_service]
paste.app_factory = keystone.service:public_version_app_factory



This same code could be performed inside the Python code base with 
pretty much the same code interpred as Python.  The issue is that we 
would then want to allow a value such as this to be overridden:


For example, specifying the driver for the token api is done:

[token]
 driver = keystone.token.backends.kvs.Token

Since most of these cases have reasonable defaults,  they should be left 
out of the paste files.  What needs to be available is solid 
documentation of the values that can be overridden this way.  Any keys 
that are not defaulted,  but are not really designed to be overloaded 
should be modified so that they are defaulted, and then the keys removed 
from the paste file.






___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


[Openstack] Hiding complexity of paste config files from operators

2012-07-29 Thread Lorin Hochstein
All:

I wanted to discuss the usability of the paste config files from an operator's 
point of view. The paste config files are opaque to administrators who are 
trying to stand an OpenStack cloud for the first time, since they expose a lot 
of implementation details about the middleware. I can follow the instructions 
in the Install and Deploy guide, but I have no idea what the options I don't 
edit are, and if the documentation has deviated from the implementation, I'm 
pretty much stuck.

As an example, the install and deploy guide says to add authtoken to the 
pipeline:glance-api section in glance-api-paste.ini 
http://docs.openstack.org/essex/openstack-compute/install/content/configure-glance-files.html,
 the example in the docs looks like this:

[pipeline:glance-api]
pipeline = versionnegotiation authtoken auth-context apiv1app

If I install from packages on precise, there's also some lines that look like 
this:

[pipeline:glance-api-keystone]
pipeline = versionnegotiation authtoken context apiv1app


It looks similar, and it has keystone in there, so maybe that's intended to 
be used for keystone? And it looks pretty similar, but there's a auth-context 
instead of context. Maybe the pipeline:glance-api-keystone is used for 
something else in glance? In the end, I'm just going to slavishly follow the 
documentation, and I have no mental model of what these options do. 

On the other hand, the traditional configuration files (e.g., nova.conf) are 
(relatively) well-documented, have default values, and everything that's 
exposed is something that could potentially be changed by an administrator. In 
particular, there's generally a one-to-one correspondence between changing a 
configuration setting and changing the behavior of the system in a way that's 
meaningful for the operator. For example, enabling FlatDHCP in nova.conf is 
just setting a config option to one value:

network_manager=nova.network.manager.FlatDHCPManager


Assuming that the *-paste.ini files always need to be there, is there some way 
we could avoid requiring admins to edit these files, and instead make it more 
like editing the .conf files? For example, could the paste.ini files be 
generated from the corresponding .conf file as needed?


Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com





___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp