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
ae57d4d142
commit
24d919bed7
|
@ -130,6 +130,9 @@ Options:
|
||||||
- `--digitalocean-image`: The name of the Digital Ocean image to use. Default: `docker`
|
- `--digitalocean-image`: The name of the Digital Ocean image to use. Default: `docker`
|
||||||
- `--digitalocean-region`: The region to create the droplet in. Default: `nyc3`
|
- `--digitalocean-region`: The region to create the droplet in. Default: `nyc3`
|
||||||
- `--digitalocean-size`: The size of the Digital Ocean driver. Default: `512mb`
|
- `--digitalocean-size`: The size of the Digital Ocean driver. Default: `512mb`
|
||||||
|
- `--digitalocean-ipv6`: Enable ipv6 for the droplet. Default: `false`
|
||||||
|
- `--digitalocean-backups`: Enable backups for the droplet. Default: `false`
|
||||||
|
- `--digitalocean-private-networking`: Enable private networking for the droplet. Default: `false`
|
||||||
|
|
||||||
### Microsoft Azure
|
### Microsoft Azure
|
||||||
|
|
||||||
|
|
|
@ -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,7 +122,18 @@ 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 {
|
||||||
|
@ -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