[openstack-dev] [TripleO] a new Undercloud install driven by Heat

Dmitry Tantsur dtantsur at redhat.com
Fri Aug 5 12:02:17 UTC 2016

On 08/05/2016 01:34 PM, Dan Prince wrote:
> On Fri, 2016-08-05 at 12:27 +0200, Dmitry Tantsur wrote:
>> On 08/04/2016 11:48 PM, Dan Prince wrote:
>>> Last week I started some prototype work on what could be a new way
>>> to
>>> install the Undercloud. The driving force behind this was some of
>>> the
>>> recent "composable services" work we've done in TripleO so
>>> initially I
>>> called in composable undercloud. There is an etherpad here with
>>> links
>>> to some of the patches already posted upstream (many of which stand
>>> as
>>> general imporovements on their own outside the scope of what I'm
>>> talking about here).
>>> https://etherpad.openstack.org/p/tripleo-composable-undercloud
>>> The idea in short is that we could spin up a small single process
>>> all-
>>> in-one heat-all (engine and API) and thereby avoid things like
>>> Rabbit,
>>> and MySQL. Then we can use Heat templates to drive the Undercloud
>>> deployment just like we do in the Overcloud.
>> I don't want to sound rude, but please no. The fact that you have a
>> hammer does not mean everything around is nails :( What problem are
>> you
>> trying to solve by doing it?
> Several problems I think.
> One is TripleO has gradually moved away from elements. And while we
> still use DIB elements for some things we no longer favor that tool and
> instead rely on Heat and config management tooling to do our stepwise
> deployment ordering. This leaves us using instack-undercloud a tool
> built specifically to install elements locally as a means to create our
> undercloud. It works... and I do think we've packaged it nicely but it
> isn't the best architectural fit for where we are going I think. I
> actually think that from an end/user contribution standpoint using t-h-
> t could be quite nice for adding features to the Undercloud.

I don't quite get how it is better than finally moving to puppet only 
and stop using elements.

> Second would be re-use. We just spent a huge amount of time in Newton
> (and some in Mitaka) refactoring t-h-t around composable services. So
> say you add a new composable service for Barbican in the Overcloud...
> wouldn't it be nice to be able to consume the same thing in your
> Undercloud as well? Right now you can't, you have to do some of the
> work twice and in quite different formats I think. Sure, there is some
> amount of shared puppet work but that is only part of the picture I
> think.

I've already responded to Steve's email, so a tl;dr here: I'm not sure 
why you want to add random services to undercloud. Have you seen an 
installer ever benefiting from e.g. adding a FileSystem-as-a-Service or 
Database-as-a-Service solution?

> There are new features to think about here too. Once upon a time
> TripleO supported multi-node underclouds. When we switched to instack-
> undercloud we moved away from that. By switching back to tripleo-heat-
> templates we could structure our templates around abstractions like
> resource groups and the new 'deployed-server' trick that allow you to
> create machines either locally or perhaps via Ironic too. We could
> avoid Ironic entirely and always install the Undercloud on existing
> servers via 'deployed-server' as well.

A side note: if we do use Ironic for this purpose, I would expect some 
help with pushing the Ironic composable service through. And the 
ironic-inspector's one, which I haven't even started.

I'm still struggling to understand what entity is going to install this 
bootstrapping Heat instance. Are we bringing back seed?

> Lastly, there is container work ongoing for the Overcloud. Again, I'd
> like to see us adopt a format that would allow it to be used in the
> Undercloud as well as opposed to having to re-implement features in the
> Over and Under clouds all the time.
>> Undercloud installation is already sometimes fragile, but it's
>> probably
>> the least fragile part right now (at least from my experience) And
>> at
>> the very least it's pretty obviously debuggable in most cases. THT
>> is
>> hard to understand and often impossible to debug. I'd prefer we move
>> away from THT completely rather than trying to fix it in one more
>> place
>> where heat does not fit..
> What tool did you have in mind. FWIW I started with heat because by
> using just Heat I was able to take the initial steps to prototype this.
> In my mind Mistral might be next here and in fact it already supports
> the single process launching idea thing. Keeping the undercloud
> installer as light as possible would be ideal though.

I don't have a really huge experience with both, but for me Mistral 
seems much cleaner and easier to understand. That, of course, won't 
allow you to use reuse the existing heat templates (which may be good or 
bad depending on your point of view).

> Dan
>>> I created a short video demonstration which goes over some of the
>>> history behind the approach, and shows a live demo of all of this
>>> working with the patches above:
>>> https://www.youtube.com/watch?v=y1qMDLAf26Q
>>> Thoughts? Would it be cool to have a session to discuss this more
>>> in
>>> Barcelona?
>>> Dan Prince (dprince)
>>> ___________________________________________________________________
>>> _______
>>> OpenStack Development Mailing List (not for usage questions)
>>> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsu
>>> bscribe
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> _____________________________________________________________________
>> _____
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubs
>> cribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

More information about the OpenStack-dev mailing list