- One unique file to list all dependencies and dependencies' versions (except Go, currently defined in `build/Dockerfile`).
- Custom versions can now be injected into Vagrant VMs.
- Vagrant dev VMs, Vagrant test VMs, and `run-integration-tests.sh` all source from `DEPENDENCIES`, to keep things 'DRY'.
- Vagrant versions can be overriden using environment variables, like it was possible in `run-integration-tests.sh`.
This way, Vagrant VMs and cloud-provided VMs are configured in the exact same way, hence avoiding configuration drift and subtle bugs associated to different versions of software.
Otherwise it will always install the latest docker version, which will be
undesirable when new major releases are done, until they are well tested.
For instance, docker after automatically updating to 1.9, it was killing my VM
when spawning a kubernetes cluster, due to a high CPU consumption, probably due
to https://github.com/docker/docker/issues/17720
* disable the default Vagrant shared folder, which we don't need
* install `bc` on the dev VM, since it's needed by the smoke tests
* expose the dev VM docker on TCP, for convenience
This makes an Ubuntu-based vagrant image that has
- docker installed
- go tools installed
- weave dependencies installed
- $GOPATH set to ~
- the local working directory mapped as a synced folder into the
right place in $GOPATH
So one should be able to
$ vagrant up
$ vagrant ssh
vagrant$ cd src/github.com/zettio/weave
vagrant$ make -C weaver