Today we’ve released 0.3.0 of Atomic App! We’ve crossed a few things on our roadmap as well as introduced a brand-new provider; Marathon! For those new to Marathon, it’s a cluster-wide init and control system for services in cgroups or Docker containers, that usually runs on top of Apache Mesos.

The main features of this release are:

  • Marathon provider (thank you @kadel and @dharmit!)
  • A complete refactor of our OpenShift provider (using the HTTP API rather than oc command)
  • Support for oc new-app deployment
  • CLI options (ex. –answers-conf) may now be used anywhere on the command line

Bug fixes and changes:

  • A refactor of CLI commands and options
  • Fix on deploying multiple inherited applications

For a quick introduction to Marathon, feel free to examine the helloapache Nulecule example with Marathon already built in.

Simply add Marathon as a respective provider within Nulecule:

---
...
    artifacts:
      docker:
        - file://artifacts/docker/hello-apache-pod_run
      kubernetes:
        - file://artifacts/kubernetes/hello-apache-pod.json
      marathon:
        - file://artifacts/marathon/helloapache.json

Then provide the JSON within the artifacts folder:

{
  "id": "helloapache",
  "container": {
    "type": "DOCKER",
    "docker": {
      "network": "BRIDGE",
      "image": "$image",
      "portMappings": [
        {
          "containerPort": 80,
          "servicePort": $hostport,
          "hostPort": 0,
          "protocol": "tcp"
        }
      ]
    }
  },
  "cpus": 0.5,
  "mem": 128
}

Build, and launch!

docker build -t helloapache .
atomic run helloapache --provider=marathon

As we continue to push towards a 1.0.0 release we highly appreciate any comments or contributions to the Atomic App repo. If you have any questions about Atomic App or Nulecule, visit the #nulecule channel on Freenode or ask on the container-tools mailing list.