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
|
@ -30,6 +30,9 @@ type Driver struct {
|
||||||
Region string
|
Region string
|
||||||
SSHKeyID int
|
SSHKeyID int
|
||||||
Size string
|
Size string
|
||||||
|
IPv6 bool
|
||||||
|
Backups bool
|
||||||
|
PrivateNetworking bool
|
||||||
CaCertPath string
|
CaCertPath string
|
||||||
PrivateKeyPath string
|
PrivateKeyPath string
|
||||||
DriverKeyPath string
|
DriverKeyPath string
|
||||||
|
@ -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,8 +122,19 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Driver) PreCreateCheck() error {
|
func (d *Driver) PreCreateCheck() error {
|
||||||
|
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 nil
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Errorf("digitalocean requires a valid region")
|
||||||
|
}
|
||||||
|
|
||||||
func (d *Driver) Create() error {
|
func (d *Driver) Create() error {
|
||||||
log.Infof("Creating SSH key...")
|
log.Infof("Creating SSH key...")
|
||||||
|
@ -123,6 +155,9 @@ func (d *Driver) Create() error {
|
||||||
Name: d.MachineName,
|
Name: d.MachineName,
|
||||||
Region: d.Region,
|
Region: d.Region,
|
||||||
Size: d.Size,
|
Size: d.Size,
|
||||||
|
IPv6: d.IPv6,
|
||||||
|
PrivateNetworking: d.PrivateNetworking,
|
||||||
|
Backups: d.Backups,
|
||||||
SSHKeys: []interface{}{d.SSHKeyID},
|
SSHKeys: []interface{}{d.SSHKeyID},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue