Add support for mesos+marathon conductor

Registered by hongbin on 2015-07-15

In the ML, we have discussed how to support mesos bay type. The first step is to introduce a Heat template to provision a mesos cluster, which has been addressed in the depending BP [1]. Then, we will discuss if we should introduce a mesos conductor that is used by magnum to communicate with provisioned mesos cluster. This will allow end-users to manage mesos resources through Magnum's API.

Please note that the team doesn't reach a consensus on this feature yet. This BP is for tracking the discussion on this matter.

We need a mesos + marathon supported conductor to handle container operations for mesos bay.

[1] https://blueprints.launchpad.net/magnum/+spec/mesos-bay-type

Blueprint information

Status:
Complete
Approver:
Adrian Otto
Priority:
Low
Drafter:
hongbin
Direction:
Approved
Assignee:
bharaththiruveedula
Definition:
Obsolete
Series goal:
Accepted for mitaka
Implementation:
Unknown
Milestone target:
None
Completed by
hongbin on 2016-05-01

Related branches

Sprints

Whiteboard

(hongbin): @bharaththiruveedula, thanks for taking this BP. I am going to share an initial thought about the implementation:
* First, we need to create a marathon handler, which receives calls from magnum-api and makes API calls to Marathon accordingly. For this, you can refer docker-conductor [1] as an example. You will need a marathon python binding library to do the API calls. Take a look at this one [2].
* Second, make magnum-api to leverage the marathon handler. Keep in mind that we broadly agreed to unify containers action for all COE [3], so the guidance here is to implement subset of container actions by using the marathon handler.
* Third, make magnumclient to support mesos operations if needed.
[1] https://github.com/openstack/magnum/blob/master/magnum/conductor/handlers/docker_conductor.py
[2] https://github.com/thefactory/marathon-python
[3] https://blueprints.launchpad.net/magnum/+spec/unified-containers

(egor) just fyi, Mesosphere folks have python Marathon client (https://github.com/mesosphere/dcos-cli). Not sure how good it's, but I think make sense to take a look.

(hongbin) Thanks @Egor. Then, we need to compare the two libraries and figure out which one is more suitable for Magnum.
(tbh) http://lists.openstack.org/pipermail/openstack-dev/2015-November/079780.html

Gerrit topic: https://review.openstack.org/#q,topic:bp/mesos-conductor,n,z

Addressed by: https://review.openstack.org/258860
    [WIP][not-ready-for-review]Mesos Conductor

In the Austin design summit, the team decided to limit Magnum as a COE deployment service. Therefore, marathon conductor is not needed. -- hongbin 2015-05-01

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.