-
Notifications
You must be signed in to change notification settings - Fork 106
sru-exception: add sru exception page for HWE virtualization stack #631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
9061147
b0a74a5
d5f6fc5
20d7cfc
a9a186b
2e51e5f
7597b3d
8aeee08
e11b68c
42059f1
263acd2
c852e45
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,177 @@ | ||
| .. _reference-exception-VirtualizationUpdates: | ||
|
|
||
| Virtualization Updates | ||
| ====================== | ||
|
|
||
| This document describes the policy for updating virtualization components in a stable, | ||
| supported release starting from Ubuntu Resolute 26.04. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| This cover the following list of source packages: | ||
|
|
||
| - `qemu-hwe <https://launchpad.net/ubuntu/+source/qemu-hwe>`__ | ||
| - `libvirt-hwe <https://launchpad.net/ubuntu/+source/libvirt-hwe>`__ | ||
| - `edk2-hwe <https://launchpad.net/ubuntu/+source/edk2-hwe>`__ | ||
| - `seabios-hwe <https://launchpad.net/ubuntu/+source/seabios-hwe>`__ | ||
|
|
||
| Rationale | ||
| --------- | ||
|
|
||
| With the advent of hardware-assisted virtualization in modern CPUs, the | ||
| virtualization stack (kernel KVM, QEMU and libvirt) evolves quickly alongside | ||
| silicon, particularly with the addition of major hardware features such as | ||
| confidential computing. Production environments predominantly rely on Ubuntu LTS | ||
| releases, whose two-year cadence makes it challenging to deliver the latest | ||
| virtualization features to LTS-only users in a timely manner. | ||
|
|
||
| To address this, and mirroring the long-standing | ||
| :ref:`HWE kernel <https://canonical-kernel-docs.readthedocs-hosted.com/reference/hwe-kernels/>` | ||
| model, Starting from 26.04 LTS, Ubuntu provides a rolling **HWE virtualization stack** for the | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| LTS that tracks the upstream versions shipped in the latest Ubuntu interim release. | ||
|
|
||
| Key notes | ||
| --------- | ||
|
|
||
| - The HWE virtualization stack is **opt-in** | ||
|
|
||
| It is separate from the base stack that remains the default in Ubuntu. Users have to | ||
| explicitly install the HWE packages to switch to the HWE virtualization stack. | ||
|
|
||
| - The HWE virtualization stack will be **upgraded once every 6 months** | ||
|
|
||
| The upgrade follows the same schedule as the HWE kernel. For example, when the next Ubuntu | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| interim release (e.g. 26.10) is released, the HWE virtualization stack will be updated in | ||
| the current LTS (e.g. 26.04) to match the versions shipped in that interim release. | ||
|
|
||
| - The HWE virtualization stack rolls to have the **same upstream version the last Ubuntu release**. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| When the HWE stack rolls, it will be upgraded to have the same upstream version as the one shipped in | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| the latest Ubuntu release. For example, when 26.10 is released, the 26.04 HWE stack will be upgraded | ||
| to have the same upstream version as the one shipped in 26.10. | ||
|
|
||
| - The HWE virtualization stack is **stopped from rolling after 2 years**. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| For example, the 26.04 LTS HWE virtualization stack will stop rolling when the next LTS (e.g. 28.04) is released, | ||
| and the last upgrade will be to match the versions shipped in the 28.04 LTS. | ||
|
|
||
| Here is the illustrative timeline of a HWE component's upgrade across future Ubuntu releases: | ||
|
|
||
| .. image:: https://assets.ubuntu.com/v1/4d67e99d-timeline.png | ||
| :alt: Timeline of the HWE virtualization stack release and upgrade across future Ubuntu releases | ||
|
|
||
| Upgrade contents | ||
| ---------------- | ||
|
|
||
| - The upgrade will include the **upstream version** along with **relevant bug & security fixes** from the latest Ubuntu release. | ||
|
|
||
| - Some **adjusments** may be needed to the new upstream version to make it fit in the older LTS. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| - With the above adjustments are not possible or enough to ensure the compability of the virtualization stack, **additional packages** might be needed in the SRU. For example, the build system or other dependencies of the virtualization stack (libvirt-python, virt-manager, meson, ...etc). | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| Risk and mitigation | ||
| ------------------- | ||
|
|
||
| Upgrading the virtualization stack to have a whole new upstream version in a stable release is a major change that | ||
| might break our traditional commitments of stability and security in stable releases. This section covers the mitigations | ||
| that we put in place to both minimize the risk of such breakage. | ||
|
|
||
| 1 - The new version will bring in new features, deprecate/modify existing features. These should be detailed both in the file d/NEWS and the SRU bug that is linked to the d/changelog entry. | ||
|
|
||
| 2 - Any adjustments that are needed to make the new upstream version fit in the older LTS should be detailed in the SRU bug, and should be as minimal as possible to reduce the risk of regressions. | ||
|
|
||
| 3 - The upgrade might break compatiblity or exising usage. This should be avoided by extensive testing: | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| Since there is complex packaging dependencies between the base and the HWE stacks to ensure they are not mixed, the upgrade | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| might break the base stack installation and usage. Extensive testing should be done to ensure that the upgrade does | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| not break the base stack installation and usage, and that switching between the base and HWE stacks with `ubuntu_virt_helper switch` | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| performs a complete one-to-one replacement, preserving dependencies and each package's auto/manual install mark. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| Introducting a new version might affect VM migration as Ubuntu defines new machine types; extensive testing | ||
| on migration is important to ensure we do not break existing migration scenarios, and to identify any necessary | ||
| adjustments to the new upstream version to ensure the compatibility of the stack. | ||
|
|
||
| The new version might also break runtime compatibility with existing components in the LTS. This runtime | ||
| breakage is hard to identify and occurs in production, so we need to do our best to identify and fix it before the | ||
| upgrade is released. This is done by the extensive integration test suite that the virtualization components contain, | ||
| which covers a wide range of scenarios and use cases, and is ran using the SRU package for each release. The results | ||
| of these tests are attached to the SRU bug. | ||
|
|
||
|
|
||
| SRU Process | ||
| ----------- | ||
|
|
||
| The SRU should be done with a single bug, for all the source packages. This is because the components | ||
| are tightly coupled and need to be upgraded together to ensure the compatibility of the stack. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| The SRU process should be followed as usual, with the following additional requirements to ensure | ||
| that the upgrade is done smoothly and with minimal regressions: | ||
|
|
||
| - The SRU should be requested per the StableReleaseUpdates | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| documented process | ||
| - The template at the end of this document should be used and all | ||
| ‘TODO’ filled out | ||
| - For each release (e.g. resolute, etc.) that is proposed to | ||
| be updated by the SRU a link to the results of integration | ||
| testing, via autopkgtest, successfully completed using the | ||
| proposed package with no unexplained errors or failures | ||
|
hector-cao marked this conversation as resolved.
|
||
| - Any packaging changes (e.g. a dependency changes) need to be | ||
| stated | ||
|
|
||
| If backwards compatibility is to be broken, this should be clearly | ||
| written at the top of the bug description for the SRU, as well as in the | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| title with "[breaks-compat]". Furthermore, an email to ubuntu-release | ||
| will be sent to point the release / SRU teams to the bug in order to get | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| approval before uploading to the release's upload queue. | ||
|
|
||
|
|
||
| SRU Template | ||
| ------------ | ||
|
|
||
| :: | ||
|
|
||
| [Impact] | ||
| This release contains bug fixes, security fixes and/or new features (and, for | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I disagree with this *** <TODO: Create list with LP: # included> See the changelog entry below for a full list of changes and bugs. This template is only for HWE stack updates. """ Notable changes: *** <TODO: Create list with LP: # included that would be in but are not in the base release> |
||
| the HWE stack, may bring it in line with a newer upstream version) and we | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Global topic like in the spec document - please rewrite all mentioned of hwe, hwe stack, hwe virt stack, ... to something you pick and then change all occurrences to use the same. |
||
| would like to make sure all of our supported customers have access to these | ||
| improvements. The notable ones are: | ||
|
|
||
| *** <TODO: Create list with LP: # included> | ||
|
|
||
| See the changelog entry below for a full list of changes and bugs. | ||
|
|
||
| [Test Plan] | ||
| The following development and SRU process was followed: | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| https://documentation.ubuntu.com/sru/en/latest/reference/exception-Virtualization-Updates | ||
|
|
||
| Virtualization components contain an extensive integration test suite that is ran using | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| the SRU package for each releases. This test suite's results are available here: | ||
| http://autopkgtest.ubuntu.com/packages/n/virtualization-components | ||
| A successful run is required before the proposed virtualization components package | ||
| can be let into -updates. | ||
|
|
||
| The virtualization team will be in charge of attaching the artifacts and console | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| output of the appropriate run to the bug. Virtualization team members will not | ||
| mark ‘verification-done’ until this has happened. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| For HWE stack uploads, verification must also confirm that switching between | ||
| the base and HWE variants with `ubuntu_virt_helper switch` performs a complete | ||
| one-to-one replacement, preserving dependencies and each package's auto/manual | ||
| install mark. | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| [Where problems could occur] | ||
| In order to mitigate the regression potential, the results of the | ||
| aforementioned integration tests are attached to this bug. | ||
|
|
||
| The HWE and base stacks are mutually exclusive and the HWE packages are | ||
| separate source packages; particular attention is required to ensure that no | ||
| variant or supported release misses a relevant change, including security | ||
| fixes. | ||
|
|
||
| <TODO: attach test artifacts for every SRU release, not a link as links expire> | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
|
|
||
| [Other Info] | ||
| <TODO: other background, including which variant (base or HWE) and which | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| releases are targeted> | ||
|
|
||
| [Changelog] | ||
| <TODO: Paste in change log entry, including a link to the upstream release | ||
|
hector-cao marked this conversation as resolved.
Outdated
|
||
| announcement for any new upstream version> | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.