From ff0fee946ad5d905f95e40e135614b0b44009043 Mon Sep 17 00:00:00 2001 From: Kirtana Ashok Date: Thu, 30 May 2024 11:30:08 -0700 Subject: [PATCH] Move functions to containerd/platforms repo Move functions needed only by containerd platform matcher to cotnainerd/platforms repo Signed-off-by: Kirtana Ashok --- osversion/platform_compat_windows.go | 35 ------------ osversion/platform_compat_windows_test.go | 68 ----------------------- 2 files changed, 103 deletions(-) delete mode 100644 osversion/platform_compat_windows.go delete mode 100644 osversion/platform_compat_windows_test.go diff --git a/osversion/platform_compat_windows.go b/osversion/platform_compat_windows.go deleted file mode 100644 index f8d411ad7e..0000000000 --- a/osversion/platform_compat_windows.go +++ /dev/null @@ -1,35 +0,0 @@ -package osversion - -// List of stable ABI compliant ltsc releases -// Note: List must be sorted in ascending order -var compatLTSCReleases = []uint16{ - V21H2Server, -} - -// CheckHostAndContainerCompat checks if given host and container -// OS versions are compatible. -// It includes support for stable ABI compliant versions as well. -// Every release after WS 2022 will support the previous ltsc -// container image. Stable ABI is in preview mode for windows 11 client. -// Refer: https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-10#windows-server-host-os-compatibility -func CheckHostAndContainerCompat(host, ctr OSVersion) bool { - // check major minor versions of host and guest - if host.MajorVersion != ctr.MajorVersion || - host.MinorVersion != ctr.MinorVersion { - return false - } - - // If host is < WS 2022, exact version match is required - if host.Build < V21H2Server { - return host.Build == ctr.Build - } - - var supportedLtscRelease uint16 - for i := len(compatLTSCReleases) - 1; i >= 0; i-- { - if host.Build >= compatLTSCReleases[i] { - supportedLtscRelease = compatLTSCReleases[i] - break - } - } - return ctr.Build >= supportedLtscRelease && ctr.Build <= host.Build -} diff --git a/osversion/platform_compat_windows_test.go b/osversion/platform_compat_windows_test.go deleted file mode 100644 index bafa612d13..0000000000 --- a/osversion/platform_compat_windows_test.go +++ /dev/null @@ -1,68 +0,0 @@ -package osversion - -import ( - "testing" -) - -// Test the platform compatibility of the different -// OS Versions considering two ltsc container image -// versions (ltsc2019, ltsc2022) -func Test_PlatformCompat(t *testing.T) { - for testName, tc := range map[string]struct { - hostOs uint16 - ctrOs uint16 - shouldRun bool - }{ - "RS5Host_ltsc2019": { - hostOs: RS5, - ctrOs: RS5, - shouldRun: true, - }, - "RS5Host_ltsc2022": { - hostOs: RS5, - ctrOs: V21H2Server, - shouldRun: false, - }, - "WS2022Host_ltsc2019": { - hostOs: V21H2Server, - ctrOs: RS5, - shouldRun: false, - }, - "WS2022Host_ltsc2022": { - hostOs: V21H2Server, - ctrOs: V21H2Server, - shouldRun: true, - }, - "Wind11Host_ltsc2019": { - hostOs: V22H2Win11, - ctrOs: RS5, - shouldRun: false, - }, - "Wind11Host_ltsc2022": { - hostOs: V22H2Win11, - ctrOs: V21H2Server, - shouldRun: true, - }, - } { - // Check if ltsc2019/ltsc2022 guest images are compatible on - // the given host OS versions - // - hostOSVersion := OSVersion{ - MajorVersion: 10, - MinorVersion: 0, - Build: tc.hostOs, - } - ctrOSVersion := OSVersion{ - MajorVersion: 10, - MinorVersion: 0, - Build: tc.ctrOs, - } - if CheckHostAndContainerCompat(hostOSVersion, ctrOSVersion) != tc.shouldRun { - var expectedResultStr string - if !tc.shouldRun { - expectedResultStr = " NOT" - } - t.Fatalf("Failed %v: host %v should%s be able to run guest %v", testName, tc.hostOs, expectedResultStr, tc.ctrOs) - } - } -}