{"id":18649746,"url":"https://github.com/ashwanthkumar/marathonctl","last_synced_at":"2025-04-11T14:32:26.863Z","repository":{"id":57579207,"uuid":"50807513","full_name":"ashwanthkumar/marathonctl","owner":"ashwanthkumar","description":"CLI client to Mesosphere Marathon + WIP Package Manager","archived":false,"fork":false,"pushed_at":"2018-07-23T09:32:47.000Z","size":58,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T14:44:43.600Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ashwanthkumar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-01T02:13:21.000Z","updated_at":"2018-07-23T09:32:48.000Z","dependencies_parsed_at":"2022-09-26T19:12:03.037Z","dependency_job_id":null,"html_url":"https://github.com/ashwanthkumar/marathonctl","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmarathonctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmarathonctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmarathonctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ashwanthkumar%2Fmarathonctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ashwanthkumar","download_url":"https://codeload.github.com/ashwanthkumar/marathonctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248419753,"owners_count":21100245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T06:40:23.088Z","updated_at":"2025-04-11T14:32:21.849Z","avatar_url":"https://github.com/ashwanthkumar.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://snap-ci.com/ashwanthkumar/marathonctl/branch/master/build_image)](https://snap-ci.com/ashwanthkumar/marathonctl/branch/master)\n\n# Marathon CLI\nCLI tool to access and deploy apps and services to [Marathon](https://mesosphere.github.io/marathon/).\n\n## NOTE\nThe master branch is a WIP of package repository feature. Marathonctl as a simple commandline tool to deploy apps to marathon is implemented and you can find the binaries [here](https://github.com/ashwanthkumar/marathonctl/releases). Please use the latest `v0.0.x`. The package manager changes will come in `v0.1.x` series as we're making some non-backward compatible changes.\n\n## Usage\nYou can download a binary distribution from the [releases](https://github.com/ashwanthkumar/marathonctl/releases).\n\n```\n$ marathonctl\nCommand line client to Marathon\n\nUsage:\n  marathonctl [command]\n\nAvailable Commands:\n  deploy      Deploy an app using Marathon's app definition\n  package     Manage packages which needs to be installed on Marathon\n  repo        Manage remote repositories where packages can be installed\n  version     Version of the Marathon CLI\n\nFlags:\n  -h, --help                   help for marathonctl\n      --marathon.host string   Marathon host in http://host:port form. (default \"http://localhost:8080\")\n      --mesos.master string    Mesos host in host:port form. (default \"localhost:5050\")\n      --zk.host string         ZK host in host:port form. (default \"localhost:2181\")\n\nUse \"marathonctl [command] --help\" for more information about a command.\n```\n\n## Configuration\nYou can optionally create a configuration file `$HOME/.marathonctl/config.json` with the following contents, which can be overriden using the above flags.\n\n```\n{\n  \"marathon\": {\n    \"host\": \"http://marathon.host:8080\"\n  },\n  \"mesos\": {\n    \"master\": \"mesos.master:5050\"\n  },\n  \"zk\": {\n    \"host\": \"zk01:2181\"\n  }\n}\n```\n\n\n## Deploy Apps\n`marathonctl deploy` helps you deploy applications to your Marathon setup from command line. It takes an app definition and tries to deploy it.\n\n```\n$ marathonctl deploy -h\nDeploy an app using Marathon's app definition\n\nUsage:\n  marathonctl deploy \u003capp.json\u003e [flags]\n\nFlags:\n  -d, --dry-run              Print the final application configuration but don't deploy\n  -e, --environment string   Environment to deploy (default \"test\")\n  -f, --force                Force deploy the app\n  -t, --timeout int          timeout in seconds for deployment to complete, else we'll fail (default 900)\n```\n\n### Application Definition\nThe application definition (`app.json`) that's passed it treated as a [Go Template](https://golang.org/pkg/text/template/) and rendered. The available variables for the template is `{{ .DEPLOY_ENV }}`.\n\n#### Using Environment Variables\nYou can also access environment variables in your app.json using the convention `{{ .Env.GO_PIPELINE_LABEL }}`, where `GO_PIPELINE_LABEL` is an environment variable.\n\nExample app.json file could be something like\n```\n{\n  \"id\": \"{{ .DEPLOY_ENV }}.http\",\n  \"cpus\": 0.1,\n  \"mem\": 10,\n  \"instances\": 1,\n  \"ports\": [\n    0\n  ],\n  \"cmd\": \"python -m SimpleHTTPServer $PORT0\",\n  \"uris\": [\n    \"https://github.com/ashwanthkumar/wasp-cli/releases/download/v{{ .Env.WASP_CLI_VERSION }}/wasp-linux-amd64\"\n  ],\n  \"upgradeStrategy\": {\n    \"minimumHealthCapacity\": 0.9,\n    \"maximumOverCapacity\": 0.1\n  },\n  \"env\": {\n    \"DEPLOY_ENV\": \"{{ .DEPLOY_ENV }}\"\n  },\n  \"healthChecks\": [\n    {\n      \"protocol\": \"COMMAND\",\n      \"command\": { \"value\": \"curl -f http://$HOST:$PORT0/\" },\n      \"gracePeriodSeconds\": 60,\n      \"intervalSeconds\": 30,\n      \"maxConsecutiveFailures\": 3,\n      \"timeoutSeconds\": 10\n    }\n  ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashwanthkumar%2Fmarathonctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashwanthkumar%2Fmarathonctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashwanthkumar%2Fmarathonctl/lists"}