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, )