From ad422ea2fd9a2b42b00f48b12b2e332ca2e75d82 Mon Sep 17 00:00:00 2001 From: Chris Henzie Date: Wed, 21 Oct 2026 14:31:11 -0700 Subject: [PATCH] integration: test upgrades from 2.2 into 2.3 RELEASES.md promises upgrades from the preceding minor release and from the preceding LTS release. Add 2.2 to the TestUpgrade matrix. Download the static tarball, as main does (#14189). The dynamic 2.2.9 containerd needs GLIBC_2.34, which the almalinux-8 CI hosts lack. Assisted-by: Claude Code:claude-fable-5-1 Signed-off-by: Chris Henzie --- integration/release_upgrade_linux_test.go | 2 +- integration/release_upgrade_utils_linux_test.go | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/integration/release_upgrade_linux_test.go b/integration/release_upgrade_linux_test.go index 6c5a3f537e..f5df871908 100644 --- a/integration/release_upgrade_linux_test.go +++ b/integration/release_upgrade_linux_test.go @@ -60,7 +60,7 @@ type setupUpgradeVerifyCase func(*testing.T, int, *remote.RuntimeService, *remot // TODO: Support Windows func TestUpgrade(t *testing.T) { - for _, version := range []string{"1.7", "2.0"} { + for _, version := range []string{"1.7", "2.0", "2.2"} { t.Run(version, func(t *testing.T) { previousReleaseBinDir := t.TempDir() downloadPreviousLatestReleaseBinary(t, version, previousReleaseBinDir) diff --git a/integration/release_upgrade_utils_linux_test.go b/integration/release_upgrade_utils_linux_test.go index 530e32b076..f715f2fb6f 100644 --- a/integration/release_upgrade_utils_linux_test.go +++ b/integration/release_upgrade_utils_linux_test.go @@ -41,8 +41,13 @@ func downloadPreviousLatestReleaseBinary(t *testing.T, version, targetDir string } // downloadReleaseBinary downloads containerd binary with a given release. +// +// NOTE: Use the static build. Release binaries are built on Ubuntu 22.04, so +// the dynamically linked containerd needs GLIBC_2.32 and GLIBC_2.34, which the +// EL8 hosts kept in the VM integration matrix for their old glibc cannot +// provide. The static build has no libc dependency and runs everywhere. func downloadReleaseBinary(t *testing.T, targetDir string, ver string) { - targetURL := fmt.Sprintf("https://github.com/containerd/containerd/releases/download/%s/containerd-%s-linux-%s.tar.gz", + targetURL := fmt.Sprintf("https://github.com/containerd/containerd/releases/download/%s/containerd-static-%s-linux-%s.tar.gz", ver, strings.TrimPrefix(ver, "v"), runtime.GOARCH, )