[openstack-dev] [TripleO] Tuskar CLI after architecture changes

Mark McLoughlin markmc at redhat.com
Thu Dec 12 16:10:24 UTC 2013


On Wed, 2013-12-11 at 13:33 +0100, Jiří Stránský wrote:
> Hi all,
> 
> TL;DR: I believe that "As an infrastructure administrator, Anna wants a 
> CLI for managing the deployment providing the same fundamental features 
> as UI." With the planned architecture changes (making tuskar-api thinner 
> and getting rid of proxying to other services), there's not an obvious 
> way to achieve that. We need to figure this out. I present a few options 
> and look forward for feedback.
..

> 1) Make a thicker python-tuskarclient and put the business logic there. 
> Make it consume other python-*clients. (This is an unusual approach 
> though, i'm not aware of any python-*client that would consume and 
> integrate other python-*clients.)
> 
> 2) Make a thicker tuskar-api and put the business logic there. (This is 
> the original approach with consuming other services from tuskar-api. The 
> feedback on this approach was mostly negative though.)

FWIW, I think these are the two most plausible options right now.

My instinct is that tuskar could be a stateless service which merely
contains the business logic between the UI/CLI and the various OpenStack
services.

That would be a first (i.e. an OpenStack service which doesn't have a
DB) and it is somewhat hard to justify. I'd be up for us pushing tuskar
as a purely client-side library used by the UI/CLI (i.e. 1) as far it
can go until we hit actual cases where we need (2).

One example worth thinking through though - clicking "deploy my
overcloud" will generate a Heat template and sent to the Heat API.

The Heat template will be fairly closely tied to the overcloud images
(i.e. the actual image contents) we're deploying - e.g. the template
will have metadata which is specific to what's in the images.

With the UI, you can see that working fine - the user is just using a UI
that was deployed with the undercloud.

With the CLI, it is probably not running on undercloud machines. Perhaps
your undercloud was deployed a while ago and you've just installed the
latest TripleO client-side CLI from PyPI. With other OpenStack clients
we say that newer versions of the CLI should support all/most older
versions of the REST APIs.

Having the template generation behind a (stateless) REST API could allow
us to define an API which expresses "deploy my overcloud" and not have
the client so tied to a specific undercloud version.

Mark.




More information about the OpenStack-dev mailing list