Marathon
The example Yaml configurations in this file are using the legacy 0.8 syntax. If you are using Drone 1.0 or Drone Cloud please ensure you use the appropriate 1.0 syntax. Learn more here.
This plugin can be used to deploy applications to a Marathon server. The below pipeline configuration demonstrates simple usage:
pipeline:
marathon:
image: e20co/drone-marathon
server: http://marathon.mesos:8080
Marathon Configuration File
In addition to the .drone.yml
file you will need to create a marathon.json
file that contains the Marathon configuration. Please see here for examples.
Example configuration with custom Marathon configuration file (default: marathon.json
):
pipeline:
marathon_dev:
image: e20co/drone-marathon
server: http://marathon.mesos:8080
+ marathonfile: develop/marathon-dev.json
marathon_prod:
image: e20co/drone-marathon
server: http://marathon.mesos:8080
+ marathonfile: prod/marathon-prod.json
The trigger_restart
will force Marathon to restart the application after install. This might be necessary if Marathon doesn’t detect a change in the application but you want to force a restart.
pipeline:
marathon:
image: e20co/drone-marathon
server: http://marathon.mesos:8080
+ trigger_restart: true
Example configuration with values
substitution:
pipeline:
marathon:
image: e20co/drone-marathon
server: http://marathon.mesos:8080
+ values: [drone_branch]
In the marathon.json
file (please note the <<
and >>
around the DRONE_BRANCH
key):
{
"id": "/my-application/branch-<<DRONE_BRANCH>>",
...
}
Will result in:
{
"id": "/my-application/branch-mybranch",
...
}
Example configuration using values from secrets:
pipeline:
marathon:
image: e20co/drone-marathon
server: http://marathon.mesos:8080
+ secrets: [database_password]
+ values: [database_password, drone_branch]
The secret above can be injected into your marathon.json
file using the <<DATABASE_PASSWORD>>
placeholder. Any secrets can be used in this way, assuming they are available to the build process.
NOTE: Because the plugin does not have direct access to the secrets
list directly, they must be specified in the values
list also (see https://github.com/drone/drone/issues/2088 for details).
Secrets
This module does not have any pre-defined secrets, however, any secrets can be injected into the marathon.json
file as desired. See example above.
Parameter Reference
- server
- The Marathon server URL. defaults to
http://marathon.mesos:8080
- marathonfile
- The Marathon configuration file. defaults to
marathon.json
. - trigger_restart
- Force a restart of the application. defaults to
false
. - values
- Map of values to replace in the
marathonfile
, above. Optional.