Skip to content
A Concourse resource to deploy applications to Marathon.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci chore(organization) 📂 clean up folder structure (#20) Oct 15, 2016
cmd/marathon-resource 🏖 DRY up main func and re-enable some tests Feb 15, 2017
.gitignore Created and tested out function (#14) Oct 6, 2016
.mdlrc Configure mdl rules Aug 20, 2016
.travis.yml chore(organization) 📂 clean up folder structure (#20) Oct 15, 2016
LICENSE Initial commit Aug 20, 2016 Minor sytle updates and adds tests for replacement_files Jan 26, 2017
mdlstyle.rb Configure mdl rules Aug 20, 2016
pre-commit-go.yml marathon api client and main func Aug 21, 2016

Marathon Resource

Build Status Coverage Status Code Climate License Go Report Card Docker Pulls

A Concourse resource to deploy applications to Marathon.

Source Configuration

  • app_id: Required. The name of your app in Marathon.

  • uri: Required. The URI of the Marathon instance you wish to deploy to.

  • basic_auth: Optional. Use if you are using HTTP Basic Auth to protect your Marathon instance. Takes user_name and password

  • api_token: Optional. Use if you are using DC/OS and need to set an HTTP API token.


check: Extract versions of an app from Marathon.

Returns a list of any versions greater than or equal the last know version of the app defined by app_id.

in: Fetch data about the current version of an app.

Returns JSON description of the current running version of the app.



out: Deploy an app to Marathon.

Given a JSON file specified by app_json, post it to Marathon to deploy the app. The resource will cancel the deployment if its not successful after time_out.


  • app_json: Required. Path to the JSON file describing your marathon app. For more information about the format see the Marathon docs.

  • time_out: Required. How long, in seconds, to wait for Marathon to deploy the app. Timed out deployments will roll back and fail the job.

  • replacements: Optional. A name/value list of templated strings in the app.json to replace during the deploy. Useful for things such as passwords or urls that change.

  • replacement_files: Optional. Similar to replacements except value is a path to a file who's content will be used in the replace.

  • restart_if_no_update: Optional. If Marathon doesn't detect any change in your app.json it won't deploy a new version. Setting this to true will restart an existing app causing a new version. Default is false.

Example Configuration

Resource type

- name: marathon
  type: docker-image
    repository: ckaznocha/marathon-resource


- name: marathon_app
  type: marathon
    app_id: my_app
      user_name: my_name
      password: {{ marathon_password }}


- get: marathon_app
- put: marathon_app
    app_json: path/to/app.json
    time_out: 10
    - name: db_password
      value: {{ db_password }}
    - name: db_url
      value: {{ db_url }}


See the CONTRIBUTING file.


See LICENSE file

You can’t perform that action at this time.