mirror of https://github.com/docker/docs.git
add flags for ipv6, backups and private networking to the DigitalOcean driver
Signed-off-by: Sascha Hanse <shanse@gmail.com>
This commit is contained in:
parent
7bf67e41c9
commit
17b928fac0
|
@ -21,22 +21,25 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Driver struct {
|
type Driver struct {
|
||||||
AccessToken string
|
AccessToken string
|
||||||
DropletID int
|
DropletID int
|
||||||
DropletName string
|
DropletName string
|
||||||
Image string
|
Image string
|
||||||
MachineName string
|
MachineName string
|
||||||
IPAddress string
|
IPAddress string
|
||||||
Region string
|
Region string
|
||||||
SSHKeyID int
|
SSHKeyID int
|
||||||
Size string
|
Size string
|
||||||
CaCertPath string
|
IPv6 bool
|
||||||
PrivateKeyPath string
|
Backups bool
|
||||||
DriverKeyPath string
|
PrivateNetworking bool
|
||||||
SwarmMaster bool
|
CaCertPath string
|
||||||
SwarmHost string
|
PrivateKeyPath string
|
||||||
SwarmDiscovery string
|
DriverKeyPath string
|
||||||
storePath string
|
SwarmMaster bool
|
||||||
|
SwarmHost string
|
||||||
|
SwarmDiscovery string
|
||||||
|
storePath string
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -73,6 +76,21 @@ func GetCreateFlags() []cli.Flag {
|
||||||
Usage: "Digital Ocean size",
|
Usage: "Digital Ocean size",
|
||||||
Value: "512mb",
|
Value: "512mb",
|
||||||
},
|
},
|
||||||
|
cli.BoolFlag{
|
||||||
|
EnvVar: "DIGITALOCEAN_IPV6",
|
||||||
|
Name: "digitalocean-ipv6",
|
||||||
|
Usage: "enable ipv6 for droplet",
|
||||||
|
},
|
||||||
|
cli.BoolFlag{
|
||||||
|
EnvVar: "DIGITALOCEAN_PRIVATE_NETWORKING",
|
||||||
|
Name: "digitalocean-private-networking",
|
||||||
|
Usage: "enable private networking for droplet",
|
||||||
|
},
|
||||||
|
cli.BoolFlag{
|
||||||
|
EnvVar: "DIGITALOCEAN_BACKUPS",
|
||||||
|
Name: "digitalocean-backups",
|
||||||
|
Usage: "enable backups for droplet",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,6 +107,9 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
||||||
d.Image = flags.String("digitalocean-image")
|
d.Image = flags.String("digitalocean-image")
|
||||||
d.Region = flags.String("digitalocean-region")
|
d.Region = flags.String("digitalocean-region")
|
||||||
d.Size = flags.String("digitalocean-size")
|
d.Size = flags.String("digitalocean-size")
|
||||||
|
d.IPv6 = flags.Bool("digitalocean-ipv6")
|
||||||
|
d.PrivateNetworking = flags.Bool("digitalocean-private-networking")
|
||||||
|
d.Backups = flags.Bool("digitalocean-backups")
|
||||||
d.SwarmMaster = flags.Bool("swarm-master")
|
d.SwarmMaster = flags.Bool("swarm-master")
|
||||||
d.SwarmHost = flags.String("swarm-host")
|
d.SwarmHost = flags.String("swarm-host")
|
||||||
d.SwarmDiscovery = flags.String("swarm-discovery")
|
d.SwarmDiscovery = flags.String("swarm-discovery")
|
||||||
|
@ -101,7 +122,18 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) PreCreateCheck() error {
|
func (d *Driver) PreCreateCheck() error {
|
||||||
return nil
|
client := d.getClient()
|
||||||
|
regions, _, err := client.Regions.List(nil)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, region := range regions {
|
||||||
|
if region.Slug == d.Region {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Errorf("digitalocean requires a valid region")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) Create() error {
|
func (d *Driver) Create() error {
|
||||||
|
@ -119,11 +151,14 @@ func (d *Driver) Create() error {
|
||||||
client := d.getClient()
|
client := d.getClient()
|
||||||
|
|
||||||
createRequest := &godo.DropletCreateRequest{
|
createRequest := &godo.DropletCreateRequest{
|
||||||
Image: d.Image,
|
Image: d.Image,
|
||||||
Name: d.MachineName,
|
Name: d.MachineName,
|
||||||
Region: d.Region,
|
Region: d.Region,
|
||||||
Size: d.Size,
|
Size: d.Size,
|
||||||
SSHKeys: []interface{}{d.SSHKeyID},
|
IPv6: d.IPv6,
|
||||||
|
PrivateNetworking: d.PrivateNetworking,
|
||||||
|
Backups: d.Backups,
|
||||||
|
SSHKeys: []interface{}{d.SSHKeyID},
|
||||||
}
|
}
|
||||||
|
|
||||||
newDroplet, _, err := client.Droplets.Create(createRequest)
|
newDroplet, _, err := client.Droplets.Create(createRequest)
|
||||||
|
|
Loading…
Reference in New Issue