Skip to content

Introduce sysext features #19

@JohnMertz

Description

@JohnMertz

Given that the primary installation target is VMs, we don't really need to ship any extra firmware, so I just removed it all. This will be an issues for bare hardware installations, but I've discussed using sysext for additional features previously and this is a very good, low-stakes (because it is not officially supported), place to get started with that.

The basic plan is:

  • - Set up repos for each sysext extension. eg. firmware-amd-sysext which builds a squashfs from the upstream Debian package and hosts them with Releases.
  • - Host a metadata.json file alongside the extensions which indicates at least: the date it was built, whether it can be hot-(un)merged, and the URL to check for new versions (this will allow for updates and migrations in the future).
  • - Bundle manifest file with the base image which enumerate the available extensions, the URL to download them from and conditions where the extension should be installed automatically.
  • - Create a script to manually install/remove extensions, automatically install those which are recommended, and update those which have newer versions. It also needs to take whatever actions are flagged for post-installation.
  • - Run this script upon each reboot and weekly (~10AM UTC on Saturday to coordinate with when extensions are updated) with a systemd timer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions