This fixes compatibility with the existing Vagrantfile in
coreos-vagrant which expected the plugin code to create this directory.
Also, the units can be runtime since they are always written at boot.
The existing version.txt is kinda annoying. The common case of referring
to the current version requires joining three values and the names of
those values only make sense in ChromeOS. Instead just use version as a
string, using VERSION, VERSION_ID, and BUILD_ID just as they appear in
os-release. It is up to the few scripts that need the individual parts
to break the version apart.
The old values remain for the sake of compatibility.
The environment file will not be written if there are no public or
private networks defined since the configure_networks hook is never run.
Report an error after one minute to make this situation less confusing.
- Only write configs for static networks, DHCP will work by default.
- Match interfaces by MAC address if possible.
- Use the configured netmask instead of always using a /24
- Define default addresses in /etc/environment based on the type of
network. Now using both a private and a public network works!
The old override-plugin.rb didn't actually properly monkey patch the
change host name function because it was missing a requires line
pointing to the file it is defined in upstream. To clarify things split
the code into two files that match the upstream names. Additionally
using this hook as it is intended means it works if a host name is
defined but additional networks are not.
As part of the split switch to starting the units directly. The
indirection through a path unit just adds complexity.
This adds two new optional build steps. The first user of these is the
vagrant images but many of the targets can be simplified now.
- fs_hook: Anything that needs to happen before unmounting the image.
This happens after the OEM is installed but before disk images are
made. It can be used to copy any data out of the image.
- bundle_format: Many VM types ship as some sort of archive format
rather than plain disk images as this script originally assumed.
Adding this final step lets us stop using the conf step awkwardly.
Vagrant now ships with a Vagrantfile and related code included in the
OEM package. This lets us version our vagrant-side code along with the
images themselves as well making the coreos-vagrant repo optional again.
The coreos-vagrant code will still be useful for handling the fancier
cluster configuration stuff but no longer has to carry the plugin code.
There's no reason for handling vagrantfile-user-data in the Vagrant
plugin, move it to the OEM cloud-config.yml along side the user-data
handler. Use the generic user-config@ unit as well.
Import override-plugin.rb and some VirtualBox fixups from our published
Vagrantfile repo. The current Vagrant OEM depends on this code, making
it impossible to boot without using our special Vagrantfile. Using the
box as a stand-alone entity worked up until recently and is something
users expect to work.
Also bump the minimum Vagrant version to 1.5, matching our current
documentation.
Fixes https://github.com/coreos/bugs/issues/5
This is the static piece of the Vagrantfile previously defined in
scripts/build_library/virtualbox_ovf.sh. Moving it here so we can start
maintaining the major Vagrant OEM pieces together.
This should make it less difficult for people to add kernel options for
debugging. Without a prompt/timeout the user must be holding down space
or some other key while syslinux loads but it may not be possible for
the user to do so provide input quite that fast. Only a half second to
avoid needlessly increasing boot times in the common case.
Using the classic mbr.bin was only needed during the transition from
syslinux 3 to 6 because the behavior of gptmbr.bin changed after 3.
Now that the transition is done and cgpt supports the new scheme now it
is time we switched back. This avoids depending on using a hybrid MBR.