Commit graph

243 commits

Author SHA1 Message Date
Doug Rabson
af96dc44e1 release: Add missing dependencies in the minimal OCI image
The pkg-bootstrap binary depends on fetch.

Approved by:	re
Reviewed by:	cperciva, emaste, bapt
Differential Revision:	https://reviews.freebsd.org/D47661
MFC after:	1 day

(cherry picked from commit ca1f1d2c9419a5d66929ca6880b69901254645a6)
(cherry picked from commit 4a768794b8)
2024-11-21 15:42:53 -08:00
Doug Rabson
8a688fcc24 release: add optional OCI images
This adds three OCI archive format files to the release containing
FreeBSD base images suitable for static linked, dynamic linked and shell
workloads. The shell image also contains pkg-bootstrap and can be easily
extended by installing packages (including pkgbase packages).

Approved by:	re (cperciva)
Reviewed by: dch, cpersiva, jlduran, zlei
Differential Revision: https://reviews.freebsd.org/D46759
MFC after: 2 days

(cherry picked from commit d03c82c28da86e0812b98b051d24ae5980804ad7)
(cherry picked from commit 6686056ca3)
2024-11-15 15:22:37 -08:00
Colin Percival
28b881840d ACPI: Add ACPI_Q_AEI_NOPULL quirk and use in EC2
AWS Graviton [1234] systems have a bug in their ACPI where they mark
the PL061's GPIO pins as needing to be configured in PullUp mode (in
fact the PL061 has no pullup/pulldown resistors); this flag needs to
be removed in order for _AEI objects to be handled on these systems.

Reviewed by:	Ali Saidi
Approved by:	re (kib)
MFC after:	1 week
Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D47239

(cherry picked from commit 2f3f867ac6dd7ff3769366b828b79c44b38828e1)
(cherry picked from commit 5fa51c3653)
2024-11-03 08:15:22 -08:00
Dave Cottlehuber
44ef88398e release: increase VMSIZE for Oracle images
While OK for 14.x, both 13.x and 15.0 are failing in snapshot
builds.

Reported by:	cperciva
Sponsored by:	SkunkWerks, GmbH

Reviewed by:	emaste
Approved by:	cperciva
Differential Revision:	https://reviews.freebsd.org/D47285

(cherry picked from commit 89311e6f987ebb1a968eee6fe594b11bfb91977a)
2024-10-31 20:48:39 +00:00
Dave Cottlehuber
77b296a258 release: move OCI to ORACLE
This allows future releng tooling to use OCI for the industry
standard Open Container Initiative tooling, reducing potential
for confusion.

Approved by:	cperciva
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D46975

MFC after:	3 days
Sponsored by:	SkunkWerks, GmbH

(cherry picked from commit 1be84d745bcc11b766ac1fa03afd2c8ea8771737)
2024-10-31 19:18:44 +00:00
Jose Luis Duran
62cd7d538d release: basic-cloudinit improve default image
- Add the firstboot-freebsd-update package, as long as we do not have
  pkgbase, this is needed
- Support SLAAC by default to complement DHCPv4 (use SYNCDHP instead)

Signed-off-by: Jose Luis Duran <jlduran@gmail.com>
(cherry picked from commit 120740221fd4a4577e63e6c279f9873cabe449d0)
2024-10-08 09:04:02 +02:00
Colin Percival
82ade8ed7e EC2: Set entropy_efi_seed_size to 64
This dramatically improves boot speeds on Graviton 2 instances.

MFC after:	1 week
Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46636

(cherry picked from commit 714a6d436819d446e01d1e4741fbe1089a23fe57)
2024-09-29 08:24:52 -07:00
Colin Percival
953142d6ba EC2: Add new "small" AMIs
These are the same as the standard "base" images except:

* They don't have kernel or world debug symbols,
* They don't have FreeBSD tests,
* They don't have 32-bit libraries,
* They don't have LLDB,
* They don't have the Amazon SSM Agent pre-installed,
* They don't default to installing the awscli at first boot.

This reduces the amount of disk space in use when the EC2 instance
finishes booting from ~5 GB to ~1 GB.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46509

(cherry picked from commit 647299caa06e38622dc05a4358f9407b62a9bdda)
2024-09-10 22:28:59 -07:00
Colin Percival
6a9e7f6a1d EC2: Make amazon-ssm-agent optional
Move it from VM_EXTRA_PACKAGES in ec2.conf to VM_EXTRA_PACKAGES in
ec2-{base,cloud-init}.conf

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46508

(cherry picked from commit 40ff0753abb9c00b5f1e5df9ea00c9fdded55ac4)
2024-09-10 22:28:59 -07:00
Colin Percival
1dd6f34fb7 EC2: Move network config into a separate function
Having the "base" FreeBSD network configuration (aka. what is used
when not using cloud-init) in ec2.conf will allow us to reuse it in
other AMIs.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46507

(cherry picked from commit f961ddb28d6909d4c67e3e0b6b60498bbcbf64cb)
2024-09-10 22:28:59 -07:00
Colin Percival
c8d5eda2d4 vmimage.subr: Pass $INSTALLOPTS to install*
This makes it possible for a VM build configuration file to pass
options to make installworld/installkernel/distribution, e.g.
WITHOUT_DEBUG_FILES=YES in order to produce smaller images.

Note that these options are only applied at install time, not at
build time (since the same build is installed into many different
VM images), so not all src.conf options are usable here.

Sponsored by:	Amazon
Differential Revision:	https://reviews.freebsd.org/D46506

(cherry picked from commit 81d3df02bcf5ed6e41a91fd9fbc3b81cfe809ff3)
2024-09-10 22:28:59 -07:00
Colin Percival
94f92b6e30 EC2: Bump AMI size to 8 GB
8 GB root disk images make FreeBSD/EC2 boot much faster than 6 GB
root disk images.

MFC after:	2 days
Sponsored by:	Amazon

(cherry picked from commit 2dac89aee3304dd6eda9b267a0ad1cc6621a7094)
2024-08-20 18:30:35 -07:00
Colin Percival
7300dec10a EC2: Set dhclient_arpwait="NO"
The DHCP server in EC2 knows exactly which system should be using
which IP address (and in fact EC2 has source IP filtering on by
default) so there's no point ARPing an address before using it.

The preceding commits (changing the ARP wait time from 2 s to 250 ms)
and this one (eliminating the wait entirely in EC2) reduce the time
required for a newly launched FreeBSD/EC2 instance to launch by 2
seconds.

Discussed with:	icattard
MFC after:	10 days
Sponsored by:	Amazon

(cherry picked from commit 54a543d5ea3a58aee2f001498376127efea24bd2)
2024-08-19 21:57:09 -07:00
Colin Percival
7855227a3f EC2: Bump AMI size to 6 GB
This week's cloud-init ZFS snapshots ran out of disk space.

(cherry picked from commit 8a735ffdf04936c6785ac4fa31486639262dd416)
2024-07-12 10:17:28 -07:00
Colin Percival
c5342be39c release: Rework vm_extra_pre_umount
The vm_extra_pre_umount function in vmimage.subr served two purposes:
It removed /etc/resolv.conf and /qemu (if cross-building), and it
provided a function for cloudware to override in order to make cloud
specific changes to the filesystem before constructing a disk image.

This resulted in a number of bugs:
1. When cross-building, the emulator binary was left as /qemu in the
Azure, GCE, Openstack and Vagrant images.
2. The build host's resolv.conf was left as /etc/resolv.conf in the
basic-ci and basic-cloudinit images.
3. When building GCE images, a Google-specific resolv.conf file was
constructed, and then deleted before the disk image was created.

Move the bits needed for running code inside a VM staging directory
from vm_install_base into a new vm_emulation_setup routine, and move
the corresponding cleanup bits from vm_extra_pre_umount to a new
vm_emulation_cleanup routine.

Remove the /qemu and /etc/resolv.conf cleanups from the cloudware
configuration files (where they exist) since we will now be running
vm_emulation_cleanup to remove those even when vm_extra_pre_umount
has been overridden.

Override vm_emulation_cleanup in gce.conf since in that one case (and
*only* that one case) we don't want to clean up resolv.conf (since it
was constructed for the VM image rather than copied from the host).

releng/14.1 candidate.

MFC after:	1 week
Sponsored by:	https://www.patreon.com/cperciva

(cherry picked from commit 0b1c5628c74a37e2aa2aa3769c606d3e826302f8)
2024-05-13 15:24:28 -07:00
Mina Galić
2bd006237f ec2: homedir bug fixed in 24.1.4
This bug fix is due to be released in Quarterly:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275896

While here, overwrite the `doas` stanza, which needs to correspond to
the user that we are creating.

MFC after:	5 days
Sponsored by:	The FreeBSD Foundation
Pull Request:	https://github.com/freebsd/freebsd-src/pull/1163

(cherry picked from commit 2039437c7655c9cd481c6c4ad92b6bc2a945dd14)
2024-04-16 22:43:27 -07:00
Baptiste Daroussin
227e7a205e release: add basic cloudinit images
Provide both zfs and ufs images which a 1MB partition reserved for the
config drive wearing a GPT Label "config-drive" to allow consumer to
know where they should push the config drive on the provided image.

This has been tested on OVHCloud baremetal via "bring your own image"
Also tested on openstack

Reviewed by:		emaste
Sponsored by:		OVHCloud
Differential Revision:		https://reviews.freebsd.org/D44369

(cherry picked from commit 78b6117dac99c80fe618979fef4ef322b97415fa)
(cherry picked from commit a977444652a59332c53b652b912c38a1d1802b58)
2024-04-11 14:05:10 +02:00
Mitchell Horne
7a3d7b29f8 release: de-duplicate arm.subr fstab logic
These days, the entries are the identical for GPT and MBR.

Reviewed by:	manu, karels, imp
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D43847

(cherry picked from commit 94b86c12f14e69ace1bffe23c15c77a7def23216)
2024-02-26 11:35:47 -04:00
Mike Karels
0c6e3bfd13 arm64/RPI: enable powerd by default on arm64-aarch64-RPI images
Most 64-bit Raspberry Pi models have a variable processor clock
speed that defaults to a slow speed (e.g. 600 MHz for a nominal
1.5 GHz clock).  This results in everything running slowly unless
or until powerd is started, and FreeBSD is then thought to be slow.
Enable powerd by default in /etc/rc.conf on the arm64-aarch64-RPI
images.  Tested on Raspberry Pi 3B+ and 4B so far.

PR:		256836
Reviewed by:	rgrimes
Differential Revision:	https://reviews.freebsd.org/D43296

(cherry picked from commit 4347ef60501f2a55ad31f7532ad903b81f3af18f)
2024-01-30 14:10:00 -06:00
Jose Luis Duran
3aa8b74da9 release: Add missing /var/crash ZFS dataset
This matches the layout from bsdinstall.

MFC after:	1 week
Fixes:	89585511cc ("release: Add support for creating ZFS-based VM images")
Pull Request:	https://github.com/freebsd/freebsd-src/pull/981

(cherry picked from commit adc215de9cabadb89eb4a1c99e047906eacaa58a)
2024-01-08 19:59:11 -05:00
Colin Percival
d9243c1ab3 EC2: Add experimental cloud-init images
Known issues:

1. The ec2-user user is created with a homedir of /usr/home/ec2-user
instead of /home/ec2-user; this appears to be a bug in cloud-init's
FreeBSD support.

2. Cloud-init configures IPv4 networking but not IPv6 networking.

releng/14.0 candidate.

Discussed with:	gjb
Reviewed by:	imp
MFC after:	5 days
Relnotes:	yes
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D41793

(cherry picked from commit 1f4ce7a39f0f4b0621ff55d228014ccddb366d37)
2023-10-03 10:28:18 -07:00
Colin Percival
f4576ea0d5 EC2: Split off reusable configuration bits
Split ec2-base.conf into ec2-base.conf and a reusable ec2.conf,
similar to how Vagrant flavours share a common vagrant.conf.

releng/14.0 candidate.

Discussed with:	gjb
MFC after:	5 days
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D41792

(cherry picked from commit fada6e2389fb62ff621a98fab7319e426da58b0b)
2023-10-03 10:28:18 -07:00
Colin Percival
a18905a9bf EC2: Flavour existing AMIs as "base"
Using the recently-added "cloudware flavours" mechanism, turn the
existing EC2 AMIs into a new "base" flavour.  The only user-visible
change is that AMI names now include the word "base".

releng/14.0 candidate.

Discussed with:	gjb
Reviewed by:	imp
MFC after:	5 days
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D41791

(cherry picked from commit 7494fb6b7d809257d4eb9eff06ce226143f27add)
2023-10-03 10:28:18 -07:00
Mark Johnston
1cc968931b release/ec2: Remove references to portsnap
We no longer install a default portsnap.conf, so the sed invocation just
generates an error.

Reviewed by:	cperciva
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D42003

(cherry picked from commit 63aa2e91342ead0495eada5667f413f0cf8eb56a)
2023-10-03 10:28:17 -07:00
Ed Maste
5623352ec0 release: remove inet blackhole sysctls from GCE config
Other cloud images do not do this, and it can produce confusing results.

Reviewed by:	Jose Luis Duran, delphij
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D41751

(cherry picked from commit b7528b16c6039a9f0af28f8f3ccdd6ea4eb7e604)
2023-09-08 15:39:09 -04:00
Warner Losh
d0b2dbfa0e Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
2023-08-16 11:55:03 -06:00
Colin Percival
395b9c9977 OCI: Bump image size to 6 GB
5 GB is no longer enough.

Sponsored by:	https://www.patreon.com/cperciva
2023-08-06 18:51:35 -07:00
Glen Barber
510fd83138 release: remove a stray backslash
PR:		272354 (related)
MFC after:	3 days
MFC with:	0ed426276f
MFC with:	cd8cad0ef5
Sponsored by:	GoFundMe https://www.gofundme.com/f/gjbbsd
2023-07-12 16:57:57 -04:00
Glen Barber
3f21d3e0ba release: update GCE configuration for python3
Reported by:	asomers
PR:		272354
MFC after:	3 days
Sponsored by:	GoFundMe https://www.gofundme.com/f/gjbbsd
2023-07-03 15:28:33 -04:00
Li-Wen Hsu
eb550615ef
release/azure: Update reference URL
Sponsored by:	The FreeBSD Foundation
2023-06-27 15:58:55 +08:00
Colin Percival
267411d164 EC2: Chase awscli package rename
MFC after:	1 week
2023-06-07 21:23:26 -07:00
Ed Maste
ae60012e46 release/oci.conf: add missing vm_extra_pre_umount() steps
vm.subr's default vm_extra_pre_umount removes /qemu and
/etc/resolv.conf.  When vm_extra_pre_umount is overridden these steps
need to be performed in the cloud-specific conf file.

PR:		271602
Reviewed by:	dch, lwhsu
Event:		Kitchener-Waterloo Hackathon 202305
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D40257
2023-05-24 13:11:07 -04:00
Mike Karels
d3c32c80a1 release/tools/vmimage.subr: switch zfs dataset from /usr/home to /home
Change the vmimage script for zfs to create /home as a dataset
rather than /usr/home, ala change to bsdinstall's zfs script.

Reviewed by:	markj
Differential Revision:	<https://reviews.freebsd.org/D40111
2023-05-23 07:18:58 -05:00
Ed Maste
4194bbb34c release: Report disk image filename
For someone new to the release bits it's not always clear what files are
being created. Report the disk image name explicitly.

Reviewed by:	gjb
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D39953
2023-05-03 16:58:22 -04:00
Ed Maste
4654ba28fb release: Remove "All Rights Reserved" from FreeBSD Foundation copyrights 2023-04-17 10:56:59 -04:00
Joerg Wunsch
57228a4933
ARM release build: enable IPv6 SLAAC by default
When building ARM release images, enable IPv6 SLAAC by default in
addition to IPv4 DHCP.

Unlike amd64 (and other desktop/server) releases, ARM releases on SoC
setups are usually deployed by just using the installation image, so
there is no interactive network configuration. Not having IPv6
included by default is kind of an anachronism these days, given that
FreeBSD with the KAME project once pioneered IPv6 technology.

MFC after:	2 weeks
2023-02-12 22:32:16 +01:00
Dave Cottlehuber
0af49f00b3 release/oci: add Oracle Cloud image builder
Provides an OCI (Oracle Cloud Infrastructure) release target for
Oracle's KVM-based VM implementation. Tested using 13.1-RELEASE,
primarily on Ampere CPU on A1.Flex VM shapes, but also works on
amd64 shapes.

- supports cloud-init and custom scripts
- provides a freebsd@ sudo-enabled user
- root user disabled over ssh & console

Approved by:    gjb
Reviewed by:    emaste
MFS after:      1 week
Sponsored by:   The FreeBSD Foundation
Sponsored by:   SkunkWerks, GmbH
Technical assistance from:  Oracle
Differential Revision: https://reviews.freebsd.org/D34746
2022-11-27 11:12:02 +00:00
Li-Wen Hsu
3bf53c4c8f
release(7): Enable zpoolupgrade rc script in ZFS based VM images
This will enable VM access to all ZFS feature automatically, only on a
newly installed or provisioned VM or cloud instance.

Reviewed by:	markj
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37283
2022-11-07 11:47:33 +08:00
Li-Wen Hsu
c711f3b453
release/azure: Don't use azure-agent deprovision to build image
Deprovision feature of waagent is used for preparing to capture a
running VM and turn it into a VM image.  Using it in the process of
building a VM image from scratch will cause some side effects such as
the hostname of the building host getting reset.

Remove calling the deprovision command and use a simpler way to fulfill
the requirements of the Azure VM image.

Sponsored by:	The FreeBSD Foundation
2022-11-04 03:17:43 +08:00
Mark Johnston
89585511cc release: Add support for creating ZFS-based VM images
The change extends vmimage.subr to handle a new parameter, VMFS, which
should be equal to either "ufs" or "zfs".  When it is set to ZFS, we use
makefs to create a bootable pool populated using the same dataset layout
as bsdinstall and "poudriere image" use.  The pool can be grown using
the growfs rc.d script, just as in UFS images.

This will make it easy to provide VM and cloud images with ZFS as the
root filesystem.  So far I did not do extensive testing of cloud images;
I merely verified that creation of ZFS-based AWS AMIs works and allows
me to create amd64 and arm64 EC2 instances with ZFS as the root
filesystem.

Reviewed by:	emaste, gjb
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34426
2022-10-28 17:00:24 -04:00
Warner Losh
1be88beabb release: link from /boot/msdos to efi
We need to do a relative link to efi instead of an absolute link into
the build tree.

Sponsored by:		Netflix
Reviewed by:		gjb
Differential Revision:	https://reviews.freebsd.org/D36941
2022-10-11 13:19:52 -06:00
Ed Maste
f4f6bc6367 Correct typo in soacceptqueue setting
I somehow introduced the typo when extracting one part of D34598.

Reported by:	Jose Luis Duran <jlduran@gmail.com>
Fixes:		9871ae6aa9 ("Track kern.ipc.somaxconn -> ...")
2022-10-11 13:03:04 -04:00
Jose Luis Duran
9871ae6aa9 Track kern.ipc.somaxconn -> kern.ipc.soacceptqueue rename
Fixes:		2bdf61ca29 ("Hide the unfortunate named sysctl...")
MFC after:	3 days
2022-10-11 12:46:46 -04:00
Warner Losh
62a7dae44d release: Use standard mount points for arm MBR boot images
Traditionally, we've used /boot/msdos for the MBR mount point for the SD
images that we produced. For GPT and bsdinstall, we've used
/boot/efi. Migrate to using /boot/efi for MBR as well and add a
/boot/msdos -> /boot/efi symlink for compatibility (which may disappear
before 14.0, but will remain on the stable branches).

When we first created the arm images, there was no EFI booting and the
FAT partion on an MBR image was used to hold the firmware, uboot.bin,
SoC config files and ubldr.  When we transitioned to uboot with EFI, we
put the loader files in the same partition. Later we standardized on
/boot/efi at about the same time we added GPT support to the RE produced
images. We left the MRB case as /boot/msdos for legacy reasons and since
it wasn't always EFI. Later, we dropped support of non-EFI booting on
the RE produced images, so the duality of /boot/msdos diminished even
more. Since so little secondary meaning remains, putting it all in
/boot/efi standardizes the location and reflects the RE images
better as using efi-only booting.

In addition, always label the msdosfs partion 'efi'. While a small
misnomer on some systems that store other files in the ESP, it was
requested in review for more consistency for similar reasons to the
mountpoint rename. There was no way to have an 'alias' or 'second label'
here, so this breaks compatibility. Since the images are self-contained,
this was judged to be an acceptable change.

Sponsored by:		Netflix
Reviewed by:		manu, allanjude, emaste, gjb
Differential Revision:	https://reviews.freebsd.org/D36635
2022-09-23 09:53:55 -06:00
Ed Maste
6b6367ba8f release: ensure enforce_chs sysctl is 0
We do not want CHS-based alignment for VM or SD card release images.

(Other images use makefs/mkimg, not kernel gpart and so do not depend
on this sysctl.)

Sponsored by:	The FreeBSD Foundation
Approved by:	re (gjb)
MFC after:	1 week
2022-08-09 14:21:34 -04:00
Glen Barber
45add40717 release: fix alignment for arm SoCs
MFC after:	3 days
Submitted by:	Mark Millard
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2022-08-08 10:59:29 -04:00
Colin Percival
1d2e46d408 EC2: Enable ephemeral swap by default
The latest version of the ec2-scripts package includes a completely
rewritten "use EC2 ephemeral disks for swap space" script.  Now that
we have something which works on recent versions of FreeBSD, turn it
on since it's a great way to use the ephemeral disks.

Note that the option for controlling this, ec2_ephemeral_swap_enable,
is not the same as the option (ec2_ephemeralswap_enable) used with the
previous ephemeral-swap script; this change was deliberate to avoid
astonishment for users who upgraded their ec2-scripts package and had
a setting left behind in rc.conf.
2022-06-08 15:50:30 -07:00
Alexander Motin
ed5d608911 Remove "/dev/" from geom name in gpart add command.
PR:		232462
MFC after:	1 week
2022-03-16 00:09:09 -04:00
Mark Johnston
c1b656ac55 release: Remove references to ChallengeResponseAuthentication
This sshd_config keyword was replaced by KbdInteractiveAuthentication in
openssh 8.7, though ChallengeResponseAuthentication is silently accepted
as an alias.  However, this means that the code in ec2.conf which
modifies a commented-out line no longer does anything.  Apply a minimal
fix.

Reviewed by:	cperciva, emaste
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34400
2022-03-01 08:54:55 -05:00
Warner Losh
4e46c6fb35 release: Don't install ubldr.bin
ubldr.bin was obsoleted by our uboot ports last year, so this is
completely unused in the default config (some customers still use
it, but that's not relevant to this script). Don't copy it at all
since it won't be used for re@ produced images.

Sponsored by:		Netflix
Reviewed by:		kevans, gjb (re@)
Differential Revision:	https://reviews.freebsd.org/D34192
2022-02-07 13:19:20 -07:00