VMware host drivers for Fusion, vSphere and vCloud Air #6

Merged
merged 5 commits into from Jan 8, 2015

Conversation

Projects
None yet
@frapposelli
Contributor

frapposelli commented Dec 5, 2014

Hello! this is a porting of what was bfirsh/docker#20

I added support for identity auth all across the board and the previous notes are still valid:

Thanks!

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Dec 6, 2014

Contributor

Amended last commit and triggered a travis build 😉

Contributor

frapposelli commented Dec 6, 2014

Amended last commit and triggered a travis build 😉

@pandrew

This comment has been minimized.

Show comment
Hide comment
@pandrew

pandrew Dec 6, 2014

When using vSphere, is an esxi hypervisor sufficient or is vSphere server also required?

pandrew commented Dec 6, 2014

When using vSphere, is an esxi hypervisor sufficient or is vSphere server also required?

@justinmayer

This comment has been minimized.

Show comment
Hide comment
@justinmayer

justinmayer Dec 6, 2014

Fantastic work, Fabio. Thanks to you, I'm now looking forward to using Docker Machine with VMware Fusion. (^_^)

@bfirsh: Anything needed here before it can be merged?

Fantastic work, Fabio. Thanks to you, I'm now looking forward to using Docker Machine with VMware Fusion. (^_^)

@bfirsh: Anything needed here before it can be merged?

@pietern

This comment has been minimized.

Show comment
Hide comment
@pietern

pietern Dec 6, 2014

@pandrew Either will work. The implementation uses govc, which can talk to both.

pietern commented Dec 6, 2014

@pandrew Either will work. The implementation uses govc, which can talk to both.

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Dec 7, 2014

Contributor

@pandrew, just as @pietern said it works as it uses govc, just make sure to use ha-datacenter as Datacenter name when connecting directly to an ESXi server.

Contributor

frapposelli commented Dec 7, 2014

@pandrew, just as @pietern said it works as it uses govc, just make sure to use ha-datacenter as Datacenter name when connecting directly to an ESXi server.

@magegu

This comment has been minimized.

Show comment
Hide comment
@magegu

magegu Dec 7, 2014

@frapposelli i'm using a Fusion 7.1.0 (2314774) but getting a "storage full" error after downloading three containers .. my harddrive on my host is not full :) any suggestion?

➜  docker-machine-tech_preview-darwin_amd64  ./machine rm dev
➜  docker-machine-tech_preview-darwin_amd64  ./machine create -d fusion dev
INFO[0000] Downloading boot2docker...
INFO[0013] Creating SSH key...
INFO[0013] Creating VM...
INFO[0014] Waiting for VM to come online...
INFO[0044] "dev" has been created and is now the active machine. Docker commands will now run against that machine.
➜  docker-machine-tech_preview-darwin_amd64  export DOCKER_HOST=`./machine url` DOCKER_AUTH=identity
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull ubuntu
The authenticity of host "192.168.214.133:2376" can't be established.
Remote key ID ARD4:GW45:YQXT:RK6U:DB3V:UYX7:BBDJ:SNFX:SPJ5:ZRGC:LU3R:U6JA
Are you sure you want to continue connecting (yes/no)? yes
ubuntu:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
[..]
9bd07e480c5b: Pull complete
Status: Downloaded newer image for ubuntu:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull redis
redis:latest: The image you are pulling has been verified
f10807909bc5: Pull complete
[..]
dad71287aacb: Pull complete
511136ea3c5a: Already exists
Status: Downloaded newer image for redis:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull postgres
postgres:latest: The image you are pulling has been verified
7938077fc22f: Pull complete
c7d973938d29: Pull complete
[..]
aaab661c1e3e: Pull complete
511136ea3c5a: Already exists
f10807909bc5: Already exists
f6fab3b798be: Already exists
Status: Downloaded newer image for postgres:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull mongo
mongo:latest: The image you are pulling has been verified
450797b56448: Pull complete
450797b56448: Download complete
9ec6f19f4c33: Download complete
34d1ef8bc0bd: Download complete
c54bfe71a7c6: Download complete
d799111e5859: Download complete
cfd7be17444c: Download complete
f4919708b0f9: Download complete
6bb4336e8220: Error downloading dependent layers
9db433df6621: Download complete
81e31b3be653: Download complete
5ac32a0bed16: Download complete
0e68275c469e: Download complete
0e68275c469e: Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device
ice 36ea3c5a: Download complete
f10807909bc5: Download complete
f6fab3b798be: Download complete
FATA[0116] Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device

magegu commented Dec 7, 2014

@frapposelli i'm using a Fusion 7.1.0 (2314774) but getting a "storage full" error after downloading three containers .. my harddrive on my host is not full :) any suggestion?

➜  docker-machine-tech_preview-darwin_amd64  ./machine rm dev
➜  docker-machine-tech_preview-darwin_amd64  ./machine create -d fusion dev
INFO[0000] Downloading boot2docker...
INFO[0013] Creating SSH key...
INFO[0013] Creating VM...
INFO[0014] Waiting for VM to come online...
INFO[0044] "dev" has been created and is now the active machine. Docker commands will now run against that machine.
➜  docker-machine-tech_preview-darwin_amd64  export DOCKER_HOST=`./machine url` DOCKER_AUTH=identity
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull ubuntu
The authenticity of host "192.168.214.133:2376" can't be established.
Remote key ID ARD4:GW45:YQXT:RK6U:DB3V:UYX7:BBDJ:SNFX:SPJ5:ZRGC:LU3R:U6JA
Are you sure you want to continue connecting (yes/no)? yes
ubuntu:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
[..]
9bd07e480c5b: Pull complete
Status: Downloaded newer image for ubuntu:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull redis
redis:latest: The image you are pulling has been verified
f10807909bc5: Pull complete
[..]
dad71287aacb: Pull complete
511136ea3c5a: Already exists
Status: Downloaded newer image for redis:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull postgres
postgres:latest: The image you are pulling has been verified
7938077fc22f: Pull complete
c7d973938d29: Pull complete
[..]
aaab661c1e3e: Pull complete
511136ea3c5a: Already exists
f10807909bc5: Already exists
f6fab3b798be: Already exists
Status: Downloaded newer image for postgres:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull mongo
mongo:latest: The image you are pulling has been verified
450797b56448: Pull complete
450797b56448: Download complete
9ec6f19f4c33: Download complete
34d1ef8bc0bd: Download complete
c54bfe71a7c6: Download complete
d799111e5859: Download complete
cfd7be17444c: Download complete
f4919708b0f9: Download complete
6bb4336e8220: Error downloading dependent layers
9db433df6621: Download complete
81e31b3be653: Download complete
5ac32a0bed16: Download complete
0e68275c469e: Download complete
0e68275c469e: Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device
ice 36ea3c5a: Download complete
f10807909bc5: Download complete
f6fab3b798be: Download complete
FATA[0116] Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device
@tsugliani

This comment has been minimized.

Show comment
Hide comment
@tsugliani

tsugliani Dec 7, 2014

@magegu by default I see 20GB for the disk size, did you fill up all that yet in the fusion VM ?

Maybe try the disk size option: --fusion-disk-size: Size of disk for the host in MB. Default: 20000

@magegu by default I see 20GB for the disk size, did you fill up all that yet in the fusion VM ?

Maybe try the disk size option: --fusion-disk-size: Size of disk for the host in MB. Default: 20000

@magegu

This comment has been minimized.

Show comment
Hide comment
@magegu

magegu Dec 7, 2014

@tsugliani i just created the VM as you can see in the logs ➜ docker-machine-tech_preview-darwin_amd64 ./machine create -d fusion dev. the four containers I installed should easly fit in the 20GB default space: ubuntu, redis, postgres and mongo. the mongo pull crashed because of the storage issue. Also I retried with --fusion-disk-size=30000 and the result is the same:

➜  docker-machine-tech_preview-darwin_amd64  ./machine create -d fusion --fusion-disk-size=30000 dev
INFO[0000] Downloading boot2docker...
INFO[0045] Creating SSH key...
INFO[0045] Creating VM...
INFO[0046] Waiting for VM to come online...
INFO[0075] "dev" has been created and is now the active machine. Docker commands will now run against that machine.
➜  docker-machine-tech_preview-darwin_amd64  docker start 7d75c69c56e7
➜  docker-machine-tech_preview-darwin_amd64  export DOCKER_HOST=`./machine url` DOCKER_AUTH=identity
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull ubuntu
The authenticity of host "192.168.214.134:2376" can't be established.
Remote key ID GVHR:DOTO:V5W5:J4AI:LPX2:XUPV:DESD:VWYS:JVBC:TGN5:AOF5:OIKT
Are you sure you want to continue connecting (yes/no)? yes
ubuntu:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
01bf15a18638: Pull complete
30541f8f3062: Pull complete
e1cdf371fbde: Pull complete
9bd07e480c5b: Pull complete
Status: Downloaded newer image for ubuntu:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull redis
redis:latest: The image you are pulling has been verified
f10807909bc5: Pull complete
f6fab3b798be: Pull complete
1e6ac0ffed3b: Pull complete
62ff5003ac9a: Pull complete
e49d349e8a75: Pull complete
61213f5a1710: Pull complete
1224a21102d6: Pull complete
c6e112c19412: Pull complete
7d2c1e0aecf8: Pull complete
ff39eeaeb65a: Pull complete
2854f8d9f233: Pull complete
a7f162e686d8: Pull complete
1a4e6a91ed17: Pull complete
c1f74633a2f9: Pull complete
41b458fa48f0: Pull complete
15c3639f2b59: Pull complete
dad71287aacb: Pull complete
511136ea3c5a: Already exists
Status: Downloaded newer image for redis:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull postgres
postgres:latest: The image you are pulling has been verified
7938077fc22f: Pull complete
c7d973938d29: Pull complete
5b43f434f7ac: Pull complete
c0663366bd99: Pull complete
cf3753e260f5: Pull complete
49b54415c0b2: Pull complete
1b91dd4b7159: Pull complete
d637dc34b34b: Pull complete
8062882db4b7: Pull complete
f6f512e8a620: Pull complete
34c01d81e94c: Pull complete
f35d3ecdfa6a: Pull complete
09971182e69c: Pull complete
5cb28983114f: Pull complete
43c9dc3430f9: Pull complete
81ecd2374c38: Pull complete
631035d0f86c: Pull complete
38a00de627ee: Pull complete
aaab661c1e3e: Pull complete
511136ea3c5a: Already exists
f10807909bc5: Already exists
f6fab3b798be: Already exists
Status: Downloaded newer image for postgres:latest
➜  docker-machine-tech_preview-darwin_amd64  f10807909bc5
tech_preview-darwin_amd64  ./docker pull mongo
mongo:latest: The image you are pulling has been verified
450797b56448: Pull complete
450797b56448: Download complete
9ec6f19f4c33: Download complete
34d1ef8bc0bd: Download complete
c54bfe71a7c6: Download complete
d799111e5859: Download complete
cfd7be17444c: Download complete
f4919708b0f9: Download complete
6bb4336e8220: Error downloading dependent layers
9db433df6621: Download complete
81e31b3be653: Download complete
5ac32a0bed16: Download complete
0e68275c469e: Download complete
0e68275c469e: Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device ocal/bin/mongoperf: no space left on device 09bc5: Download complete
f6fab3b798be: Download complete
FATA[0161] Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device

magegu commented Dec 7, 2014

@tsugliani i just created the VM as you can see in the logs ➜ docker-machine-tech_preview-darwin_amd64 ./machine create -d fusion dev. the four containers I installed should easly fit in the 20GB default space: ubuntu, redis, postgres and mongo. the mongo pull crashed because of the storage issue. Also I retried with --fusion-disk-size=30000 and the result is the same:

➜  docker-machine-tech_preview-darwin_amd64  ./machine create -d fusion --fusion-disk-size=30000 dev
INFO[0000] Downloading boot2docker...
INFO[0045] Creating SSH key...
INFO[0045] Creating VM...
INFO[0046] Waiting for VM to come online...
INFO[0075] "dev" has been created and is now the active machine. Docker commands will now run against that machine.
➜  docker-machine-tech_preview-darwin_amd64  docker start 7d75c69c56e7
➜  docker-machine-tech_preview-darwin_amd64  export DOCKER_HOST=`./machine url` DOCKER_AUTH=identity
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull ubuntu
The authenticity of host "192.168.214.134:2376" can't be established.
Remote key ID GVHR:DOTO:V5W5:J4AI:LPX2:XUPV:DESD:VWYS:JVBC:TGN5:AOF5:OIKT
Are you sure you want to continue connecting (yes/no)? yes
ubuntu:latest: The image you are pulling has been verified
511136ea3c5a: Pull complete
01bf15a18638: Pull complete
30541f8f3062: Pull complete
e1cdf371fbde: Pull complete
9bd07e480c5b: Pull complete
Status: Downloaded newer image for ubuntu:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull redis
redis:latest: The image you are pulling has been verified
f10807909bc5: Pull complete
f6fab3b798be: Pull complete
1e6ac0ffed3b: Pull complete
62ff5003ac9a: Pull complete
e49d349e8a75: Pull complete
61213f5a1710: Pull complete
1224a21102d6: Pull complete
c6e112c19412: Pull complete
7d2c1e0aecf8: Pull complete
ff39eeaeb65a: Pull complete
2854f8d9f233: Pull complete
a7f162e686d8: Pull complete
1a4e6a91ed17: Pull complete
c1f74633a2f9: Pull complete
41b458fa48f0: Pull complete
15c3639f2b59: Pull complete
dad71287aacb: Pull complete
511136ea3c5a: Already exists
Status: Downloaded newer image for redis:latest
➜  docker-machine-tech_preview-darwin_amd64  ./docker pull postgres
postgres:latest: The image you are pulling has been verified
7938077fc22f: Pull complete
c7d973938d29: Pull complete
5b43f434f7ac: Pull complete
c0663366bd99: Pull complete
cf3753e260f5: Pull complete
49b54415c0b2: Pull complete
1b91dd4b7159: Pull complete
d637dc34b34b: Pull complete
8062882db4b7: Pull complete
f6f512e8a620: Pull complete
34c01d81e94c: Pull complete
f35d3ecdfa6a: Pull complete
09971182e69c: Pull complete
5cb28983114f: Pull complete
43c9dc3430f9: Pull complete
81ecd2374c38: Pull complete
631035d0f86c: Pull complete
38a00de627ee: Pull complete
aaab661c1e3e: Pull complete
511136ea3c5a: Already exists
f10807909bc5: Already exists
f6fab3b798be: Already exists
Status: Downloaded newer image for postgres:latest
➜  docker-machine-tech_preview-darwin_amd64  f10807909bc5
tech_preview-darwin_amd64  ./docker pull mongo
mongo:latest: The image you are pulling has been verified
450797b56448: Pull complete
450797b56448: Download complete
9ec6f19f4c33: Download complete
34d1ef8bc0bd: Download complete
c54bfe71a7c6: Download complete
d799111e5859: Download complete
cfd7be17444c: Download complete
f4919708b0f9: Download complete
6bb4336e8220: Error downloading dependent layers
9db433df6621: Download complete
81e31b3be653: Download complete
5ac32a0bed16: Download complete
0e68275c469e: Download complete
0e68275c469e: Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device ocal/bin/mongoperf: no space left on device 09bc5: Download complete
f6fab3b798be: Download complete
FATA[0161] Error pulling image (latest) from mongo, write /var/lib/docker/aufs/diff/6bb4336e8220bed8da68f3736fd9c9f42e1c3dad328048e661f7991f6e70202e/usr/local/bin/mongoperf: no space left on device
@tsugliani

This comment has been minimized.

Show comment
Hide comment
@tsugliani

tsugliani Dec 8, 2014

@magegu ok I just tried what you did and I think I understand the problem.

Basically what happens in VMware Fusion is that the boot2docker iso file is attached to the VM, and the VM boots on it. The disk size is applied to the Fusion VM settings but isn't "used" in the boot2docker environment (no partition, no filesystem, not mounted)

The current "volatile" environment has 670MB total free space, and you must be hitting that limit.

VM environment screenshot
screenshot 2014-12-08 10 09 35

@magegu ok I just tried what you did and I think I understand the problem.

Basically what happens in VMware Fusion is that the boot2docker iso file is attached to the VM, and the VM boots on it. The disk size is applied to the Fusion VM settings but isn't "used" in the boot2docker environment (no partition, no filesystem, not mounted)

The current "volatile" environment has 670MB total free space, and you must be hitting that limit.

VM environment screenshot
screenshot 2014-12-08 10 09 35

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Dec 8, 2014

Contributor

@magegu good catch, and thanks @tsugliani as well 😄 I will look into this.

Contributor

frapposelli commented Dec 8, 2014

@magegu good catch, and thanks @tsugliani as well 😄 I will look into this.

@pandrew

This comment has been minimized.

Show comment
Hide comment
@pandrew

pandrew Dec 8, 2014

Is there a reason why not building the client into machine instead of calling govc externally when we have a library for it?

pandrew commented Dec 8, 2014

Is there a reason why not building the client into machine instead of calling govc externally when we have a library for it?

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Dec 8, 2014

Contributor

@pandrew the next version will use govmomi instead of relying on the compiled govc.

Contributor

frapposelli commented Dec 8, 2014

@pandrew the next version will use govmomi instead of relying on the compiled govc.

@pandrew

This comment has been minimized.

Show comment
Hide comment
@pandrew

pandrew Dec 9, 2014

@frapposelli Great, really appreciate the work you put into making this work!

pandrew commented Dec 9, 2014

@frapposelli Great, really appreciate the work you put into making this work!

@bfirsh bfirsh added this to the 1.0 milestone Dec 9, 2014

@zeeyang

This comment has been minimized.

Show comment
Hide comment
@zeeyang

zeeyang Dec 10, 2014

Contributor

@magegu @frapposelli the problem is boot2docker iso is looking for a magic string in its automount script. The disk was not mounted successfully. We will update the driver with an alternative iso that will fix this.

Contributor

zeeyang commented Dec 10, 2014

@magegu @frapposelli the problem is boot2docker iso is looking for a magic string in its automount script. The disk was not mounted successfully. We will update the driver with an alternative iso that will fix this.

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Dec 10, 2014

Contributor

Thanks to @zeeyang the fusion disk space problem is fixed, the boot2docker release that the driver is fetching now contains a fix, Zee also issued a PR to boot2docker with the fix.

/cc: @pandrew

Contributor

frapposelli commented Dec 10, 2014

Thanks to @zeeyang the fusion disk space problem is fixed, the boot2docker release that the driver is fetching now contains a fix, Zee also issued a PR to boot2docker with the fix.

/cc: @pandrew

@bfirsh

This comment has been minimized.

Show comment
Hide comment
@bfirsh

bfirsh Dec 11, 2014

Contributor

We'll need to track these dependencies carefully to make sure we land a boot2docker release with all the correct features!

Contributor

bfirsh commented Dec 11, 2014

We'll need to track these dependencies carefully to make sure we land a boot2docker release with all the correct features!

+ {
+ "ImportPath": "github.com/vmware/govcloudair",
+ "Comment": "v0.0.1-1-g9672590",
+ "Rev": "9672590d5e5795b2d29fce97084fd5810665fc27"

This comment has been minimized.

@frapposelli

frapposelli Dec 11, 2014

Contributor

@bfirsh looks good?

@frapposelli

frapposelli Dec 11, 2014

Contributor

@bfirsh looks good?

This comment has been minimized.

@bfirsh

bfirsh Dec 11, 2014

Contributor

Looks great.

@bfirsh

bfirsh Dec 11, 2014

Contributor

Looks great.

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Dec 11, 2014

Contributor

@bfirsh the boot2docker dependencies are basically three, first is obviously a docker bin with identity auth, the other two are:

Contributor

frapposelli commented Dec 11, 2014

@bfirsh the boot2docker dependencies are basically three, first is obviously a docker bin with identity auth, the other two are:

@bfirsh

This comment has been minimized.

Show comment
Hide comment
@bfirsh

bfirsh Dec 11, 2014

Contributor

Okay. Let's call those hard blockers of this pull request and get them merged first.

Contributor

bfirsh commented Dec 11, 2014

Okay. Let's call those hard blockers of this pull request and get them merged first.

drivers/vsphere/vsphere.go
+}
+
+// Download boot2docker ISO image for the given tag and save it at dest.
+func downloadISO(dir, file, url string) error {

This comment has been minimized.

@bfirsh

bfirsh Dec 11, 2014

Contributor

This should be shared with virtualbox, perhaps.

@bfirsh

bfirsh Dec 11, 2014

Contributor

This should be shared with virtualbox, perhaps.

This comment has been minimized.

@frapposelli

frapposelli Dec 12, 2014

Contributor

What about caching the boot2docker iso somewhere? something like ~/.docker/machine/iso_cache/boot2docker.iso and checking for a new release on create instead of just blindly downloading the ISO every time.

@frapposelli

frapposelli Dec 12, 2014

Contributor

What about caching the boot2docker iso somewhere? something like ~/.docker/machine/iso_cache/boot2docker.iso and checking for a new release on create instead of just blindly downloading the ISO every time.

This comment has been minimized.

@bfirsh

bfirsh Dec 12, 2014

Contributor

#10

drivers/fusion/fusion.go
+}
+
+func (d *Driver) DriverName() string {
+ return "fusion"

This comment has been minimized.

@bfirsh

bfirsh Dec 11, 2014

Contributor

vmwarefusion?

@bfirsh

bfirsh Dec 11, 2014

Contributor

vmwarefusion?

This comment has been minimized.

@frapposelli

frapposelli Dec 12, 2014

Contributor

vmware_fusion?

@frapposelli

frapposelli Dec 12, 2014

Contributor

vmware_fusion?

This comment has been minimized.

@bfirsh

bfirsh Dec 12, 2014

Contributor

Currently all of the drivers are multiple words squashed together. It's not a big deal – I can do a once-over to make this consistent before the 1.0 release.

@bfirsh

bfirsh Dec 12, 2014

Contributor

Currently all of the drivers are multiple words squashed together. It's not a big deal – I can do a once-over to make this consistent before the 1.0 release.

drivers/vcloudair/vcloudair.go
+
+// Driver interface implementation
+func (driver *Driver) DriverName() string {
+ return "vcloudair"

This comment has been minimized.

@bfirsh

bfirsh Dec 11, 2014

Contributor

vmwarevcloudair?

@bfirsh

bfirsh Dec 11, 2014

Contributor

vmwarevcloudair?

This comment has been minimized.

@frapposelli

frapposelli Dec 12, 2014

Contributor

what about vmware_vcloudair?

@frapposelli

frapposelli Dec 12, 2014

Contributor

what about vmware_vcloudair?

drivers/fusion/fusion.go
+
+ // we got an IP, let's copy ssh keys over
+ // Create the dir
+ vmrun("-gu", B2D_USER, "-gp", B2D_PASS, "createDirectoryInGuest", d.vmxPath(), "/home/docker/.ssh")

This comment has been minimized.

@bfirsh

bfirsh Dec 11, 2014

Contributor

vmrun might return an error, right?

@bfirsh

bfirsh Dec 11, 2014

Contributor

vmrun might return an error, right?

This comment has been minimized.

@frapposelli

frapposelli Dec 12, 2014

Contributor

It should, checking with @zeeyang who wrote that code.

@frapposelli

frapposelli Dec 12, 2014

Contributor

It should, checking with @zeeyang who wrote that code.

@ehazlett

This comment has been minimized.

Show comment
Hide comment
@ehazlett

ehazlett Dec 17, 2014

Member

Works great with Fusion 7.

Member

ehazlett commented Dec 17, 2014

Works great with Fusion 7.

@tianon tianon referenced this pull request in boot2docker/boot2docker-cli Dec 24, 2014

Merged

Add Fusion driver and vmx template #265

@bfirsh

This comment has been minimized.

Show comment
Hide comment
@bfirsh

bfirsh Dec 31, 2014

Contributor

@frapposelli I'm afraid this needs rebasing. :(

Contributor

bfirsh commented Dec 31, 2014

@frapposelli I'm afraid this needs rebasing. :(

@bfirsh

This comment has been minimized.

Show comment
Hide comment
@bfirsh

bfirsh Dec 31, 2014

Contributor

What do you think the best way to test vSphere is? Do we need a vSphere installation running locally or something like that?

Contributor

bfirsh commented Dec 31, 2014

What do you think the best way to test vSphere is? Do we need a vSphere installation running locally or something like that?

@pandrew

This comment has been minimized.

Show comment
Hide comment
@pandrew

pandrew Jan 1, 2015

An ESXi hypervisor and vsphere server running on the hypervisor should be sufficient to test both right?

pandrew commented Jan 1, 2015

An ESXi hypervisor and vsphere server running on the hypervisor should be sufficient to test both right?

@vovimayhem

This comment has been minimized.

Show comment
Hide comment
@vovimayhem

vovimayhem Jan 1, 2015

+1 :)
(If you're interested in following the PR upstream (and give us a +1))

+1 :)
(If you're interested in following the PR upstream (and give us a +1))

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Jan 2, 2015

Contributor

@bfirsh I will rebase next week when I'm back from the winter break, as for the testing, you'll need an ESXi box at the very least (even the free license should do the trick).

Contributor

frapposelli commented Jan 2, 2015

@bfirsh I will rebase next week when I'm back from the winter break, as for the testing, you'll need an ESXi box at the very least (even the free license should do the trick).

@sthulb

This comment has been minimized.

Show comment
Hide comment
@sthulb

sthulb Jan 7, 2015

Contributor

This probably will need to be updated to reflect changes I made in #219

Contributor

sthulb commented Jan 7, 2015

This probably will need to be updated to reflect changes I made in #219

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Jan 8, 2015

Contributor

@sthulb I'm rebasing the drivers against the most recent master commit right now, once #219 is merged I will update the drivers to reflect the change (should be pretty straightforward).

Contributor

frapposelli commented Jan 8, 2015

@sthulb I'm rebasing the drivers against the most recent master commit right now, once #219 is merged I will update the drivers to reflect the change (should be pretty straightforward).

zeeyang and others added some commits Dec 4, 2014

Added VMware Fusion machine driver
Signed-off-by: Fabio Rapposelli <frapposelli@vmware.com>
Added vCloud Air machine driver
Signed-off-by: Fabio Rapposelli <frapposelli@vmware.com>

SlimYang and others added some commits Dec 4, 2014

Added vSphere machine driver
Signed-off-by: Fabio Rapposelli <frapposelli@vmware.com>
Godeps save and enable commands
Signed-off-by: Fabio Rapposelli <frapposelli@vmware.com>
@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Jan 8, 2015

Contributor

@bfirsh rebase done, quick changelog:

  • Switched provider names to vmware<drivername>, now we have vmwarefusion vmwarevsphere and vmwarevcloudair
  • Moved the providers to the new codegansta/cli package, cli flags follow the --vmware<driver>-<option> convention, env vars are shorter with just <DRIVER>_<OPTION> (mimicked the AWS behavior for that)
  • Rewrote history for correct attribution to the original authors of the drivers.

Tested with script/run-integration-tests succesfully:

MACHINE_TESTS="vmwarefusion vmwarevsphere vmwarevcloudair" ./script/run-integration-tests
=== RUN TestMachineCreate
 - testing create for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing create for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing create for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineCreate (278.62 seconds)
=== RUN TestMachineStop
 - testing stop for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing stop for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing stop for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineStop (19.09 seconds)
=== RUN TestMachineStart
 - testing start for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing start for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing start for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineStart (27.68 seconds)
=== RUN TestMachineKill
 - testing kill for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing kill for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing kill for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineKill (9.29 seconds)
=== RUN TestMachineRemove
 - testing rm for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing rm for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing rm for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineRemove (70.13 seconds)
PASS
ok      github.com/cloudnativeapps/machine/_integration-test    404.824s
Contributor

frapposelli commented Jan 8, 2015

@bfirsh rebase done, quick changelog:

  • Switched provider names to vmware<drivername>, now we have vmwarefusion vmwarevsphere and vmwarevcloudair
  • Moved the providers to the new codegansta/cli package, cli flags follow the --vmware<driver>-<option> convention, env vars are shorter with just <DRIVER>_<OPTION> (mimicked the AWS behavior for that)
  • Rewrote history for correct attribution to the original authors of the drivers.

Tested with script/run-integration-tests succesfully:

MACHINE_TESTS="vmwarefusion vmwarevsphere vmwarevcloudair" ./script/run-integration-tests
=== RUN TestMachineCreate
 - testing create for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing create for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing create for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineCreate (278.62 seconds)
=== RUN TestMachineStop
 - testing stop for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing stop for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing stop for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineStop (19.09 seconds)
=== RUN TestMachineStart
 - testing start for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing start for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing start for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineStart (27.68 seconds)
=== RUN TestMachineKill
 - testing kill for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing kill for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing kill for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineKill (9.29 seconds)
=== RUN TestMachineRemove
 - testing rm for vmwarefusion (machine-integration-test-vmwarefusion)
 - testing rm for vmwarevsphere (machine-integration-test-vmwarevsphere)
 - testing rm for vmwarevcloudair (machine-integration-test-vmwarevcloudair)
--- PASS: TestMachineRemove (70.13 seconds)
PASS
ok      github.com/cloudnativeapps/machine/_integration-test    404.824s
@sthulb

This comment has been minimized.

Show comment
Hide comment
@sthulb

sthulb Jan 8, 2015

Contributor

@frapposelli certainly. I don't care about the order of the PRs being accepted, it was more of a heads up

Contributor

sthulb commented Jan 8, 2015

@frapposelli certainly. I don't care about the order of the PRs being accepted, it was more of a heads up

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Jan 8, 2015

Contributor

@sthulb thanks! 👍

Contributor

frapposelli commented Jan 8, 2015

@sthulb thanks! 👍

Updated README with instructions for VMware drivers.
Signed-off-by: Fabio Rapposelli <frapposelli@vmware.com>

@tianon tianon referenced this pull request in boot2docker/boot2docker-cli Jan 8, 2015

Merged

Revert "Add Fusion driver and vmx template" #333

@ehazlett

This comment has been minimized.

Show comment
Hide comment
@ehazlett

ehazlett Jan 8, 2015

Member

@frapposelli awesome! huge thanks! i'm testing this today.

Member

ehazlett commented Jan 8, 2015

@frapposelli awesome! huge thanks! i'm testing this today.

@ehazlett

This comment has been minimized.

Show comment
Hide comment
@ehazlett

ehazlett Jan 8, 2015

Member

@frapposelli this is awesome. do you think you could include a rough outline of what you are doing to create the custom b2d iso with vmtools?

Member

ehazlett commented Jan 8, 2015

@frapposelli this is awesome. do you think you could include a rough outline of what you are doing to create the custom b2d iso with vmtools?

@frapposelli

This comment has been minimized.

Show comment
Hide comment
@frapposelli

frapposelli Jan 8, 2015

Contributor

@ehazlett the b2d iso is built from cloudnativeapps/boot2docker@8ff8eb3

Main differences from the master b2d branch are:

That's pretty much it, for the third point, I'm currently working on a Go package to write raw content into a VMDK, this should give us a way to port the same seeding technique used with virtualbox.

Contributor

frapposelli commented Jan 8, 2015

@ehazlett the b2d iso is built from cloudnativeapps/boot2docker@8ff8eb3

Main differences from the master b2d branch are:

That's pretty much it, for the third point, I'm currently working on a Go package to write raw content into a VMDK, this should give us a way to port the same seeding technique used with virtualbox.

@ehazlett

This comment has been minimized.

Show comment
Hide comment
@ehazlett

ehazlett Jan 8, 2015

Member

awesome. thanks!

On Thu, Jan 8, 2015 at 10:45 AM, Fabio Rapposelli notifications@github.com
wrote:

@ehazlett https://github.com/ehazlett the b2d iso is built from
cloudnativeapps/boot2docker@8ff8eb3
cloudnativeapps/boot2docker@8ff8eb3

Main differences from the master b2d branch are:

That's pretty much it, for the third point, I'm currently working on a Go
package to write raw content into a VMDK, this should give us a way to port
the same seeding technique used with virtualbox.


Reply to this email directly or view it on GitHub
#6 (comment).

Member

ehazlett commented Jan 8, 2015

awesome. thanks!

On Thu, Jan 8, 2015 at 10:45 AM, Fabio Rapposelli notifications@github.com
wrote:

@ehazlett https://github.com/ehazlett the b2d iso is built from
cloudnativeapps/boot2docker@8ff8eb3
cloudnativeapps/boot2docker@8ff8eb3

Main differences from the master b2d branch are:

That's pretty much it, for the third point, I'm currently working on a Go
package to write raw content into a VMDK, this should give us a way to port
the same seeding technique used with virtualbox.


Reply to this email directly or view it on GitHub
#6 (comment).

@ehazlett

This comment has been minimized.

Show comment
Hide comment
@ehazlett

ehazlett Jan 8, 2015

Member

LGTM

Member

ehazlett commented Jan 8, 2015

LGTM

ehazlett added a commit that referenced this pull request Jan 8, 2015

Merge pull request #6 from cloudnativeapps/vmw-drivers
VMware host drivers for Fusion, vSphere and vCloud Air

@ehazlett ehazlett merged commit 5a251c5 into docker:master Jan 8, 2015

@pandrew

This comment has been minimized.

Show comment
Hide comment
@pandrew

pandrew Jan 8, 2015

Nice!!! Thnx

pandrew commented Jan 8, 2015

Nice!!! Thnx

@sthulb

This comment has been minimized.

Show comment
Hide comment
@sthulb

sthulb Jan 8, 2015

Contributor

🎉 Thanks to everyone involved!

Contributor

sthulb commented Jan 8, 2015

🎉 Thanks to everyone involved!

@posita posita referenced this pull request Aug 3, 2015

Closed

New Driver: Parallels Desktop for Mac #939

5 of 5 tasks complete

tomeon pushed a commit to tomeon/machine that referenced this pull request May 9, 2018

Merge pull request #6 from proppy/patch-1
isolinux: add console=ttyS0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment