Commit Graph

6454 Commits

Author SHA1 Message Date
Dan Bungert 5bb3874ba2
Merge pull request #1781 from dbungert/min-size-revisited
Min size revisited
2023-08-31 19:35:04 -06:00
Dan Bungert c8d57247c3 filesystem: log calculated min install size 2023-08-31 18:51:52 -06:00
Dan Bungert 224d9b5919 storage: classic and core have same minsize answer 2023-08-31 18:51:27 -06:00
Dan Bungert 727d395b5f api test: 10G is enough for the "flow" test 2023-08-31 18:51:07 -06:00
Dan Bungert c7a5f2504f examples: update desktop install-sources 2023-08-31 18:50:55 -06:00
Dan Bungert 7cbf00e14b sizes: change minimal install size recommendations
Remove swap space size allocation suggestion.  It often won't be used on
smaller installs anyhow.
Drop /boot size to the min instead of max.
Add esp size min into the mix.
(which more than cancels out the /boot change to min)
Reduce padding to max(2G, 50% source min)
2023-08-31 18:48:42 -06:00
Olivier Gayot 694588ca25 oem+drivers: fix wrong order or lower layers when building overlays
When doing an offline install, ubuntu-drivers would sometimes list a
package that is available in the archive but not present in the pool.

This is not something we would expect since we run apt-get update (with
only the pool configured when offline) in the install tree.

However, it turned out that we create the overlay with the lower layers
specified in the wrong order - which essentially makes APT indexes
visible in the source tree also visible in the OEM/third-party driver
overlay.

When calling setup_overlay(lowers=[a, b, c]), Subiquity invokes mount
with lowerdir=c🅱️a (in the reverse order).

This means that c is top, b is middle and a is bottom.

For the OEM and third-party drivers, we build overlays that are based
on:

 * the source tree
 * the configured tree
 * the install tree

Unfortunately, we were doing the opposite. Fixed by reversing the order of
the lower layers.

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-31 17:03:54 +02:00
Dan Bungert b4f9029b41
Merge pull request #1778 from dbungert/lp-2033496-grub-pc
snapcraft: rev curtin
2023-08-30 09:59:06 -06:00
Dan Bungert ec5e5f576c
Merge pull request #1777 from dbungert/refresh-vs-autoinstall
refresh: fix crash during autoinstall
2023-08-30 09:32:52 -06:00
Dan Bungert f052626f60 snapcraft: rev curtin
For grub-pc LP: #2033496 fix.
2023-08-30 09:26:53 -06:00
Dan Bungert b880843a48
Merge pull request #1766 from ogayot/recovery-key
Add API and TUI support for LUKS recovery key
2023-08-30 09:25:50 -06:00
Olivier Gayot 2d8a2b669e filesystem: add GUI support for recovery-key
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-30 16:45:42 +02:00
Olivier Gayot d8ebc56b69 filesystem: add API support for LUKS recovery key
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-30 16:45:42 +02:00
Olivier Gayot c210b93458 filesystem: store the root directory in the filesystem model
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-30 16:45:42 +02:00
Olivier Gayot ab626fd423 filesystem: add RecoveryKeyHandler object
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-30 16:45:42 +02:00
Olivier Gayot 108a308534 snapcraft: bump curtin for recovery key support
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-30 16:45:42 +02:00
Olivier Gayot 67d22a67a2 storage: add GET endpoint to generate a recovery key
Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-30 11:29:00 +02:00
Dan Bungert 3e9de290be refresh: fix crash during autoinstall
Controllers have started, but we have decided that no refresh check
is needed, so no check_task was started (or assigned).

GET /refresh is called, resulting in:
DEBUG subiquity.server.server:446 request to /refresh?wait=true crashed
Traceback (most recent call last):
  File "subiquity/server/controllers/refresh.py", line 233, in GET
    await self.check_task.wait()
AttributeError: 'NoneType' object has no attribute 'wait'
2023-08-29 23:22:27 -06:00
Dan Bungert ba506e2c01
Merge pull request #1776 from dbungert/dryrun-default-uefi
server: default uefi on dryrun
2023-08-29 17:03:05 -06:00
Dan Bungert db763c2a4e server: default uefi on dryrun
Detecting the bootloader is an obvious choice for real installs, but
is a source of glitches in CI.  Default to UEFI, and if tests want
something else they should pass a specific --bootloader.
2023-08-29 09:28:04 -06:00
Dan Bungert dd620b40b3
Merge pull request #1772 from dbungert/apt-deb822
snapcraft: update curtin, +python3-debian
2023-08-28 21:13:03 -06:00
Michael Hudson-Doyle c8fde0745b
Merge pull request #1775 from mwhudson/no-uefi-no-core-boot
Do not offer core boot based installs unless bootloader is UEFI
2023-08-29 14:20:52 +12:00
Michael Hudson-Doyle 9ff0a8b0ae Do not offer core boot based installs unless bootloader is UEFI 2023-08-29 14:04:04 +12:00
Dan Bungert 3a2044593c
Merge pull request #1774 from dbungert/lp-2033244-capability-order
filesystem: capability flags in a specific order
2023-08-28 19:35:07 -06:00
Dan Bungert edde096540 filesystem: capability flags in a specific order
Show DIRECT first, list CORE_BOOT ones later.
LP: #2033244
2023-08-28 19:02:26 -06:00
Dan Bungert f440e6dd1f
Merge pull request #1773 from dbungert/zfsutils-linux
install zfsutils-linux if needed
2023-08-28 18:38:46 -06:00
Dan Bungert 0bbec68bd9 installdeps: use confnew to workaround upgrade 2023-08-28 12:59:24 -06:00
Dan Bungert ad881dc948 pkghelper: dry run handling 2023-08-28 12:59:24 -06:00
Dan Bungert 18710aef48 runtests: +zfs 2023-08-28 12:59:24 -06:00
Dan Bungert 67102261c3 install: live pkgs can be installed in parallel
Split packages that must be done early from ones that can be done
in parallel with early install steps.
2023-08-28 12:59:24 -06:00
Dan Bungert 96c0c91d8a storage: trigger zfsutils-linux install if zpools
pre-Mantic installs can now zfsroot without autoinstall workarounds.
2023-08-25 16:35:56 -06:00
Dan Bungert aa27b33820 generalize live system package install
Add live_packages model method where install models may specify
packages needed in the live system.  Move efibootmgr there.
2023-08-25 16:35:50 -06:00
Dan Bungert ff990df628 storage: move reset_partition to model 2023-08-25 16:25:34 -06:00
Dan Bungert 443c87dc91
Merge pull request #1771 from dbungert/esb-feature-flag
several: add --no-enhanced-secureboot flag
2023-08-25 12:33:12 -06:00
Dan Bungert 5cdf879a55 several: add --no-enhanced-secureboot flag
It disables all core boot types really.  But this is the only planned core boot type at
this point.
2023-08-25 12:07:55 -06:00
Dan Bungert 9467cd5713 snapcraft: update curtin, +python3-debian
Add sources.list in deb822 support.
2023-08-25 11:15:18 -06:00
Dan Bungert 05892f41c7
Merge pull request #1770 from dbungert/zfs-zsys-datasets
Create zpools / zfs datasets like ubiquity does
2023-08-25 07:17:24 -06:00
Dan Bungert fc3f179b99
Merge pull request #1769 from dbungert/bind-patch
scripts: add bind-patch.sh
2023-08-24 20:56:36 -06:00
Dan Bungert c652bde6f1 filesystem: create zpools/zfses like zsys-setup 2023-08-24 17:42:09 -06:00
Dan Bungert 65bd6752fa filesystem: add create_zfs helper 2023-08-24 17:42:09 -06:00
Dan Bungert ee589e34f1 filesystem: support default_features 2023-08-24 17:42:09 -06:00
Dan Bungert c73fac697e utils: add gen_zsys_uuid
Add gen_zsys_uuid, to generate a uuid of the same form as used in the
ubiquity zsys-setup script.
2023-08-24 17:42:09 -06:00
Dan Bungert c7eea37546 curtin: rev for zpool `key: null` syntax 2023-08-24 17:42:09 -06:00
Dan Bungert 451a9f3eb8
Merge pull request #1768 from dbungert/core-no-network
models: if core, do not require network
2023-08-21 15:32:32 -06:00
Michael Hudson-Doyle 76979c5fcf
Merge pull request #1765 from mwhudson/gap-min-size
Use the first fitting gap for ESP, instead of the largest gap
2023-08-22 09:22:04 +12:00
Dan Bungert 6cd151d249 scripts: add bind-patch.sh
scripts/bind-patch.sh is useful for modifying the snap in the live
environment, for quickly testing changes or for things that are too
obscure to test in other ways.
2023-08-21 11:42:24 -06:00
Dan Bungert b74d365915 models: if core, do not require network 2023-08-21 09:46:04 -06:00
Olivier Gayot a23755268a
Merge pull request #1767 from ogayot/fix-wants-oem-kernel
oem: fix IndexError when using OEMController.wants_oem_kernel
2023-08-18 13:04:16 +02:00
Olivier Gayot bf42341155 oem: fix IndexError when using OEMController.wants_oem_kernel
Traceback (most recent call last):
    File "subiquity/server/controllers/oem.py", line 161, in load_metapackages_list
      self.model.metapackages = [
    File "subiquity/server/controllers/oem.py", line 164, in <listcomp>
      wants_oem_kernel=await self.wants_oem_kernel(
    File "subiquity/server/controllers/oem.py", line 115, in wants_oem_kernel
      flavor = line.split("=", maxsplit=1)[1].strip()
  IndexError: list index out of range

Signed-off-by: Olivier Gayot <olivier.gayot@canonical.com>
2023-08-18 12:26:20 +02:00
Michael Hudson-Doyle 778516a75c rename new function to first_gap_with_size 2023-08-18 15:29:20 +12:00