Skip to content

[PRODENG-3593] Add Ubuntu 26.04 (Resolute) host configurer - #661

Merged
james-nesbitt merged 3 commits into
mainfrom
PRODENG-3593
Sep 29, 2026
Merged

james-nesbitt merged 3 commits into
mainfrom
PRODENG-3593

Conversation

@james-nesbitt

@james-nesbitt james-nesbitt commented Sep 2, 2026 •

Copy link
Copy Markdown
Collaborator

What

Register a host configurer for Ubuntu 26.04 (Resolute Raccoon) so launchpad recognizes the OS.

Why

PRODENG-3593 asks for Ubuntu 26.04 support. The configurer piece is cheap groundwork; it does not by itself make installs succeed, see caveat below.

How

  • Add pkg/configurer/ubuntu/resolute.go: ResoluteConfigurer registered for os.ID == "ubuntu" && os.Version == "26.04", same pattern as bionic/focal/jammy/noble/xenial
  • No version-specific logic needed - ubuntu.Configurer.InstallMCR already derives the APT repo URL generically from VERSION_CODENAME
  • Add the compile-time HostConfigurer assertion in pkg/product/mke/config/configurer_test.go

Caveat

MCR has not published Docker EE packages for Ubuntu 26.04 on repos.mirantis.com or repos-internal.mirantis.com as of 2026-09-02 (both list only trusty/xenial/bionic/focal/jammy/noble). InstallMCR will fail on this platform until MCR ships support - same gap already tracked by TestCuttingEdgeCluster in PR #642. This PR only unblocks OS recognition.

Testing

  • go build ./..., go vet, go test ./pkg/product/mke/config/... ./pkg/configurer/...
  • golangci-lint run: no new issues

Links

Checklist

  • Tests added or updated
  • Docs updated if user-visible behaviour changed
  • No debug output or dead code left in

Written by AI: claude-sonnet-5

@james-nesbitt
james-nesbitt marked this pull request as draft September 21, 2026 07:26
@james-nesbitt
james-nesbitt marked this pull request as ready for review September 29, 2026 16:58
Registers ResoluteConfigurer for os.ID == "ubuntu" && os.Version ==
"26.04", matching the existing per-codename pattern (bionic, focal,
jammy, noble, xenial). No version-specific behavior needed: the shared
ubuntu.Configurer.InstallMCR already builds the APT repo URL generically
from VERSION_CODENAME.

MCR has not published Docker EE packages for Ubuntu 26.04 on either
repos.mirantis.com or repos-internal.mirantis.com as of 2026-09-02 (both
list only trusty/xenial/bionic/focal/jammy/noble). InstallMCR will fail
on this platform until MCR ships support - this configurer only makes
launchpad recognize the OS, it does not unblock installs. Same gap
already tracked by TestCuttingEdgeCluster in PR #642.

Verified: go build ./..., go vet, go test ./pkg/product/mke/config/...
./pkg/configurer/..., golangci-lint run (no new issues).
PRODENG-3594 (#651) migrated OS module registration from
k0sproject/rig + rig/os/registry (func(rig.OSVersion) bool) to
pkg/configurer.RegisterOSModule + rigos.Release (func(*rigos.Release)
bool), landed on main after this branch was created. Update
ResoluteConfigurer to match the current pattern used by
NobleConfigurer; without this the branch fails to compile against
main.

Written by AI: claude-sonnet-5

Signed-off-by: James Nesbitt <jnesbitt@mirantis.com>
- test/platforms.go: add Ubuntu26 platform entry (ubuntu_26.04)
- test/smoke/smoke_test.go: add MCRRepoURL to smokeConfig, wired into
  the launchpad tfvars map as mcr_repo_url when non-empty (defaults
  to the public repo otherwise, via PR #669's optional tfvar); add
  TestCuttingEdgeCluster exercising a single ubuntu_26.04 manager
  against repos-internal.mirantis.com channel test-29, the only
  place Ubuntu 26.04 MCR packages exist as of 2026-09-29

Verified: TestCuttingEdgeCluster passed against real AWS infra
(docker-testing-533267045383, us-east-1), MCR engine 29.8.0m1-rc1
installed and detected by MKE 3.9.2, cluster reported healthy,
Reset succeeded, all 28 AWS resources destroyed cleanly.

Written by AI: claude-sonnet-5

Signed-off-by: James Nesbitt <jnesbitt@mirantis.com>
@james-nesbitt
james-nesbitt merged commit 7b8a4ba into main Sep 29, 2026
15 checks passed
@james-nesbitt
james-nesbitt deleted the PRODENG-3593 branch September 29, 2026 17:32
james-nesbitt added a commit that referenced this pull request Nov 3, 2026
…gle-node test

MCR package availability on repos.mirantis.com, checked 2026-11-03:

  rhel/10 (also serves rocky10)  stable-29.2 ... stable-29.8.0
  ubuntu resolute                stable-29.8.0 and test-29.8.0 only
  sles/16                        no directory; sles/ has 12, 12.3, 15

Changes following from that:

  - WrkSles16 removed from TestCuttingEdgeCluster and the Sles16 entry
    removed from test/platforms.go, its only consumer. A sles16 worker
    cannot install MCR at all, so it can only ever fail the run.
  - MCRChannel stable-29.6.1 -> stable-29.8.0. 29.6.1 does not exist for
    resolute, so the previous value could not install on ubuntu26.
  - MKEVersion 3.9.6 -> 3.9.7, the pairing with MCR 29.8.0 exercised live
    in PRODENG-4062.

main's TestCuttingEdgeCluster (added by #661) is removed and replaced by
this matrix. That test provisioned one ubuntu_26.04 manager against
repos-internal.mirantis.com test-29 because resolute packages existed
nowhere else on 2026-09-29. repos.mirantis.com now carries them, so the
public-repo matrix covers ubuntu26 in both manager and worker roles. The
cost is that no smoke test exercises the repos-internal path any more;
MCRRepoURL in smokeConfig is retained for the next test that needs it.

The provision-aws module constraint is the exact pin 0.1.8 from main
rather than this branch's >= 0.1.7: 0.2.0-0.2.2 fail at plan time.

Not run: the smoke job itself. The RHEL10/Rocky10 MCR-daemon-start gap
(missing xt_* kernel modules, nftables vs swarm) is unresolved and may
still fail this matrix.

Written by AI: claude-opus-5

Signed-off-by: James Nesbitt <jnesbitt@mirantis.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.

1 participant