562 Commits

Author SHA1 Message Date
Alex Polvi
1854bc2028 build_image: add ability to pick different base package 2015-01-02 15:07:52 -05:00
Yuya Kusakabe
95f7c37a9d vm_image_util: changed niftycloud format to ovf 2014-12-18 17:22:51 +09:00
Michael Marineau
9ae2e1397f Merge pull request #364 from vmware/open-vmdk
add vmware_ova to image formats
2014-12-17 14:58:37 -08:00
Oliver Kurth
bf90db1301 remove autogenerated comment 2014-12-17 14:52:04 -08:00
Michael Marineau
3b40989d52 catalyst: make sure the 'portage' user can write to distfiles and ccache
Adding the update step appears to break permissions on the distfiles
directory. Ensure the portage user is correct and set the permissions on
directories it needs to write to in advance.
2014-12-17 12:46:18 -08:00
Michael Marineau
4debbfc257 catalyst: update GCC dependencies before building stage1
When bootstrapping a SDK we need to update GCC dependencies to ensure
the GCC built for stage1 is linked against the same library versions as
those that are included in the stage1. Without this updating the mpc
library just results in a broken stage1.
2014-12-17 12:44:10 -08:00
Michael Marineau
ebf77d4fdd grub: search for OEM by partition label instead of filesystem label
Probing all filesystem types on all block devices appears to hang
booting Amazon EC2 HVM instances. The console output is unreliably
buffered so there is no information on what the failure actually is. On
the up side we can work around it easily by only searching the GPT which
appears to be safe.
2014-12-15 02:22:42 +00:00
Yuya Kusakabe
44adc99dc6 vm_image_util: add niftycloud 2014-12-13 12:14:19 +09:00
Michael Marineau
a45ba5dc5e grub: use new mount.usr kernel command line args 2014-12-08 18:14:10 -08:00
Michael Marineau
ac169700a9 vm_image_util: remove kexec/boot_kernel configuration
No longer applicable with the new bootloader setup.
2014-12-05 16:52:21 -08:00
Michael Marineau
fe9db4157b vm_image_util: add qemu_xen image type for testing
To aid testing things under Xen it helps to have a machine locally that
actually runs Xen! This isn't a particularly great setup but it works
well enough to simplify my own testing. Must be used with a developer
image and packages built with `USE=vm-testing` set to include the Xen
userspace tools.
2014-12-05 16:51:11 -08:00
Michael Marineau
d443daa168 grub: the one bootloader to rule them all
This uses our new GRUB2 features to handle GPT priority partition
selection, terminal selection, OEM tweaks, etc. The old SYSLINUX and
PV-GRUB configs are now unused except for maintaining compatibility
with older installs. Of the old configs only the ones that
coreos-postinst copies are needed. The new setup supports using GRUB2
under Xen, giving us automatic fallback support on all of our platforms
for the very first time!

Since grub.cfg is copied into place instead of generated, build_image's
--boot_args option is no longer supported. It could be re-added later
with some sed goo but for now it is easy enough to just edit grub.cfg.
2014-12-05 16:51:11 -08:00
Oliver Kurth
735e811a31 add vmware_ova to image formats 2014-12-04 16:19:23 -08:00
Alex Crawford
4d6a8aaf08 vm_image_util: use only ttyS0 for the console on Azure instances 2014-12-01 14:54:57 -08:00
Michael Marineau
3587784bc4 disk_util: Add support for computing verity hashes 2014-11-15 18:58:10 -08:00
Michael Marineau
931610d5bb disk_util: Set priority and successful attributes in new images
Mark the initial copy of CoreOS as 'successful' and with a non-zero
priority. Required to boot with a stricter interpretation of the
partition selection scheme which ignores partitions that have a priority
of zero. The new grub implementation follows this rule and is what the
original ChromeOS spec used too.

For the sake of completeness if multiple partitions are configured in
the json file with this feature they will be prioritized in disk-order.
2014-11-15 16:01:25 -08:00
Michael Marineau
96d11eb03b Merge pull request #351 from marineam/secure
A pile of goo to support a minimal secure boot demo
2014-11-07 17:43:06 -08:00
Matt Boersma
1d34b98dff virtualbox_ovf.sh: use virtio network interfaces 2014-11-07 16:16:03 -07:00
Michael Marineau
0c6adece3d A pile of goo to support a minimal secure boot demo 2014-11-07 13:53:46 -08:00
Michael Marineau
810ba021b7 vm_image_util: add qemu_uefi image type for easier testing 2014-11-05 15:53:17 -08:00
Michael Marineau
95c45cbc1e Merge pull request #343 from vmware/vmx-devices
use devices vmxnet3 and pvscsi
2014-11-03 15:42:39 -08:00
Michael Marineau
d2da1b9081 Merge pull request #346 from marineam/qcow2
vm_image_util: generate qcow2 images compatible with QEMU < 1.1
2014-11-03 14:23:59 -08:00
Michael Marineau
7ba6381f38 disk_layout: align partitions and disk sizes to 2MB
The VHD format actually uses 2MB blocks internally so the 1MB alignment
used in e77e4e54 wasn't sufficent to prevent other tools from further
adjusting the image size to align it. Additionally a 1MB alignment may
be triggering a bug in OpenStack or XenServer disk resizing that renders
that partial block at the end of the old image size unmapped/unavailabe.
2014-11-03 13:19:58 -08:00
Michael Marineau
2f081e91c8 disk_util: ensure partitions are layed out on disk in order
So far the default iteration order of python dicts has mostly matched
the order that we want the partitions on disk but this is not always the
case. I caught the BIOS-BOOT partition being ordered on disk after the
USR-A partition. Nothing bad came of this but consistancy is good.
2014-11-03 13:07:29 -08:00
Michael Marineau
ea898ea3f6 vm_image_util: generate qcow2 images compatible with QEMU < 1.1 2014-11-03 11:12:09 -08:00
Oliver Kurth
67ad41fd22 use vmxnet3 device 2014-10-23 13:52:56 -07:00
Oliver Kurth
431a0b4ec0 use pvscsi device 2014-10-23 13:50:05 -07:00
Oliver Kurth
39eb776b8d add pcie configuration to vmware vmx file 2014-10-23 13:49:50 -07:00
Alex Crawford
f0618ab541 build_library: use jq to parse JSON 2014-10-22 15:19:27 -07:00
Alex Crawford
a204e434c6 grub_install: use sudo when reprobing 2014-10-22 15:19:04 -07:00
Alex Crawford
c226ac1c12 azure: finalize azure image
Increase the root partition to ~28 GiB.
2014-10-13 12:19:41 -07:00
Alex Crawford
44520881c7 build_image, image_to_vm: add disk-size assertions
Assert that the image is a multiple of 1 MiB
2014-10-08 21:09:54 -07:00
Michael Marineau
0d3a849e2b disk_layout: adjust ROOT partition sizes to fill new alignment
The new disk size alignment left too much extra space at the end of the
disk which would lead to pointless resizing on first boot. Fill in the
extra space so that no more than 1MB is left unused.
2014-10-08 20:40:54 -07:00
Michael Marineau
e77e4e5499 disk_layout: Align disk sizes to both 1MB and cylinder boundaries.
The VHD disk format internally includes CHS addressing and qemu-img
respectfully aligns disk images to the common 16 heads 63 sectors
geometry when possible. This is unfortunate since images uploaded to
Azure must also be aligned to 1MB we normally do.

Since qemu-img doesn't have a way to handle this well right now adjust
our existing alignment logic to create disk images aligned to both.
2014-10-08 20:40:45 -07:00
Michael Marineau
e361e9170e vm_image_util: Enable new VMware OEM package. 2014-10-08 20:40:45 -07:00
Michael Marineau
bb1c2559fb grub_install: work around intermittent missing loopback partitions
I am unsure exactly what situation is causing the loopback partition
device node to not exist when it is being mounted but this should help
work around the situation and log loudly about it so we can hopefully
figure out where to dig further.
2014-10-08 12:24:01 -07:00
Camilo Aguilar
7729258fda Upgrades virtual hardware version
Version 4 is too low. Some VMware products even crash trying to
upgrade it to a greater version (VMware Fusion 6 Pro). Having at
least 7 will allow us to use some modern features in most VMware
products, such as enabling vmxnet3 virtual network adapters or adding
much more memory and cpu cores to virtual machines.
2014-09-29 16:00:03 -05:00
Michael Marineau
da86c34d75 prod_image_util: clean up /etc cleanup code
Pruning files via INSTALL_MASK in the profile is a bit more apropriate
since it allows us to keep most of that info in one place. The only
parts that need to be deleted or adjusted here are inputs and outputs of
`env-update` which has to be run after everything is installed.

Previously we didn't actually clean up `env.d` at all which lead at
least one user to think they should edit those files and run
`env-update` themselves but we don't ship that tool on prod images.
2014-09-25 16:13:29 -07:00
Vito Caputo
454e4c1ad4 Added --oem_pkg oem override option to image_to_vm.sh
This sets the IMG_FORCE_OEM_PACKAGE variable to the supplied string.  If a
':' is present, what follows it gets put in the IMG_FORCE_OEM_USE variable
and what precedes in the former.

_get_vm_opt() has been modified to generally support forced overrides such
as this one, simply set variables named IMG_FORCE_$opt.

Now you can do things like:

for fmt in cloudstack \
		digitalocean \
		ec2-compat:ec2 \
		ec2-compat:openstack \
		ec2-compat:brightbox \
		exoscale \
		gce \
		hyperv \
		rackspace \
		rackspace-onmetal; do
	./image_to_vm.sh --format=qemu --oem_pkg=$fmt
	../build/images/amd64-usr/latest/coreos_developer_qemu.sh -curses
done

rather than having to modify build_library/vm_image_util.sh to test oem
builds in qemu.
2014-09-24 14:28:56 -04:00
Michael Marineau
a1a86ac731 vm_image_util: use new azure and hyperv oem packages 2014-09-22 15:21:20 -07:00
Stephen A. Zarkos
3b2c54fe5e Hyper-V & Azure build support
Add Hyper-V and Azure as build targets for development images.
2014-09-18 14:27:31 -07:00
Michael Marineau
09e720e821 cleanup: remove a couple references to chrome-bot 2014-09-14 14:54:35 -07:00
Michael Marineau
81fb3e12a0 Merge pull request #330 from exoscale/build-exoscale
exoscale builder
2014-09-08 19:23:35 -07:00
Antoine Coetsier
b9dc44da2e remove boot_kernel option for KVM in exoscale 2014-09-08 23:23:13 +02:00
Michael Marineau
1a8b197659 qemu: adjust the meaning of the -s (simple) flag
My primary use case for this flag is to fix booting with UEFI firmware
which can have problems when mixed with KVM, adding kexec into the mix
doesn't help matters either. The current version of OVMF can boot from
virtio drives just fine so that is now enabled and KVM is disabled.

So the -s option can also mean sloooooooow but boots!
2014-09-07 09:58:51 -07:00
Michael Marineau
5bfa0c8d20 build: switch from SYSLINUX to GRUB2
The new grub install script must be called after the image is unmounted
and the old bootloaders script doesn't need to touch grub at all. For
now we will continue to use the existing syslinux configs but
interpreted by grub. Beyond the grub menu flashing by during boot
everything should still be functionally equivalent.
2014-09-07 09:58:51 -07:00
Michael Marineau
12a9900e02 grub_install: new install script for grub, add UEFI bootloader
This script replaces the standard grub-install tool to give us some more
control over what is going and ensure grub-install's auto-detection
magic doesn't make any incorrect choices. Also this script sets up a
loopback device and mounts the EFI partition in just the right way for
grub-bios-setup's auto-detection magic to work correctly.

I've chosen not to adapt disk_util to use partitioned loop devices to
make grub happy because ensuring loop devices get cleaned up properly
for the general case gets tricky and less robust.
2014-09-07 09:57:39 -07:00
retrack
ddccb5072b exoscale builder 2014-09-05 09:56:48 +02:00
Michael Marineau
9580ea4086 build_image_util: fix generation of packages.txt
The passing ROOT= as an environment variable to board wrapper scripts
doesn't work, the script unconditionally overrides it. This means so far
our packages.txt files have listed the contents of /build/amd64-usr
instead of the image. Fix this by calling equery directly instead.
2014-09-04 15:12:20 -07:00
Alex Crawford
b2b70c8624 Merge pull request #325 from crawford/digitalocean
digitalocean: Add image format for digitalocean
2014-09-02 13:52:30 -07:00