diff --git a/docs/drivers/virtualbox.md b/docs/drivers/virtualbox.md index 0ce9d155df..c10141b3db 100644 --- a/docs/drivers/virtualbox.md +++ b/docs/drivers/virtualbox.md @@ -26,6 +26,7 @@ Options: - `--virtualbox-memory`: Size of memory for the host in MB. - `--virtualbox-cpu-count`: Number of CPUs to use to create the VM. Defaults to single CPU. - `--virtualbox-disk-size`: Size of disk for the host in MB. +- `--virtualbox-host-dns-resolver`: Use the host DNS resolver. - `--virtualbox-boot2docker-url`: The URL of the boot2docker image. Defaults to the latest available version. - `--virtualbox-import-boot2docker-vm`: The name of a Boot2Docker VM to import. - `--virtualbox-hostonly-cidr`: The CIDR of the host only adapter. @@ -66,6 +67,7 @@ Environment variables and default values: | `--virtualbox-memory` | `VIRTUALBOX_MEMORY_SIZE` | `1024` | | `--virtualbox-cpu-count` | `VIRTUALBOX_CPU_COUNT` | `1` | | `--virtualbox-disk-size` | `VIRTUALBOX_DISK_SIZE` | `20000` | +| `--virtualbox-host-dns-resolver` | `VIRTUALBOX_HOST_DNS_RESOLVER` | `false` | | `--virtualbox-boot2docker-url` | `VIRTUALBOX_BOOT2DOCKER_URL` | _Latest boot2docker url_ | | `--virtualbox-import-boot2docker-vm` | `VIRTUALBOX_BOOT2DOCKER_IMPORT_VM` | `boot2docker-vm` | | `--virtualbox-hostonly-cidr` | `VIRTUALBOX_HOSTONLY_CIDR` | `192.168.99.1/24` | diff --git a/docs/reference/create.md b/docs/reference/create.md index 220940f72c..65859bd8c9 100644 --- a/docs/reference/create.md +++ b/docs/reference/create.md @@ -97,6 +97,7 @@ invoking the `create` help text. --virtualbox-boot2docker-url The URL of the boot2docker image. Defaults to the latest available version [$VIRTUALBOX_BOOT2DOCKER_URL] --virtualbox-cpu-count "1" number of CPUs for the machine (-1 to use the number of CPUs available) [$VIRTUALBOX_CPU_COUNT] --virtualbox-disk-size "20000" Size of disk for host in MB [$VIRTUALBOX_DISK_SIZE] + --virtualbox-host-dns-resolver Use the host DNS resolver [$VIRTUALBOX_HOST_DNS_RESOLVER] --virtualbox-hostonly-cidr "192.168.99.1/24" Specify the Host Only CIDR [$VIRTUALBOX_HOSTONLY_CIDR] --virtualbox-hostonly-nicpromisc "deny" Specify the Host Only Network Adapter Promiscuous Mode [$VIRTUALBOX_HOSTONLY_NIC_PROMISC] --virtualbox-hostonly-nictype "82540EM" Specify the Host Only Network Adapter Type [$VIRTUALBOX_HOSTONLY_NIC_TYPE] diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index a2e8777c5c..b6650e03cf 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -52,6 +52,7 @@ type Driver struct { DiskSize int Boot2DockerURL string Boot2DockerImportVM string + HostDNSResolver bool HostOnlyCIDR string HostOnlyNicType string HostOnlyPromiscMode string @@ -109,6 +110,11 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag { Value: defaultBoot2DockerImportVM, EnvVar: "VIRTUALBOX_BOOT2DOCKER_IMPORT_VM", }, + mcnflag.BoolFlag{ + Name: "virtualbox-host-dns-resolver", + Usage: "Use the host DNS resolver", + EnvVar: "VIRTUALBOX_HOST_DNS_RESOLVER", + }, mcnflag.StringFlag{ Name: "virtualbox-hostonly-cidr", Usage: "Specify the Host Only CIDR", @@ -173,6 +179,7 @@ func (d *Driver) SetConfigFromFlags(flags drivers.DriverOptions) error { d.SwarmDiscovery = flags.String("swarm-discovery") d.SSHUser = "docker" d.Boot2DockerImportVM = flags.String("virtualbox-import-boot2docker-vm") + d.HostDNSResolver = flags.Bool("virtualbox-host-dns-resolver") d.HostOnlyCIDR = flags.String("virtualbox-hostonly-cidr") d.HostOnlyNicType = flags.String("virtualbox-hostonly-nictype") d.HostOnlyPromiscMode = flags.String("virtualbox-hostonly-nicpromisc") @@ -302,6 +309,11 @@ func (d *Driver) Create() error { cpus = 32 } + hostDNSResolver := "off" + if d.HostDNSResolver { + hostDNSResolver = "on" + } + if err := d.vbm("modifyvm", d.MachineName, "--firmware", "bios", "--bioslogofadein", "off", @@ -314,7 +326,7 @@ func (d *Driver) Create() error { "--acpi", "on", "--ioapic", "on", "--rtcuseutc", "on", - "--natdnshostresolver1", "off", + "--natdnshostresolver1", hostDNSResolver, "--natdnsproxy1", "off", "--cpuhotplug", "off", "--pae", "on", diff --git a/test/integration/virtualbox/host-dns.bats b/test/integration/virtualbox/host-dns.bats new file mode 100644 index 0000000000..e93b169888 --- /dev/null +++ b/test/integration/virtualbox/host-dns.bats @@ -0,0 +1,16 @@ +#!/usr/bin/env bats + +load ${BASE_TEST_DIR}/helpers.bash + +only_if_env DRIVER virtualbox + +@test "$DRIVER: create with host dns resolver flag" { + run machine create -d $DRIVER --virtualbox-host-dns-resolver $NAME + [ "$status" -eq 0 ] +} + +@test "$DRIVER: machine should show running after create" { + run machine ls + [ "$status" -eq 0 ] + [[ ${lines[1]} == *"Running"* ]] +}