Skip to content

PE-8920: fix UKI/secureboot kernel-header install for rotated Ubuntu ABIs#633

Merged
abhinavnagaraj merged 1 commit into
mainfrom
PE-8920
Jun 18, 2026
Merged

PE-8920: fix UKI/secureboot kernel-header install for rotated Ubuntu ABIs#633
abhinavnagaraj merged 1 commit into
mainfrom
PE-8920

Conversation

@vipsharm

Copy link
Copy Markdown
Contributor

The provider-image build pinned an exact-version kernel-headers install (linux-headers-) derived from the base image's shipped modules. Ubuntu's *-updates pocket only keeps the current HWE kernel ABI, so when it rotates the ABI (e.g. 6.14.0-36 -> -37) the headers matching the base image's kernel disappear from the live mirror while the base image still ships the old modules. apt then fails with "no installation candidate" (exit 100), breaking the kubeadm secureboot (UKI) ISO build.

Replace the two identical, hard-failing one-liners (kubeadm and UPDATE_KERNEL paths) with a single generic helper, scripts/install-kernel-headers.sh, that hardcodes no kernel version, ABI, Ubuntu release, or snapshot date:

  1. skip if matching headers already present
  2. exact match from the live mirror (fast path)
  3. exact match from snapshot.ubuntu.com (Ubuntu's immutable archive keeps every historical package, so the ABI-matching headers are recoverable after the live mirror rotates them out)
  4. best-effort fallback (closest ABI, then linux-headers-generic) with a loud warning but without failing the build, consistent with the existing SUSE/RHEL branches

…ABIs

The provider-image build pinned an exact-version kernel-headers install
(linux-headers-<kernel>) derived from the base image's shipped modules.
Ubuntu's *-updates pocket only keeps the current HWE kernel ABI, so when
it rotates the ABI (e.g. 6.14.0-36 -> -37) the headers matching the base
image's kernel disappear from the live mirror while the base image still
ships the old modules. apt then fails with "no installation candidate"
(exit 100), breaking the kubeadm secureboot (UKI) ISO build.

Replace the two identical, hard-failing one-liners (kubeadm and
UPDATE_KERNEL paths) with a single generic helper,
scripts/install-kernel-headers.sh, that hardcodes no kernel version,
ABI, Ubuntu release, or snapshot date:

  1. skip if matching headers already present
  2. exact match from the live mirror (fast path)
  3. exact match from snapshot.ubuntu.com (Ubuntu's immutable archive
     keeps every historical package, so the ABI-matching headers are
     recoverable after the live mirror rotates them out)
  4. best-effort fallback (closest ABI, then linux-headers-generic) with
     a loud warning but without failing the build, consistent with the
     existing SUSE/RHEL branches

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@abhinavnagaraj
abhinavnagaraj merged commit ded6bfd into main Jun 18, 2026
2 checks passed
@abhinavnagaraj
abhinavnagaraj deleted the PE-8920 branch June 18, 2026 17:06
Dr-N00B pushed a commit that referenced this pull request Jul 21, 2026
…ABIs (#633)

The provider-image build pinned an exact-version kernel-headers install
(linux-headers-<kernel>) derived from the base image's shipped modules.
Ubuntu's *-updates pocket only keeps the current HWE kernel ABI, so when
it rotates the ABI (e.g. 6.14.0-36 -> -37) the headers matching the base
image's kernel disappear from the live mirror while the base image still
ships the old modules. apt then fails with "no installation candidate"
(exit 100), breaking the kubeadm secureboot (UKI) ISO build.

Replace the two identical, hard-failing one-liners (kubeadm and
UPDATE_KERNEL paths) with a single generic helper,
scripts/install-kernel-headers.sh, that hardcodes no kernel version,
ABI, Ubuntu release, or snapshot date:

  1. skip if matching headers already present
  2. exact match from the live mirror (fast path)
  3. exact match from snapshot.ubuntu.com (Ubuntu's immutable archive
     keeps every historical package, so the ABI-matching headers are
     recoverable after the live mirror rotates them out)
  4. best-effort fallback (closest ABI, then linux-headers-generic) with
     a loud warning but without failing the build, consistent with the
     existing SUSE/RHEL branches

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Dr-N00B added a commit that referenced this pull request Jul 21, 2026
* systemd extension changes

* temp changes for hadron

* hadron changes

* feat: hadron support in Canvos

* revert stylus versions

* PE-8920: fix UKI/secureboot kernel-header install for rotated Ubuntu ABIs (#633)

The provider-image build pinned an exact-version kernel-headers install
(linux-headers-<kernel>) derived from the base image's shipped modules.
Ubuntu's *-updates pocket only keeps the current HWE kernel ABI, so when
it rotates the ABI (e.g. 6.14.0-36 -> -37) the headers matching the base
image's kernel disappear from the live mirror while the base image still
ships the old modules. apt then fails with "no installation candidate"
(exit 100), breaking the kubeadm secureboot (UKI) ISO build.

Replace the two identical, hard-failing one-liners (kubeadm and
UPDATE_KERNEL paths) with a single generic helper,
scripts/install-kernel-headers.sh, that hardcodes no kernel version,
ABI, Ubuntu release, or snapshot date:

  1. skip if matching headers already present
  2. exact match from the live mirror (fast path)
  3. exact match from snapshot.ubuntu.com (Ubuntu's immutable archive
     keeps every historical package, so the ABI-matching headers are
     recoverable after the live mirror rotates them out)
  4. best-effort fallback (closest ABI, then linux-headers-generic) with
     a loud warning but without failing the build, consistent with the
     existing SUSE/RHEL branches

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: change supported systemd version to 254

* updating provider versions

---------

Co-authored-by: Vipin Sharma <sharma.vipin@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants