Skip to content

Commit

Permalink
Pin kitchen-vagrant (and vagrant-winrm)
Browse files Browse the repository at this point in the history
  • Loading branch information
bheuvel committed Dec 2, 2016
1 parent 23c0815 commit 2adddb9
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 18 deletions.
4 changes: 2 additions & 2 deletions Docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,15 @@ RUN curl -L https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${
dpkg -i /tmp/vagrant_x86_64.deb && \
rm -f /tmp/vagrant_x86_64.deb && \
vagrant plugin install vagrant-cloudstack && \
vagrant plugin install vagrant-winrm
vagrant plugin install vagrant-winrm --plugin-version 0.7.0

RUN curl -L https://packages.chef.io/stable/debian/${CHEFDK_DEB_VERSION}/chefdk_${CHEFDK_VERSION}-1_amd64.deb > /tmp/chef_dk.deb && \
dpkg -i /tmp/chef_dk.deb && rm /tmp/chef_dk.deb && \
rm -f /tmp/chef_dk.deb && \
echo 'eval "$(chef shell-init bash)"' >> ~/.bashrc && \
/opt/chefdk/embedded/bin/bundler config --global path vendor/bundle && \
/opt/chefdk/embedded/bin/bundler config --global bin vendor/bin && \
/opt/chefdk/embedded/bin/gem install kitchen-vagrant
/opt/chefdk/embedded/bin/gem install kitchen-vagrant -v 0.20.0


WORKDIR "/work"
Expand Down
4 changes: 2 additions & 2 deletions Docker/Dockerfile.chefdk_0_17
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ RUN curl -L https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${
dpkg -i /tmp/vagrant_x86_64.deb && \
rm -f /tmp/vagrant_x86_64.deb && \
vagrant plugin install vagrant-cloudstack && \
vagrant plugin install vagrant-winrm
vagrant plugin install vagrant-winrm --plugin-version 0.7.0

# Install ChefDK
RUN curl https://omnitruck.chef.io/install.sh | bash -s -- -c ${CHEFDK_CHANNEL} -P chefdk -v ${CHEFDK_VERSION} && \
echo 'eval "$(chef shell-init bash)"' >> ~/.bashrc && \
/opt/chefdk/embedded/bin/bundler config --global path vendor/bundle && \
/opt/chefdk/embedded/bin/bundler config --global bin vendor/bin && \
/opt/chefdk/embedded/bin/gem install kitchen-vagrant
/opt/chefdk/embedded/bin/gem install kitchen-vagrant -v 0.20.0

WORKDIR "/work"

Expand Down
4 changes: 2 additions & 2 deletions Docker/Dockerfile.latest_dependencies
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ RUN curl -L https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${
dpkg -i /tmp/vagrant_x86_64.deb && \
rm -f /tmp/vagrant_x86_64.deb && \
vagrant plugin install vagrant-cloudstack && \
vagrant plugin install vagrant-winrm
vagrant plugin install vagrant-winrm --plugin-version 0.7.0

# Install ChefDK
RUN curl https://omnitruck.chef.io/install.sh | bash -s -- -c ${CHEFDK_CHANNEL} -P chefdk -v ${CHEFDK_VERSION} && \
echo 'eval "$(chef shell-init bash)"' >> ~/.bashrc && \
/opt/chefdk/embedded/bin/bundler config --global path vendor/bundle && \
/opt/chefdk/embedded/bin/bundler config --global bin vendor/bin && \
/opt/chefdk/embedded/bin/gem install kitchen-vagrant
/opt/chefdk/embedded/bin/gem install kitchen-vagrant -v 0.20.0

WORKDIR "/work"

Expand Down
64 changes: 52 additions & 12 deletions Docker/README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,43 @@
# Vagrant Cloudstack Container

This container contains some tools commonly used with the vagrant-cloudstack plugin
## latest
## dev
The versions have been specifically tuned to provide a working set for development of the plugin. To this end also developer tools (e.g. make, g++) are installed to enable bundler to pull in and compile required gems.
So this one is _required_ for developing and testing the plugin from (latest, master) source.
* [Vagrant](http://www.vagrantup.com) 1.8.1
* [Vagrant-cloudstack](https://github.com/missioncriticalcloud/vagrant-cloudstack) plugin latest
* [Vagrant-winrm](https://github.com/criteo/vagrant-winrm) latest
* [Vagrant-cloudstack](https://github.com/missioncriticalcloud/vagrant-cloudstack) plugin _current_
* [Vagrant-winrm](https://github.com/criteo/vagrant-winrm) 0.7.0 (latest)
* [Chef-DK](https://downloads.chef.io/chef-dk/) 0.10.0
* [Kitchen-Vagrant](https://github.com/test-kitchen/kitchen-vagrant) latest
_As the container is build automatically on triggers, latest versions are latest at time of (re)build_
* [Kitchen-Vagrant](https://github.com/test-kitchen/kitchen-vagrant) 0.20.0

As the container is build automatically on triggers, latest versions are latest at time of (re)build_


## latest_dependencies
This may not work for everyone as we try to use latest, but also stable combination of versions.
For now building on top of the "dev" container, with Vagrant 1.8.1.
* [Vagrant](http://www.vagrantup.com) 1.8.1
* [Vagrant-cloudstack](https://github.com/missioncriticalcloud/vagrant-cloudstack) plugin latest
* [Vagrant-winrm](https://github.com/criteo/vagrant-winrm) latest
* [Vagrant-cloudstack](https://github.com/missioncriticalcloud/vagrant-cloudstack) plugin _current_
* [Vagrant-winrm](https://github.com/criteo/vagrant-winrm) 0.7.0 (latest)
* [Chef-DK](https://downloads.chef.io/chef-dk/) 0.19
* [Kitchen-Vagrant](https://github.com/test-kitchen/kitchen-vagrant) latest
* [Kitchen-Vagrant](https://github.com/test-kitchen/kitchen-vagrant) 0.20.0

_As the container is build automatically on triggers, latest versions are latest at time of (re)build_


## chefdk_0_17
This will install chef-client 12.13.37 which is needed for some compatibilty reasons.
* [Vagrant](http://www.vagrantup.com) 1.8.1
* [Vagrant-cloudstack](https://github.com/missioncriticalcloud/vagrant-cloudstack) plugin latest
* [Vagrant-winrm](https://github.com/criteo/vagrant-winrm) latest
* [Vagrant-cloudstack](https://github.com/missioncriticalcloud/vagrant-cloudstack) plugin _current_
* [Vagrant-winrm](https://github.com/criteo/vagrant-winrm) 0.7.0 (latest)
* [Chef-DK](https://downloads.chef.io/chef-dk/) 0.17
* [Kitchen-Vagrant](https://github.com/test-kitchen/kitchen-vagrant) latest
* [Kitchen-Vagrant](https://github.com/test-kitchen/kitchen-vagrant) 0.20.0

_As the container is build automatically on triggers, latest versions are latest at time of (re)build_


Links to the respective Dockerfiles:
* [latest](https://raw.githubusercontent.com/MissionCriticalCloud/vagrant-cloudstack/master/Docker/Dockerfile)
* [dev](https://raw.githubusercontent.com/MissionCriticalCloud/vagrant-cloudstack/master/Docker/Dockerfile)
* [latest_dependencies](https://raw.githubusercontent.com/MissionCriticalCloud/vagrant-cloudstack/master/Docker/Dockerfile.latest_dependencies)
* [chefdk_0_17](https://raw.githubusercontent.com/MissionCriticalCloud/vagrant-cloudstack/master/Docker/Dockerfile.chefdk_0_17)

Expand Down Expand Up @@ -65,3 +69,39 @@ docker run \
For actual development of the plugin, a lot more variables are required. To this end you can use the [bash script `vac.sh`](https://raw.githubusercontent.com/MissionCriticalCloud/vagrant-cloudstack/master/Docker/vac.sh) or [PowerShell script `vac.ps1`](https://raw.githubusercontent.com/MissionCriticalCloud/vagrant-cloudstack/master/Docker/vac.ps1) in the git repo.

_Note on usage of SSH keyfile_: As the container is mounted on a specific folder (`$(pwd)`), the keyfile must be specified (by `SSH_KEY`) relative to, __and within__, the specified folder!

## Version notes
### Vagrant
Development of the plugin, means running Vagrant from source, in combination with the specific bundler version (conflict) between ChefDK and Vagrant and ruby version (conflict) between ChefDK and Vagrant, leads to the following version combination:

"dev" container:
* Vagrant 1.8.1
* ChefDK 0.10.0

### ChefDK
Based on (somewhat subjective :) experience, the latest version of ChefDK is mostly compatible, is used as latest version.

"latest_dependensies" container:
* ChefDK 0.19

For convenience of some reported incompatibilities, a separate container is defined:
"chefdk_0_17" container:
* ChefDK 0.17

### Kitchen-Vagrant plugin
Due to new functionality in this plugin (0.21.0), using existing features, the plugin creates a Vagrantfile which has problems executing. This possibly revealed bugs in Vagrant, which might be fixed in newer Vagrant versions.
Untill a new Vagrant is in use, this plugin will be pinned to the latest working combination.

Bugs reported to kitchen-vagrant:
* [Windows: The shared folder guest path must be absolute: $env:TEMPomnibusche #256](https://github.com/test-kitchen/kitchen-vagrant/issues/256)
* [Problem with synced_folder (on Kubernetes) v0.20.0->v0.21.0 #257](https://github.com/test-kitchen/kitchen-vagrant/issues/257)


all containers:
* Kitchen-Vagrant 0.20.0

### Vagrant-WinRM
Latest (tested) version at moment of writing is 0.7.0

all containers:
* Kitchen-Vagrant 0.7.0

0 comments on commit 2adddb9

Please sign in to comment.