Commit Graph

220 Commits

Author SHA1 Message Date
Benjamin Gilbert
25fffe839d build_library: update VMware virtual hardware version to 11
This will run on ESXi 6.0 and above, and all non-EOL versions of Fusion
and Workstation.

Also enable a few useful VMX features (HPET; CPU and memory hotplug) that
are added by VMware Workstation 14.1.1's Change Hardware Compatibility
wizard. Correspondingly, enable CPU/memory hotplug in the OVF; omit
HPET because there's no obvious way to enable it.
2018-05-18 16:23:32 -04:00
Benjamin Gilbert
0e83301d8c build_library: drop oracle_oci_qcow image format
Images have been published to the release buckets, but never to OCI.
2018-04-25 22:40:29 -04:00
Benjamin Gilbert
fcbc7c3219 vm_image_util: bump PXE and ISO scripts to 2 GiB RAM
Now that we're shipping multiple docker packages in the image, 1 GiB
is not enough to boot successfully.
2017-09-22 15:52:19 -07:00
Benjamin Gilbert
2024326789 build_library: rename oracle_oci image to oracle_oci_qcow
Reserve the unsuffixed name for a raw image, in case we ever want to
support installing to disk using "coreos-install -o" on a PXE-booted
system.
2017-09-06 17:46:07 -07:00
Benjamin Gilbert
51c5345c0d build_library: Add Oracle OCI OEM and format 2017-08-30 03:10:33 -07:00
David Michael
71ebc66065 build_library: avoid a SIGPIPE while building arm64 UEFI firmware
This just sets the code file size to the var file size, so it gets
zero-padding without having to pipe commands together.

From: David Michael <david.michael@coreos.com>
[Rebased]
Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-07-27 15:03:58 -07:00
Geoff Levand
1761d9d071 vm_image_util: Update to use edk2 package
Signed-off-by: Geoff Levand <geoff@infradead.org>
2017-07-27 14:51:32 -07:00
Benjamin Gilbert
e98efe074d build_library: Add vagrant_virtualbox image type 2017-06-22 13:41:15 -07:00
Alex Crawford
65986e02bc build_library: split vagrant and vagrant vbox
This reverts the vagrant image back to using oem-vagrant because we
don't want to break the existing images. It moves the new,
Ignition-powered virtualbox flavor of vagrant into a new image.
2017-06-22 13:23:50 -07:00
Benjamin Gilbert
ab4705f9dc Merge pull request #697 from bgilbert/generic
Drop ISO/PXE support for amd64-generic, and an unused variable
2017-06-21 13:28:55 -07:00
Benjamin Gilbert
cb8b8f34ca build_library: Drop ISO/PXE support for amd64-generic 2017-06-16 19:05:07 -07:00
Alexander Pavel
7298b0bf2a build_library: Change oem package for vagrant to oem-vagrant-virtualbox
This changes the oem-package for vagrant to vagrant-virtualbox,
which uses ignition instead of cloud-clonfig and sets the oem id
to "virtualbox" so that ignition can handle the machine correctly
2017-06-14 15:58:17 -07:00
Alexander Pavel
cab8e3ed37 build_library: Add virtualbox oem to vm_image_util
This commit adds support for the oem-virtualbox package for
virtualbox builds
2017-06-14 13:21:21 -07:00
Benjamin Gilbert
40978865d2 Revert "A pile of goo to support a minimal secure boot demo"
This reverts commit 0c6adece3d.
2017-06-08 14:51:15 -07:00
Benjamin Gilbert
6878bd8f5f Revert "vm_image_util: add qemu_xen image type for testing"
This reverts commit fe9db4157b.
2017-06-08 14:47:23 -07:00
Benjamin Gilbert
c98788befc image_to_vm: Default to qemu_uefi on ARM
qemu makes no sense on that platform.
2017-05-02 15:02:09 -07:00
Benjamin Gilbert
329f4bd113 build_library: Run dd with status=none
Avoid dumping dd statistics to stderr.
2017-04-21 14:06:00 -07:00
Benjamin Gilbert
b363484c3b image_to_vm: Add vmware_raw image type
Allow "coreos-install -o vmware_raw" to install Container Linux with
the vmware OEM.

Use base DISK_LAYOUT to reduce the minimum disk size.

Fixes coreos/bugs#359.
2017-01-19 14:34:53 -08:00
Nick Owens
2b46ddc20c build_library: pass force_size when converting disks to vpc
this stops qemu-img info from choking on vpc-type images made with our
patched qemu.
2016-11-28 17:17:20 -08:00
Bassam Tabbara
b0bf230433 add support for Parallels Desktop VM images
Two new image types have been added:

1. parallels - this produces VM images with extension pvm.tgz that can be loaded directly into Parallels Desktop
2. vagrant_parallels - this produces a Vagrant box that works with parallels vagrant provider (http://parallels.github.io/vagrant-parallels/)

Just like vmdk and others we rely on qemu-img to convert raw images. Support for Parallels disk images was added to qemu-img in version 2.4.

I also removed the box files from the actual image since there are not needed in /usr/share/oem.

Signed-off-by: Bassam Tabbara <bassam.tabbara@quantum.com>
2016-10-26 09:25:45 +02:00
David Michael
5b640e79fd image_to_vm: build and install a GCE agent ACI 2016-10-18 11:37:45 -07:00
David Michael
e715a9ca3c image_to_vm: support generating and installing an OEM agent ACI
The ACI root is created by reusing the create_prod_image function
to install a base meta-package.  It then runs a script to customize
the file structure as required by agent software (if necessary),
writes a manifest file from a supplied template, and then packages
it all into a tar file.
2016-10-18 11:37:33 -07:00
Nick Owens
1fd668ef0d build_library: fix grub loader copy for arm64 2016-05-12 12:05:11 -07:00
Michael Marineau
9a468bf37d vm_image_util: ensure UEFI firmware is installed before reading it 2016-05-10 12:02:56 -07:00
Nick Owens
a03cef558e build_library: copy grub.efi in pxe/cpio generation 2016-04-27 15:54:59 -07:00
Nick Owens
e0524264b9 build_library: generate pflash files for qemu_uefi from edk2-armvirt 2016-04-21 10:45:15 -07:00
Michael Marineau
66ea5974ce image_to_vm: add --getbinpkg option
Now image_to_vm can be used without first running build_packages.
2016-02-23 13:06:49 -08:00
Michael Marineau
744faa2df4 vm_image_util: oems are always from ebuild, others always from binary
This resolves two issues:
 - Large dependencies are *never* built during image_to_vm,
   build_packages must now handle that.
 - Since build_packages can't resonably do the oem-* packages (they all
   conflict with eachother) we do want to build them from the ebuild.
   This is now enforced so a old binpkg is never used. This resolves
   confusing issues people have always had while when editing oem
   ebuilds but getting a stale build instead.
2016-02-23 12:50:52 -08:00
Michael Marineau
707c6c6f12 vm_image_util: add a small openstack image for wedging into tiny places
Most vm images have an expanded root partiton to make them practical to
use as-is. Some deployments may not want such a large root, putting most
storage on other volumes.
2016-02-16 11:22:59 -08:00
Michael Marineau
5ba4c7181d *: drop usage of COREOS_VERSION_STRING
This variable was semi-deprecated ages ago so `version.txt` could follow
a similar variable naming pattern to `os-release`. Finally drop usage of
it here in favor of `$COREOS_VERSION`.
2016-02-15 13:55:55 -08:00
Andrej Rosano
8ba400eca7 Add arm64 qemu image support
Allows image_to_vm.sh to build also arm64 qemu images.

Signed-off-by: Andrej Rosano <andrej@inversepath.com>
2015-09-17 14:16:18 +02:00
Alex Crawford
32277dd006 build_library: fix comment 2015-09-08 16:15:50 -07:00
Dong Xie
c04e2cb227 init commit of interoute oem build 2015-09-05 00:32:50 +01:00
Michael Marineau
d27bc5aeb3 Revert "build_library: set osType to otherlinux-64"
This reverts commit 39bb800f16.

This change disabled a number of features so it isn't suitable for the
generic VMware templates. We need to re-trace our steps to list exactly
what tools/systems weren't accepting the linux26 type.
2015-07-16 12:34:33 -07:00
Sam Tresler
01176c2d96 adding packet to the available OEMs 2015-06-29 16:52:36 -04:00
Alex Crawford
8cd6d7f8da image_to_vm: fix OVF filename 2015-06-09 18:56:49 -07:00
Alex Crawford
ebb1ad586f build_library: add support for VMware OVF
This moves the functionality of mkova.sh (within the SDK) directly into
the build library.
2015-06-01 16:45:42 -07:00
Alex Crawford
39bb800f16 build_library: set osType to otherlinux-64 2015-05-26 18:35:27 -07:00
Michael Marineau
12c53080a4 vm_image_util: add support for VMDK images for EC2 AMIs
Lets us avoid larger data transfers when importing images.
2015-04-21 16:27:37 -07:00
Matthew Garrett
707803ed43 Add support for Secure Boot images and sign unofficial builds with test keys
Add qemu_uefi_secure target for building Secure Boot images. These are
identical to qemu_uefi images with the exception that the test keys have
been installed into the flash image, enabling Secure Boot by default. In
addition, sign the grub binary with the test keys during build when
producing unofficial images.
2015-04-15 11:11:24 -07:00
mischief
7d2ee0e33c vm_image_util.sh: use correct group name in production images with no writeable /etc 2015-03-02 17:13:24 -08:00
Alex Crawford
6013d8acc0 vm_image_util: add cloudsigma 2015-02-13 23:50:05 -08: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
Yuya Kusakabe
44adc99dc6 vm_image_util: add niftycloud 2014-12-13 12:14:19 +09: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
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
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
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
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
e361e9170e vm_image_util: Enable new VMware OEM package. 2014-10-08 20:40:45 -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
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
Antoine Coetsier
b9dc44da2e remove boot_kernel option for KVM in exoscale 2014-09-08 23:23:13 +02:00
retrack
ddccb5072b exoscale builder 2014-09-05 09:56:48 +02: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
Michael Marineau
4228c591a8 disk_layout: mount ESP to /boot instead of /boot/efi
We have long since stopped installing anything to the /boot directory of
the root filesystem. Mount the ESP partition to /boot for consistancy
with the discoverable partition spec.
2014-08-29 13:57:42 -07:00
Alex Crawford
f835e1e0fd digitalocean: Add image format for digitalocean 2014-08-26 17:30:00 -07:00
Michael Marineau
5c590f2a6d vm_image_util: use only ttyS0 for the console on GCE instances 2014-08-18 16:09:24 -07:00
Alex Crawford
5d13999fbb onmetal: Up the TOTALTIMEOUT setting
Bump TOTALTIMEOUT to 5 minutes
2014-08-06 19:22:15 -07:00
Alex Crawford
3740cc0504 onmetal: Up the TIMEOUT and TOTALTIMEOUT settings
Bump TIMEOUT to 15 seconds and TOTALTIMEOUT to 2 minutes
2014-08-06 18:45:05 -07:00
Petr Hosek
95e5912b14 feat(vm_image_util): CloudStack support
Provide initial support for CloudStack.
2014-07-24 17:47:57 -07:00
Michael Marineau
3ee48fac14 onmetal: Replace boot_kernel's args
The console should be on ttyS4 and just in case blacklist mei.
2014-07-24 11:57:57 -07:00
Alex Crawford
abf24663a2 Merge pull request #305 from crawford/fillings
Pull teeth. Replace with onmetal.
2014-07-21 20:44:36 -05:00
Alex Crawford
712c1a3d9b Pull teeth. Replace with onmetal. 2014-07-21 18:40:36 -07:00
Michael Marineau
2a004f0081 qemu: set DHCP hostname based on image name and version
Provides an easy way to test this setting hostname from DHCP, most other
systems rely on it.
2014-07-21 16:43:48 -07:00
Michael Marineau
eeec7e1c65 vm_image: switch xen disk format back to raw
VHD was just for testing, raw is more useful for published images.
coreos-install will now be able to install working xen instances:

    coreos-install -d /dev/xvda -o xen -c cloud-config.yml
2014-07-10 17:23:20 -07:00
Alex Crawford
17835eeb79 Merge pull request #263 from crawford/teeth
feat(teeth): Add new OEM and disk layout for teeth
2014-05-29 17:06:37 -07:00
Alex Crawford
d9afc85b0e feat(teeth): Add new OEM and disk layout for teeth 2014-05-29 16:46:27 -07:00
Alex Crawford
ed50f5fe0b feat(disk_util): Replace Resize() with Update()
The new Update() performs the same tasks as the old Resize()
in addition to formatting previously-unformatted partitions. This
allows children disk-layouts to repartition the base layout in
addition to resizing.
2014-05-29 16:46:27 -07:00
Michael Marineau
d408e3c1f5 fix(build_library): Finish conversion to new bucket layout.
I started to move board files under a boards/ directory similar to how
the SDK is under sdk/ but didn't do so everywhere. This should finish
the job so everything is consistent now.

Note: This prefix is only used in developer and buildbot uploads. When
final releases are copied to $channel.release.core-os.net it doesn't use
the prefix since a) I already published urls without the prefix and b)
no sdk files are ever posted to the public release locations.
2014-05-28 14:47:30 -07:00
Michael Marineau
822644fc54 feat(build_image): Add support for injecting a cloud config
The new --developer_data option can be used to specify a path to a cloud
config to bundle into the image. If none is provided but a shared user
password (for core) is set then generate a config to set that password.
This lets us use the same mechanism for setting the default password for
both disk and PXE images.
2014-05-17 16:23:18 -07:00
Michael Marineau
5417bd7ae3 fix(vm_image_util): Set correct group in Vagrant metadata. 2014-05-09 11:52:11 -07:00
Michael Marineau
33858859fb Merge pull request #238 from marineam/insecure
fix(vm_image_util): Don't use the full vagrant OEM on vmware_insecure
2014-05-03 14:19:20 -07:00
Michael Marineau
c4984b3c7c fix(vm_image_util): Don't use the full vagrant OEM on vmware_insecure
Only the key is needed, and currently the vagrant OEM is completely
broken outside of vagrant. This gets vmware_insecure images back into
the state that they were before cloud config came along. :)
2014-05-02 15:30:49 -07:00
Michael Marineau
3fdfe92b5d fix(vm_image_util): Fix building vagrant vmware fusion images. 2014-04-29 03:48:56 -04:00
Michael Marineau
8183430f6c feat(vm_image_util): Add Vagrant metadata file
This is required for Vagrant to recognize box versions:
http://docs.vagrantup.com/v2/boxes/versioning.html
2014-04-29 01:44:47 -04:00
Michael Marineau
39951946ca feat(vm_image_util): Add new build steps, update vagrant builds
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.
2014-04-28 19:52:24 -04:00
Michael Marineau
7f5b5baf22 maint(build_library): Remove special case code for -usr disk layouts
More cleanup now that amd64-generic is gone.
2014-04-26 14:45:28 -07:00
Alex Crawford
2662d0c784 Merge pull request #229 from crawford/master
fix(vm_image_util): Minor comment fix
2014-04-16 18:41:23 -07:00
Alex Crawford
9e72f6d187 fix(vm_image_util): Minor comment fix 2014-04-16 18:16:26 -07:00
Michael Marineau
b9c72ecda1 fix(vm_image_util): Fix DIGESTS path for compressed vhd images.
Missed this in eb72b6e5
2014-04-16 17:32:11 -07:00
Alex Crawford
9095908ca1 feat(vm_image_util): Adding support for openstack and brightbox
Added USE flags for specifying the provider (ec2, openstack, or brightbox).
2014-04-11 16:12:50 -07:00
Michael Marineau
58bac50d91 fix(vm_image_util): Remove fstab from PXE initrd
Using fstab made overriding it with kernel command line options like
root=/some/disk not work properly. A generator handles it now.
2014-04-04 16:58:43 -07:00
Alex Polvi
e3156672ce refactor to use _write_cpio_common 2014-03-31 16:08:29 -07:00
Alex Polvi
0d3cd4b417 feat(iso): add iso image format to image_to_vm 2014-03-31 15:49:57 -07:00
Michael Marineau
e2aaed1619 Merge pull request #209 from marineam/pxe
feat(vm_image_util): Add /usr/.noupdate flag file in PXE images.
2014-03-31 14:01:44 -07:00
Michael Marineau
cd00e6eafe Merge pull request #212 from marineam/gce
fix(vm_image_util): Default to larger vm (8GB) disk layout for GCE
2014-03-29 14:41:14 -07:00
Michael Marineau
17d22228f8 fix(vm_image_util): Default to larger vm (8GB) disk layout for GCE
GCE was using the base 3GB layout which isn't very useful for actual
machines.
2014-03-29 14:22:01 -07:00
Michael Marineau
e0cfea50fb fix(vm_image_util): Require OEM packages to be aware of /usr/share/oem
Installing to a temporary directory and then copying over the final
contents of /usr/share/oem allows more complicated OEM packages such as
python to be configured with --prefix=/usr/share/oem while previously
the atypical use of ROOT=/usr/share/oem would have complicated things.
2014-03-27 22:17:32 -07:00