[openstack-dev] [tripleo][kolla] Investigating containerizing TripleO

Steven Dake (stdake) stdake at cisco.com
Fri Apr 3 15:34:08 UTC 2015

On 4/1/15, 10:52 AM, "Steven Hardy" <shardy at redhat.com> wrote:

>Hi all,
>I've had various discussions about $subject, which have been re-started
>lately due to some excellent work going on in the Heat community (Rabi
>Mishra's work integrating SoftwareDeployments with various container
>launching tools [1])
>tl;dr It's now possible to launch containers via heat SoftwareConfig
>resources in much the same way as we currently apply puppet manifests.
>I'm also aware there has been some great work going on around the kolla
>community making things work well with both docker-compose and atomic.
>I'm interested in discussing the next steps, which would appear to involve
>providing an optional way to deploy services via containers using TripleO.
>It seems that we can potentially build on the existing abstractions which
>were added for puppet integration, e.g:
>We could have an alternative resource-registry which maps in a different
>set of templates (which have the same parameter interfaces) which
>a container host, and deploy each service in a container.
>This might look something like:
>This is just a simple example using "docker run", but similar (probably
>much cleaner) approaches will be possible using atomic, docker-compose and
>other tools.
>For example, here's an example of how we might bootstrap a pristine atomic
>image, install a privileged container hosting the agents needed to talk to
>heat, then use that container to launch containers with the services:
>Similar example for docker-compose:
>There does seem to be a variety of tools folks prefer, but the pattern
>appears to be the same in most cases:
>1. Provide input parameters to the template
>2. Map parameters to an environment consumable by the container-launching
>   tool
>3. Run the tool and wait for success

This is 100% accurate.  If we can get this to work in a generic way,
people could deploy with puppet in a traditional package based way or with
containers in a shiny sparkly way :)

>It may be possible to abstract the details of the various tools inside the
>heat hooks, such that you could e.g choose the tool you want via a
>parameter - e.g it should be possible to build the templates in a way
>is somewhat tool-agnostic, if we get the heat interfaces refined
>What do people think, is this direction reasonable?  I'm keen to figure
>how we do a simple PoC which will bottom out the details, but it'd be
>to get some feedback on the general approach.

Sounds fantastic!  I had a look at the templates, and I like Ryan¹s atomic
template - perhaps he can post a link on this thread.  Although it is
Atomic specific, it is a really thin model of how to deploy OpenStack in
containers.  Of course tripleo will want to see support for more than just
Atomic, but they are still worth a look.

I¹m pleased to see some movement from the TripleO community on sorting out
how to get these things integrated.  That said, various off-list email
threads have led me to believe people want to use Kolla with maestro-ng as
well as Ansible.  The core team agreed long ago to developmentally support
all the relevant things, and tripleo seems like one good approach, so we
are here to help.


>OpenStack Development Mailing List (not for usage questions)
>Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe

More information about the OpenStack-dev mailing list