Add support for mesos bay type

Registered by hongbin

In the Vancouvor design summit, we decided to add support for mesos bay type, which was briefly described in here .

Blueprint information

Steven Dake
Series goal:
Accepted for liberty
Milestone target:
milestone icon liberty-2
Started by
Completed by

Related branches



Discussion of blueprint on ML Thread:


I did a preliminary research on possible implementations. I think this BP can be implemented in two steps.
1. Develop a heat template for provisioning mesos cluster.
2. Implement a magnum conductor for managing the mesos cluster.

First, I want to emphasis that mesos is not a service (It looks like a library). Therefore, mesos doesn't have web API, and most users don't use mesos directly. Instead, they use a mesos framework that is on top of mesos. Therefore, a mesos bay needs to have a mesos framework pre-configured so that magnum can talk to the framework to manage the bay. There are several framework choices. Below is a list of frameworks that look like a fit (in my opinion). A exhaustive list of framework can be found here [1].

1. Marathon [2]
This is a framework controlled by a company (mesosphere [3]). It is open source through. It supports running app on clusters of docker containers. It is probably the most widely-used mesos framework for long-running application.

2. Aurora [4]
This is a framework governed by Apache Software Foundation. It looks very similar to Marathon, but maybe more advanced in nature. It has been used by Twitter at scale. Here [5] is a detailed comparison between Marathon and Aurora.

3. Kubernetes/Docker swarm
It looks the swarm-mesos is not ready yet. I cannot find any thing about that (besides several videos on Youtube). The kubernetes-mesos is there [6]. In theory, magnum should be able to deploy a mesos bay and talk to the bay through kubernetes API. An advantage is that we can reuse the kubernetes conductor. A disadvantage is that it is not a 'mesos' way to manage containers. Users from mesos community are probably more comfortable to manage containers through Marathon/Aurora.


As discussed in the last team meeting [7], the first step is to support provisioning a Mesos+Marathon bay. For hosting OS, we are going to support Ubuntu or CentOS first. CoreOS could be support in a separated template.
[7] -

Gerrit topic:,topic:bp/mesos-bay-type,n,z

Addressed by:
    Initial Heat template for Mesos

Addressed by:
    WIP: Elements for building Mesos image

Addressed by:
    Add template definition of Mesos bay

(hongbin) Right now, all the patches are landed and we should have a mesos bay with basis functionalities. The supported mesos framework is Marathon (we are open for additional frameworks support). I am going to mark this BP as implemented, but the work on mesos bay is definitely continuing. There are several BPs created for different enhancement of mesos support. You are welcome to create more if the features you want haven't been covered.

Enhancement blueprints:
* Mutiple master node:
* Mesos conductor:


Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.