[openstack-dev] [Heat] Plugin to use Docker containers a resources in a template

Zane Bitter zbitter at redhat.com
Mon Oct 21 14:58:47 UTC 2013


On 18/10/13 03:06, Sam Alba wrote:
> Hi all,
>
> I've been recently working on a Docker plugin for Heat that makes it
> possible to use Docker containers as resources.
>
> I've just opened the repository:
> https://github.com/dotcloud/openstack-heat-docker

Cool, nice work. Thanks for sharing! :)

I agree that we shouldn't see this as a replacement for a Nova driver 
(mainly because it doesn't take advantage of Keystone for authenticating 
the user, nor abstract the pool of available hosts away from the user), 
but it is a really interesting concept to play around with. I too would 
definitely welcome it in Heat's /contrib directory where it can be 
subject to continuous testing to make sure that any changes in Heat 
don't break it.

So, here's a crazy, half-baked idea that I almost posted to the list 
last week: we've been discussing adding software configurations to the 
HOT format, to allow users (amongst other things) to deploy multiple 
independent software configurations to the same Nova VM... when we do so 
should we deploy each config in a Linux container?

Discuss.

>
> It's now possible to do that via Nova (since there is now a Docker
> driver for it). But the idea here is not to replace the Nova driver
> with this Heat plugin, the idea is just to propose a different path.
>
> Basically, Docker itself has a Rest API[1] with all features needed to
> deploy and manage containers, the Nova driver uses this API. However
> having the Nova API in front of it makes it hard to bring all Docker
> features to the user, basically everything has to fit into the Nova
> API. For instance, docker commit/push are mapped to nova snapshots,
> etc... And a lot of Docker features are not available yet; I admit
> that some of them will be hard to support (docker Env variables,
> Volumes, etc... how should they fit in Nova?).
>
> The idea of this Docker plugin for Heat is to use the whole Docker API
> directly from a template. All possible parameters for creating a
> container from the Docker API[2] can be defined from the template.
> This allows more flexibility.
>
> Since this approach is a bit different from the normal OpenStack
> workflow (for instance, Nova's role is to abstract all computing units
> right now), I am interested to get feedback on this.
>
> Obviously, I'll keep maintaining the Docker driver for Nova and I'm
> also working on putting together some new features I'll propose for
> the next release.
>
>
> [1] http://docs.docker.io/en/latest/api/docker_remote_api_v1.5/
> [2] http://docs.docker.io/en/latest/api/docker_remote_api_v1.5/#create-a-container
>




More information about the OpenStack-dev mailing list