Microservices, Miscellaneous

minimesos 0.9.0 - new cli commands, Marathon tokens and Mesos workshop

MiniMesos logo - MiniMesos 0.9.0

Last week we released minimesos 0.9.0. You can install it using the usual installer command: curl -sSL https://minimesos.org/install | sh. The Docker images are available on Docker Hub and the jar is available via Jitpack.

Minimesos is the experimentation and testing tool for Apache Mesos and features a Vagrant-like workflow and a Java API. The main highlights of this release are new minimesos ps and minimesos uninstall command and IP address tokens for Marathon JSON files.

New cli commands

minimesos ps

The new minimesos ps command shows what is running on the cluster. It prints the framework, the task name and its state.

$ minimesos ps
marathon	weave-scope	TASK_RUNNING

minimesos uninstall

Another new command is minimesos uninstall command that allows you to uninstall a Marathon app or framework.


$ minimesos uninstall weave-scope
Deleted app 'weave scope'
$ minimesos ps
$ minimesos install --marathonFile https://raw.githubusercontent.com/ContainerSolutions/minimesos/master/opt/apps/weave-scope.json
$ minimesos ps
marathon	weave-scope	TASK_RUNNING

IP tokens for Marathon JSON files

Marathon apps often require URLs or IPs of services that are needed. To simplify this process minimesos replaces tokens in Marathon JSON files with IP addresses or URLs. As an example, see this Marathon JSON file for Elasticsearch. It contains the token MINIMESOS_ZOOKEEPER. This token will be replaced by minimesos with the full Zookeeper url based on the IP of the Zookeeper container.

  "id": "elasticsearch",
  "container": {
    "docker": {
      "image": "mesos/elasticsearch-scheduler:1.0.1",
      "network": "BRIDGE"
  "args": [
    "--zookeeperMesosUrl", "${MINIMESOS_ZOOKEEPER}",
    "--useIpAddress", "true",
    "--frameworkUseDocker", "false",
    "--elasticsearchNodes", "1"
  "cpus": 0.2,
  "mem": 512.0,
  "env": {
    "JAVA_OPTS": "-Xms128m -Xmx256m"
  "instances": 1

Note that any environment variable that is printed when running minimesos info can be used as a token inside a Marathon JSON file.

$ minimesos info
Minimesos cluster is running: 888711247
Mesos version: 0.25

The minimesosFile is now mandatory

Another change we made since 0.9.0 is that the minimesosFile is mandatory for launching a cluster. In the past you could run minimesos up and start a default cluster but now you first have to run minimesos init.

$ minimesos up
minimesos configuration file is not found. Please generate one with 'minimesos init'

We implemented this change because we wanted to be able to system test every configuration option in the minimesosFile. This was hard to do since most of our system tests used the ClusterArchitecture class which is separate from the configuration. This change makes our tests nice and compact because every system test is started like this:


    public static final MesosClusterTestRule RULE = MesosClusterTestRule.fromFile("src/test/resources/configFiles/minimesosFile-discoverySystemTest");
    public static MesosCluster CLUSTER = RULE.getMesosCluster();


Learning Mesos with minimesos workshop

Just after we released 0.9.0 Viktor and I organized a Software Circus workshop 'Learning Mesos with minimesos' at Container Solutions HQ in Amsterdam. The slide deck and exercises are available at https://github.com/ContainerSolutions/learning-mesos-with-minimesos-workshop. People said they enjoyed the workshop and learned a lot. We also learned and found a few issues and got some ideas on improving minimeos. The weather that day was great so we ended the afternoon with a few beers at the rooftop terrace. Thanks everyone who participated!

Frank - MiniMesos 0.9.0Workshop 2 - MiniMesos 0.9.0Workshop - MiniMesos 0.9.0

Keep in touch

Thanks for reading! Keep in touch by commenting on the blog or talk to us at @minimesos and @ContainerSoluti. Check out the open issues on Github. Do you have an idea on how to improve minimesos? Please open an issue or add a PR at the minimesos Github repo. We hope you find minimesos useful. See you next time!

Leave your Comment