The work consists of three parts:
* Allow for bootstrapping remotely,
this makes it possible to run the tests
on e.g. OSX with VirtualBox installed
* Make bootstrapping a fully automated process
where the manifests can be generated by the tests
and the tests can call the bootstrapper directly in python
* Create a framework wherein instances can be booted up
using the bootstrapped images and subsequently tested
This is the first step in the effort of combining all documentation about
bootstrap-vz into sphinx while still being able to access it from github
(github can parse rst as well)
If all you want is to test an image or product and to achieve this
you need to generate several images a day, you will end up with
lots of AMI's and snapshots that have no use in the end of the day.
This commit adds the new boolean manifest option "deregister_ami"
that, if True, deletes the recently created AMI and snapshot. So, the
final result will be only the running instance, nothing else.
Instead of storing just its ID.
This gives quick access to the recently created instance, which
allows us to simplify the code that needs to fetch the instance object
every time it was necessary.
Use the function waituntil() available in the integration-test branch
to simplify the code that retrieves the IP of the instance.
A 'TODO' note was also added to remember us to merge this function
once it gets merged.
It adds the ability to automatically launch an EC2 instance
after AMI registration.
It has no mandatory configuration, only optional ones, like
instance type, security groups, etc. They should be documented in
later documentation patches.
Documentation says about that, but it's not implemented like that.
If the command to be executed is an array with just one string, it's
likely the user passed the entire command inside the string.
Plus, they benefit from shell expansion of wildcards like '*'.
It controls whether to include the 'deb-src' lines in image's
source.list.
Currently they are always included. This patch changes this
behavior by not including them by default; the user must set
this new config to true in order to include them.
This saves a bit of bandwidth in default installations. Also,
the use of src packages is not so usual in ordinary installations.
NOTE: I'm not doing any validation on the opt_flags param and I don't recommend using for more then adding a -vvvv.
Also, I'm purposely excluding the vault flags (which also pretty commonly used) because you shouldn't be baking
private keys and certs into your images. Instead, just avoid running the vault specific code or use the
opt_flags if absolutely necessary.
After vmware-vdiskmanager runs, the image is left with a 600
permission. This commit fixes it by preserving the file permission
before the shrink operation.
This change adds a provider option, enhanced_networking,
which installs the Intel virtual networking driver for
SR-IOV using DKMS. It also modifies the EC2 AMI registration
to include support for SR-IOV.
This is to allow building an image for a 64bit machine but with 32bit userspace.
Probably not a common usecase but ideal if you need to address more higher quantities of memory but cant migrate to a full 64bit userspace due to something like ruby eating twice as much memory.
This commit adds the cloud-initramfs-growroot package to the
installation list for GCE images with backports enabled, and updates
the gce tasklist to add the /etc/init.d/expand-root script
(with provider-appropriate touch-ups) to the image.
As requested on #147, there is now an option to specify the Docker
version to be installed when using the `docker_daemon` plugin. The
version string is validated against a pattern extracted from the
Docker's CHANGELOG. If the version is not present, it will just download
the latest available.
The download method was also changed from `urllib` to `wget`, so we can
see its progress if needed.
This closes#147.
This ensures that preferences are written before apt update and also ensures
that in GCE the backports are added to the sources before the provider-specific
SetPackageRepositories happens.
Change-Id: I3c85f922c49c2a6fbd3c0f2bad1072eff0d098c8
The `uname -r` command returns the version of the running kernel running
on the host machine, as the chroot environment doesn't load a new one.
This prevents the proper version of the `linux-headers-*` package from
being added when the target has a different kernel version or
architecure.
This closes#121.