UNPKG

marathon-validate

Version:

A tiny command line tool to validate application or group configuration files for Marathon

95 lines (66 loc) 3.14 kB
# marathon-validate A tiny command line tool to validate application or group configuration files for Marathon and DC/OS. ## Purpose If you're running a Mesos or DC/OS cluster and build custom applications for if, most of the time you'll have to create either a Marathon app definition JSON file, or a group definition JSON file. As the structure of these files can get a little complicated, `marathon-validate` was created to be able to do a quick sanity check of these files from the command line. Therefore, `marathon-validate` will use the [JSON schema files](https://github.com/mesosphere/marathon/tree/master/docs/docs/rest-api/public/api/v2/schema) contained in the Marathon GitHub project to validate the input file against. ## Installation To be able to use `marathon-validate`, you need to have Node.js (and NPM) installed on your system. Then you can use ```bash npm install -g marathon-validate ``` to install it globally. You can verify the correct installation by issuing ```bash $ marathon-validate --version 0.3.3 ``` ## Usage ``` $ marathon-validate --help Usage: marathon-validate [options] <file> Options: -h, --help output usage information -V, --version output the version number -a, --app Check an App JSON -g, --group Check a Group JSON -d, --describe <property> Describe a property. Has to be used with either -a (app schema) or -g (group schema) -m, --marathon <version> Use schema of specific Marathon version -t, --tags Get a list of tags for the Marathon project ``` ### Validate apps and groups If you want validate your `application.json` file in the current folder against the `master` version of the JSON schema, you can do a ```bash $ marathon-validate -a application.json ``` To validate your `application.json` against a specific release version (e.g. `v1.3.6`), you can use ```bash $ marathon-validate -a -m v1.3.6 application.json ``` This should work with all `tags` from the [Marathon project](https://api.github.com/repos/mesosphere/marathon/tags). ### Query tags You can also get the list of tags like this (output is shortened): ```bash $ marathon-validate -t --> List of tags: * v1.5.0-SNAPSHOT * v1.4.3 * v1.4.2 * v1.4.2-snapshot5 * v1.4.2-snapshot4 * v1.4.2-snapshot3 * v1.4.2-snapshot2 * v1.4.2-SNAPSHOT1 * v1.4.1 * v1.4.0 ... ``` ### Search for field description You can search the JSON schema for a field's description like this (in this example, the `type` field): ```bash $ marathon-validate -a -d type --> Loading remote schema: https://raw.githubusercontent.com/mesosphere/marathon/master/docs/docs/rest-api/public/api/v2/schema/AppDefinition.json --> Found 2 matches for 'type': * '.container.type': Container engine type. Supported engine types at the moment are DOCKER and MESOS. * '.container.volumes.persistent.type': The type of mesos disk resource to use; defaults to root ``` By using the `-a` or `-g` flags, you can specify if you want to query the app or group JSON schema.