EAI-8203 Support Ubuntu 26.04 - #306
Conversation
c4b76f2 to
b901840
Compare
Test result: PASS for the Ubuntu 26.04 support. Two defects were found beside it, one of them fixed here.Two independent two-node clusters were built from this branch, one per Ubuntu
Both clusters run RKE2 v1.34.1+rke2r1. On all four nodes the selected module is Both clusters show 53 of 54 ArgoCD applications Synced and Healthy. The 54th is The four changes
Defect 1, fixed in this branch (2 commits)The first 24.04 run stopped after the GPU driver install, at The task read that file with The fault is not caused by the 26.04 change and is present in The same task then split the package list on the two characters "packages": ["linux-image-6.8.0-124-generic", "linux-base"]Defect 2, moved to its own pull requestThe local-path provisioner config named the first node, so a join node got no Finding: JVM workloads ignore their memory limit on Ubuntu 26.04This is not a Bloom defect, but it stops the platform on 26.04 and it needs an On cluster B, Keycloak was The cause is the JVM. With an equal pod manifest on both releases:
JDK 21 reads This applies to every JVM workload on Ubuntu 26.04, not only to Keycloak. Cluster B still carries that manual setting, and auto-sync on its FailuresNone left in the scope of this pull request. The four machines hold two running |
Ubuntu 26.04 (resolute) passes node validation, and the GPU driver tasks work on it. Three changes were necessary: * AMD publishes amdgpu-install and amdgpu-dkms for resolute from driver 31.30.0. The codename gate accepts resolute for that installer train, and refuses it for the older 7.x train, which has no 26.04 packages. * Ubuntu 26.04 has no linux-modules-extra package. Those modules, amdgpu included, are in linux-modules. Bloom asks apt for the package name instead of assuming that it exists. * dkms 3.2 writes a note after the state, for example "installed (Original modules exist)". The check for the module of the running kernel does not anchor the state to the end of the line any more. The allowlist also gets AMD GPU Driver 31.40.1, which AMD's current instructions install. The lists of supported drivers in the operator messages come from the driver matrix now, because the same list was written by hand in three places. Tested on four Ubuntu 26.04 nodes with one AMD GPU each: driver 31.40.0 builds and loads for kernel 7.0.0-30-generic, AMD-SMI finds the GPU, and the nodes make a cluster of three control planes and one worker on RKE2 v1.34.1.
The task that builds the reboot-required marker read
/var/run/reboot-required.pkgs with lookup('file'). That lookup runs on the
playbook controller, which bloom starts in its own mount namespace, where
the host filesystem is under /host. The read failed with "File not found"
although the stat task before it found the file on the target.
The run stopped after the GPU driver install on each node whose OS reports
a pending package update. Ubuntu 24.04 shows this, because the DKMS build
prerequisites pull linux-modules-extra and with it a new kernel image.
Ubuntu 26.04 has no modules-extra package, so it did not show the fault.
A slurp task reads the file on the target now.
The marker task split the package list on the two characters n, because a YAML folded scalar does not turn that sequence into a newline. The list held one string with embedded newlines instead of one entry per package. splitlines() needs no escape and gives one entry per package.
de25e47 to
44893b4
Compare
Test report: three clusters installed at the same time, 2026-08-22Built from this branch at Three clusters were installed in parallel, not one after the other. Four of
Ubuntu 26.04 works, and this is what was measured on the nodeThe GPU hosts are 24 cores, 251 GB, one AMD accelerator On the three-node cluster all three nodes came up as The driver reboot is handled correctlyEach GPU node rebooted once for the DKMS driver. The sequence in the log is: So an The two-node local-path fault is fixedThe two-node cluster is the shape that previously stopped at the OpenBao volume: A sample every 60 s from before phase 2 caught it working: That is the failing case exactly, a volume wanted by a pod the scheduler placed Previously the pod had no End-to-end resultAll three clusters reached verdict OK. Every phase ended The three-node GPU cluster reports 3 of 3 nodes Ready, every pod Running or The two-node VM cluster also finished OK, at 53 of 54, with only Open items, none of them in this branch
VerdictNo defect of this branch was found. Ubuntu 26.04 installs, the amdgpu DKMS |
Jira: https://amd.atlassian.net/browse/EAI-8203
ClusterBloom now installs on Ubuntu 26.04 (
resolute). A new entry insupported_ubuntu_versionswas not sufficient; three defects stopped a 26.04GPU node.
Related
What was broken on 26.04
The GPU driver codename gate accepted only
jammyandnoble. AMDpublishes
amdgpu-installandamdgpu-dkmsforresolutefrom driver31.30.0, and the
amdgpu-dkmspackage for 26.04 carries the same DKMS moduleversion, build and package code as the other releases, so the existing tuple
matches without a change. The older 7.x installer train has no 26.04 packages,
so the gate is now derived from the installer train instead of a flat list.
Ubuntu 26.04 has no
linux-modules-extrapackage. Those modules,amdgpuincluded, are in
linux-modules. The task installedlinux-modules-extra-<kernel>as a DKMS build prerequisite and apt failed withNo package matching 'linux-modules-extra-7.0.0-30-generic'. Bloom asks aptfor the package now and adds it only when a candidate exists. The stale-kernel
recovery path in
gpu_kernel_headers_check.yamlhad the same assumption: itskipped every candidate kernel that had no modules-extra package, which on
26.04 is every kernel.
dkms 3.2 writes a note after the module state, for example
installed (Original modules exist). The check for the module of the runningkernel used
grep ': installed$', so a correctly built module read as missingand the run stopped with a misleading message.
Also in this change
AMD GPU Driver
31.40.1joins the allowlist, because AMD's currentinstructions install it.
The lists of supported drivers in the operator messages are built from the
driver matrix now. The same list was written by hand in three places in
gpu_driver_detect.yaml, and this change would have needed all three editedagain.
Test
Four Digital Ocean nodes, Ubuntu 26.04, kernel 7.0.0-30-generic, one AMD GPU
each, ROCm and the driver removed first so every node was fresh:
for the reboot it needs, and RKE2 v1.34.1 started after it.
dkms statusreports the module installed for the runningkernel,
modinfo -n amdgpuselectsupdates/dkms/amdgpu.ko.zst, the activemodule is 6.19.14.31400000,
/dev/kfdexists, and AMD-SMI finds the GPU.kubectl get nodesshows fourReadynodes on Ubuntu 26.04 LTS.