What follows is a public spec related to the Ubuntu Server seeds. It does not contain specific definitions about seeds, how they relate to the ISOs, nor a long history. It is an implementation spec to show changes planned for 25.10. This is separated into sections: changes for 25.10 and Future. there are also tags with => showing expected change times. Anything in the future is very loose, while those marked for 25.10 will have an MP up in short time. Now on to the spec.
Server Seed
Abstract
Ubuntu Server seeds contain duplication between them (minimal and âfull-fatâ), repetitive tooling (duplication of functionality), and nothing in the supported-server seed, which defines packages in main, but not seeded into an ISO. The goal of this document is to define a set of seeds that properly define opinionated minimal and âfull-fatâ server ISO installations and the set of supported by server team software.
Rationale
The Ubuntu server seed has not been evaluated in quite some time. The goal is to trim down installs to what is required and useful. There is also an evaluation of âis this still supported?â This spec aims to document a way forward that creates a default Ubuntu Server installation that serves a broad audience while trimming the total installed packages.
Specification
The Seeds
There is server, server-minimal, server-live, and supported-server. Below there is also discussion âof the poolâ
- Server-minimal must define the smallest amount of packages to have an Ubuntu up and running
- No editors, no human niceties, etc
- Server must define a fully-functional, opinionated, performant, easy to manage Ubuntu server
- Server-live must define packages available for users in an install environment. These are tools the installer requires
- Supported-server are packages not a part of the install media or the meta-packages
- âThe poolâ are packages made available in the Ubuntu installer for setup and installation, based not only on what the installer may need, but also the choices a user may make. They are needed on disk to support offline-installations
25.10 Changes
Terminal multiplexer
Both screen and tmux are available. Tmux is the newer of the two. Move screen to supported and leave tmux the opinionated install.
=> 25.10
Byobu
Remove byobu entirely, letting it fall into universe. Server team will stay subscribed and help triage bugs. Upstream support has stalled in the recent year(s), and while itâs a ânice to haveâ set of additions, itâs not a required piece of functionality on a server, and does not fit into Ubuntuâs current plans.
=> 25.10
cloud-guest-utils
Stated as being pulled in for growpart for resizing partitions. Why? What is the context here? Is it part of the subiquity experience again? We (Dan Bungert and I) do not believe this is true. Is it part of MAAS and used for resizing on deployment? The use case isnât discussed. Maybe vmware thin disk provisioning?
Cloud-init depends on it from cloud-init-base as it might use it.
Cloud-init will keep it in main and on images where it is present.
=> 25.10
dirmngr
As a standalone, Iâm a little confused. I thought perhaps apt required it, but it doesnât (only needed gpgv for verification). gnupg relies upon dirmngr and gunpg is seeded. We can drop dirmngr from the direct seed since gnupg will bring it in appropriately.
Drop from seeds, will be kept via GPG until it is no more needed.
=> 25.10
The Future
Curl and wget
Questions questions. wget is listed as âfetch data from the command line.â curl is the same. wget is âeasier to useâ out of the box. Gut says remove wget from server, put it in supported. This change will cause a large amount of issues â I question the wisdom in doing it, maybe waiting for 26.10 (first post LTS release, 1.5 years to bake)
=> 26.10 possibly
MAAS Requirements
This is an interesting case.
-
MAAS is, at this time, technically a âcloud-imageâ
-
There are 6 packages listed as ârequired for MAASâ
- lvm2
- open-iscsi
- bcache-tools
- cloud-initramfs-copymods
- cloud-initramfs-dyn-netconf
- overlayroot
-
open-iscsi is used as a default for Oracle Cloud images as well, but thatâs a CPC issue
- Currently installed in the build hook, not as part of a seed (itâs only one image)
- open-iscsi is in the server-minimal seed
-
server-minimal includes a portion of the MAAS requirements as well
- bcache-tools
- lvm2
- Open-iscsi
Maas team already does customization on the images CPC sends them, if needed they can add more there.
Reaction
- Keep lvm2, open-iscsi
- To pool: Bcache-tools
- cloud-initramfs-copymods, cloud-initramfs-dyn-netconf, overlayroot, find out info from MAAS
- If strictly needed, figure out a new MAAS seed?
- If not, remove
=> 26.10
Filesystem tools (btrfs-progs, xfsprogs)
Need to evaluate their need â is it about âneed in the pool, and available based on subiquity options?â or ârequired default functionality.â Having more things be available but not a part of the meta-package or installed everywhere makes a ton of sense. zfs is in server-ship-live.
recommendation is to move filesystem tools to the pool, available for use by curtin and the installer when detecting a specific filesystem existing or setting a specific filesystem during installation.
- Needs installer change to tolerate it. It may be a no-op as curtin is already equipped to do this work. We (Dan Bungert and I) believe it âshould just workâ but lots of testing will need to be done.
- Zfs is an example of what could be.
=> 26.10
open-vm-tools
I wish there was a way to put this in the pool, and know if the installer is being run in an VMWare setup. Iâd also love for it to be in a specific vmware guest image rather than seeded everywhere. This has caused major problems in the past (having an extra agent running in a cloud-image, which can still happen because cloud-image seed installs ubuntu-server). Personally, moving to supported and having it in the pool, with a dynamic installation if in a VMWare guest setup makes the most sense, but I donât see that happening until 26.10 at the earliest (donât break an LTS and there will need to be roadmapped work in the installer and other things).
VMware can use any image (OVA by CPC) or ISO (with installer experience). Thatâs where some complexity rolls in as we need to ensure that that open-vm-tools is available for launching an instance. Thereâs also questions about portability. However, the same is true when thinking across clouds â by default, an Ubuntu instance running in Azure does not have the google-guest-agent installed. To move a cloud instance from Azure to Google one would need to 1) install google-guest-agent; 2) remove walinuxagent.
- Needs installer effort to tolerate
- Needs coordination with VMware and other interested parties to ensure we are always doing the right thing (for installation, portability, etc).
=> 26.10