Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shoenig/marathonctl
marathonctl is a CLI tool for Marathon
https://github.com/shoenig/marathonctl
Last synced: 3 months ago
JSON representation
marathonctl is a CLI tool for Marathon
- Host: GitHub
- URL: https://github.com/shoenig/marathonctl
- Owner: shoenig
- License: mit
- Archived: true
- Created: 2015-04-01T01:13:54.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-07-05T20:36:57.000Z (over 3 years ago)
- Last Synced: 2024-06-18T21:46:50.594Z (5 months ago)
- Language: Go
- Homepage:
- Size: 85 KB
- Stars: 100
- Watchers: 6
- Forks: 25
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-cli-tui-software - shoenig/marathonctl - marathonctl is a CLI tool for Marathon (<a name="stream-record"></a>stream-record)
README
# marathonctl
marathonctl is a command line tool for [Marathon](https://mesosphere.github.io/marathon/docs/rest-api.html)
[![Go Report Card](https://goreportcard.com/badge/github.com/shoenig/marathonctl)](https://goreportcard.com/report/github.com/shoenig/marathonctl) [![Build Status](https://travis-ci.org/shoenig/marathonctl.svg?branch=master)](https://travis-ci.org/shoenig/marathonctl) [![GoDoc](https://godoc.org/github.com/shoenig/marathonctl?status.svg)](https://godoc.org/github.com/shoenig/marathonctl) [![License](https://img.shields.io/github/license/shoenig/marathonctl.svg?style=flat-square)](LICENSE)
## Install
### binary
Binary downloads available! Get the latest from the [releases page](https://github.com/shoenig/marathonctl/releases).### source
```
go install github.com/shoenig/marathonctl@latest
```### docker
```
# Add to ~/.bash_aliases
alias marathonctl='docker run --rm --net=host shoenig/marathonctl:latest'
```## Usage
```
marathonctl [action]
Actions
app
list - list all apps
versions [id] - list all versions of apps of id
show [id] - show config and status of app of id (latest version)
show [id] [version] - show config and status of app of id and version
create [jsonfile] - deploy application defined in jsonfile
update [id] [jsonfile] - update application id as defined in jsonfile
update cpu [id] [cpu%] - update application id to have cpu% of cpu share
update memory [id] [MB] - update application id to have MB of memory
update instances [id] [N] - update application id to have N instances
restart [id] - restart app of id
destroy [id] - destroy and remove all instances of idtask
list - list all tasks
list [id] - list tasks of app of id
kill [id] - kill all tasks of app id
kill [id] [taskid] - kill task taskid of app id
queue - list all queued tasksgroup
list - list all groups
list [groupid] - list groups in groupid
create [jsonfile] - create a group defined in jsonfile
update [groupid] [jsonfile] - update group groupid as defined in jsonfile
destroy [groupid] - destroy group of groupiddeploy
list - list all active deploys
destroy [deployid] - cancel deployment of [deployid]marathon
leader - get the current Marathon leader
abdicate - force the current leader to relinquish control
ping - ping Marathon master host[s]Flags
-c [config file]
-h [host]
-u [user:password] (separated by colon)
-k - allow unverified tls connections
-f [format]
human (simplified columns, default)
json (json on one line)
jsonpp (json pretty printed)
raw (the exact response from Marathon)
-v print git sha1
-s print semver version
```## Configuration
- Specify using "-c [file]" or "-h [host:port]"### Configuration Properties
```
marathon.host: [hosts] (ex http://node1.indeed.com,http://node2.indeed.com,http://node3.indeed.com)
marathon.user: [user]
marathon.password: [password]
```## Examples
#### Ping
- This example demonstrates -h, -u for host/login information
```
$ ./marathonctl -h http://marathon1:8080,http://marathon2:8080,http://marathon3:8080 -u user:pass marathon ping
HOST DURATION
http://marathon1:8080 11.004071ms
http://marathon2:8080 25.422ms
http://marathon3:8080 6.927772ms
```
#### Leader
- This example demonstrates -c and a file for host/login information
- This example demonstrates -f and the jsonpp (pretty printed json) output format
```
$ ./marathonctl -f jsonpp -c /etc/marathonctl.properties marathon leader
{
"leader": "tst-mcontrol1:8080"
}
```
#### Abdicate
- This example demonstrates -f to specify one-line json output format
````
./marathonctl -f json -c /etc/marathonctl.properties marathon abdicate
{"message":"Leadership abdicted"}
````
#### Group List
- This example demonstrates the default human readable output
````
$ ./marathonctl -c /etc/marathonctl.properties group list
GROUPID VERSION GROUPS APPS
/ 2015-04-07T20:29:35.672Z 3 0
/websites 2015-04-07T20:29:35.672Z 2 0
/websites/indeed 2015-04-07T20:29:35.672Z 1 0
/websites/indeed/indeed-pings 2015-04-07T20:29:35.672Z 1 0
/websites/indeed/indeed-pings/a.indeed.com 2015-04-07T20:29:35.672Z 0 2
/websites/google 2015-04-07T20:29:35.672Z 2 0
/websites/google/news.google.com 2015-04-07T20:29:35.672Z 0 1
/websites/google/calendar.google.com 2015-04-07T20:29:35.672Z 0 1
````
#### App Create
- This example demonstrates creating an app as specified in a json file
````
$ ./marathonctl -c /etc/marathonctl.properties app create sample/ping.google.json
APPID VERSION
/hoenig/ping-google 2015-04-07T21:41:53.440Z
````