github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/main.go (about) 1 package main 2 3 import ( 4 "os" 5 6 log "github.com/Sirupsen/logrus" 7 "github.com/codegangsta/cli" 8 "github.com/shipyard/shipyard/controller/commands" 9 "github.com/shipyard/shipyard/version" 10 ) 11 12 const ( 13 STORE_KEY = "shipyard" 14 ) 15 16 func main() { 17 app := cli.NewApp() 18 app.Name = "shipyard" 19 app.Usage = "composable docker management" 20 app.Version = version.Version + " (" + version.GitCommit + ")" 21 app.Author = "" 22 app.Email = "" 23 app.Before = func(c *cli.Context) error { 24 if c.GlobalBool("debug") { 25 log.SetLevel(log.DebugLevel) 26 } 27 return nil 28 } 29 app.Commands = []cli.Command{ 30 { 31 Name: "server", 32 Usage: "run shipyard controller", 33 Action: commands.CmdServer, 34 Flags: []cli.Flag{ 35 cli.StringFlag{ 36 Name: "listen, l", 37 Usage: "listen address", 38 Value: ":8080", 39 }, 40 cli.StringFlag{ 41 Name: "rethinkdb-addr", 42 Usage: "RethinkDB address", 43 Value: "rethinkdb:28015", 44 }, 45 cli.StringFlag{ 46 Name: "rethinkdb-auth-key", 47 Usage: "RethinkDB auth key", 48 Value: "", 49 }, 50 cli.StringFlag{ 51 Name: "rethinkdb-database", 52 Usage: "RethinkDB database name", 53 Value: "shipyard", 54 }, 55 cli.BoolFlag{ 56 Name: "disable-usage-info", 57 Usage: "disable anonymous usage reporting", 58 }, 59 cli.StringFlag{ 60 Name: "docker, d", 61 Value: "tcp://127.0.0.1:2375", 62 Usage: "docker swarm addr", 63 EnvVar: "DOCKER_HOST", 64 }, 65 cli.StringFlag{ 66 Name: "tls-ca-cert", 67 Value: "", 68 Usage: "tls ca certificate", 69 }, 70 cli.StringFlag{ 71 Name: "tls-cert", 72 Value: "", 73 Usage: "tls certificate", 74 }, 75 cli.StringFlag{ 76 Name: "tls-key", 77 Value: "", 78 Usage: "tls key", 79 }, 80 cli.StringFlag{ 81 Name: "shipyard-tls-ca-cert", 82 Usage: "Shipyard TLS CA Cert", 83 Value: "", 84 }, 85 cli.StringFlag{ 86 Name: "shipyard-tls-cert", 87 Usage: "Shipyard TLS Cert", 88 Value: "", 89 }, 90 cli.StringFlag{ 91 Name: "shipyard-tls-key", 92 Usage: "Shipyard TLS Key", 93 Value: "", 94 }, 95 cli.BoolFlag{ 96 Name: "allow-insecure", 97 Usage: "enable insecure tls communication", 98 }, 99 cli.BoolFlag{ 100 Name: "enable-cors", 101 Usage: "enable cors with swarm", 102 }, 103 cli.StringFlag{ 104 Name: "ldap-server", 105 Usage: "LDAP server address", 106 }, 107 cli.IntFlag{ 108 Name: "ldap-port", 109 Usage: "LDAP server port", 110 Value: 389, 111 }, 112 cli.StringFlag{ 113 Name: "ldap-base-dn", 114 Usage: "LDAP server base DN", 115 }, 116 cli.BoolFlag{ 117 Name: "ldap-autocreate-users", 118 Usage: "Automatically create a corresponding Shipyard account if missing upon authenticating", 119 }, 120 cli.StringFlag{ 121 Name: "ldap-default-access-level", 122 Usage: "Default access level for auto-created accounts (default: container read-only)", 123 Value: "containers:ro", 124 }, 125 cli.StringSliceFlag{ 126 Name: "auth-whitelist-cidr", 127 Usage: "whitelist CIDR to bypass auth", 128 Value: &cli.StringSlice{}, 129 }, 130 }, 131 }, 132 } 133 app.Flags = []cli.Flag{ 134 cli.BoolFlag{ 135 Name: "debug, D", 136 Usage: "enable debug", 137 }, 138 } 139 140 if err := app.Run(os.Args); err != nil { 141 log.Fatal(err) 142 } 143 }