/mesosdef

Research project to automate Mesos/Marathon application deployment

Primary LanguageGoApache License 2.0Apache-2.0

mesosdef

The goal of this project is to provide a declarative language for defining Mesos framework deployments and their dependencies.

Support goals:

  • Mesos 1.7+
  • Marathon 1.5+
  • Chronos 3.0

This project is modeled on Hashicorp terraform, taking the concept of infrastructure-as-code and applying it to the Mesos ecosystem.

Command line

Currently

mesosdef -dryRun -file example.hcl will compute the dependency graph for the defined deployments and print them in the order they would be deployed

mesosdef -file example.hcl will simulate a deployment, with a chance of failure for each resource, and print the results as they occur

To use the example.hcl in this repository, it is currently also necessary to set the variables deploy_root and dns_tld which can be done with -var arguments or environment variables; a working command line might be

mesosdef -file example.hcl -var dns_tld=mesos -var deploy_root=./deploy

Future

mesosdef validate will statically validate files for syntatical correctness

mesosdef plan will compute a deployment plan without making changes

mesosdef apply will execute a deployment plan

mesosdef destroy will reverse a deployment plan