chore(deps): bump github.com/containerd/containerd from 1.7.5 to 1.7.6 (#2750)
Bumps [github.com/containerd/containerd](https://github.com/containerd/containerd) from 1.7.5 to 1.7.6. - [Release notes](https://github.com/containerd/containerd/releases) - [Changelog](https://github.com/containerd/containerd/blob/main/RELEASES.md) - [Commits](https://github.com/containerd/containerd/compare/v1.7.5...v1.7.6) --- updated-dependencies: - dependency-name: github.com/containerd/containerd dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									14b2ea5528
								
							
						
					
					
						commit
						a861fadeba
					
				
							
								
								
									
										3
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										3
									
								
								go.mod
								
								
								
								
							|  | @ -39,7 +39,7 @@ require ( | ||||||
| 	golang.org/x/sync v0.3.0 | 	golang.org/x/sync v0.3.0 | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| require github.com/containerd/containerd v1.7.5 | require github.com/containerd/containerd v1.7.6 | ||||||
| 
 | 
 | ||||||
| require ( | require ( | ||||||
| 	github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect | 	github.com/googleapis/enterprise-certificate-proxy v0.2.5 // indirect | ||||||
|  | @ -160,6 +160,7 @@ require ( | ||||||
| require ( | require ( | ||||||
| 	dario.cat/mergo v1.0.0 // indirect | 	dario.cat/mergo v1.0.0 // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go v61.3.0+incompatible // indirect | 	github.com/Azure/azure-sdk-for-go v61.3.0+incompatible // indirect | ||||||
|  | 	github.com/Microsoft/hcsshim v0.11.0 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/ecr v1.18.10 // indirect | 	github.com/aws/aws-sdk-go-v2/service/ecr v1.18.10 // indirect | ||||||
| 	github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.1 // indirect | 	github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.1 // indirect | ||||||
| 	github.com/cloudflare/circl v1.3.3 // indirect | 	github.com/cloudflare/circl v1.3.3 // indirect | ||||||
|  |  | ||||||
							
								
								
									
										7
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										7
									
								
								go.sum
								
								
								
								
							|  | @ -90,7 +90,8 @@ github.com/GoogleCloudPlatform/docker-credential-gcr v1.5.1-0.20230328182921-62a | ||||||
| github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= | github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= | ||||||
| github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= | github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= | ||||||
| github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= | github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= | ||||||
| github.com/Microsoft/hcsshim v0.10.0-rc.8 h1:YSZVvlIIDD1UxQpJp0h+dnpLUw+TrY0cx8obKsp3bek= | github.com/Microsoft/hcsshim v0.11.0 h1:7EFNIY4igHEXUdj1zXgAyU3fLc7QfOKHbkldRVTBdiM= | ||||||
|  | github.com/Microsoft/hcsshim v0.11.0/go.mod h1:OEthFdQv/AD2RAdzR6Mm1N1KPCztGKDurW1Z8b8VGMM= | ||||||
| github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= | github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 h1:KLq8BE0KwCL+mmXnjLWEAOYO+2l2AE4YMmqG1ZpZHBs= | ||||||
| github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= | github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= | ||||||
| github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= | github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= | ||||||
|  | @ -199,8 +200,8 @@ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u9 | ||||||
| github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= | github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= | ||||||
| github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= | github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= | ||||||
| github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= | github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= | ||||||
| github.com/containerd/containerd v1.7.5 h1:i9T9XpAWMe11BHMN7pu1BZqOGjXaKTPyz2v+KYOZgkY= | github.com/containerd/containerd v1.7.6 h1:oNAVsnhPoy4BTPQivLgTzI9Oleml9l/+eYIDYXRCYo8= | ||||||
| github.com/containerd/containerd v1.7.5/go.mod h1:ieJNCSzASw2shSGYLHx8NAE7WsZ/gEigo5fQ78W5Zvw= | github.com/containerd/containerd v1.7.6/go.mod h1:SY6lrkkuJT40BVNO37tlYTSnKJnP5AXBc0fhx0q+TJ4= | ||||||
| github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= | github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= | ||||||
| github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= | github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= | ||||||
| github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= | github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= | ||||||
|  |  | ||||||
|  | @ -0,0 +1,21 @@ | ||||||
|  | The MIT License (MIT) | ||||||
|  | 
 | ||||||
|  | Copyright (c) 2015 Microsoft | ||||||
|  | 
 | ||||||
|  | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
|  | of this software and associated documentation files (the "Software"), to deal | ||||||
|  | in the Software without restriction, including without limitation the rights | ||||||
|  | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||||
|  | copies of the Software, and to permit persons to whom the Software is | ||||||
|  | furnished to do so, subject to the following conditions: | ||||||
|  | 
 | ||||||
|  | The above copyright notice and this permission notice shall be included in all | ||||||
|  | copies or substantial portions of the Software. | ||||||
|  | 
 | ||||||
|  | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||||
|  | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||||
|  | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||||
|  | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||||
|  | SOFTWARE. | ||||||
							
								
								
									
										59
									
								
								vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										59
									
								
								vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,59 @@ | ||||||
|  | package osversion | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"sync" | ||||||
|  | 
 | ||||||
|  | 	"golang.org/x/sys/windows" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // OSVersion is a wrapper for Windows version information
 | ||||||
|  | // https://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx
 | ||||||
|  | type OSVersion struct { | ||||||
|  | 	Version      uint32 | ||||||
|  | 	MajorVersion uint8 | ||||||
|  | 	MinorVersion uint8 | ||||||
|  | 	Build        uint16 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var ( | ||||||
|  | 	osv  OSVersion | ||||||
|  | 	once sync.Once | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | // Get gets the operating system version on Windows.
 | ||||||
|  | // The calling application must be manifested to get the correct version information.
 | ||||||
|  | func Get() OSVersion { | ||||||
|  | 	once.Do(func() { | ||||||
|  | 		var err error | ||||||
|  | 		osv = OSVersion{} | ||||||
|  | 		osv.Version, err = windows.GetVersion() | ||||||
|  | 		if err != nil { | ||||||
|  | 			// GetVersion never fails.
 | ||||||
|  | 			panic(err) | ||||||
|  | 		} | ||||||
|  | 		osv.MajorVersion = uint8(osv.Version & 0xFF) | ||||||
|  | 		osv.MinorVersion = uint8(osv.Version >> 8 & 0xFF) | ||||||
|  | 		osv.Build = uint16(osv.Version >> 16) | ||||||
|  | 	}) | ||||||
|  | 	return osv | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Build gets the build-number on Windows
 | ||||||
|  | // The calling application must be manifested to get the correct version information.
 | ||||||
|  | func Build() uint16 { | ||||||
|  | 	return Get().Build | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // String returns the OSVersion formatted as a string. It implements the
 | ||||||
|  | // [fmt.Stringer] interface.
 | ||||||
|  | func (osv OSVersion) String() string { | ||||||
|  | 	return fmt.Sprintf("%d.%d.%d", osv.MajorVersion, osv.MinorVersion, osv.Build) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // ToString returns the OSVersion formatted as a string.
 | ||||||
|  | //
 | ||||||
|  | // Deprecated: use [OSVersion.String].
 | ||||||
|  | func (osv OSVersion) ToString() string { | ||||||
|  | 	return osv.String() | ||||||
|  | } | ||||||
							
								
								
									
										35
									
								
								vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							
							
						
						
									
										35
									
								
								vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go
								
								
									generated
								
								
									vendored
								
								
									Normal file
								
							|  | @ -0,0 +1,35 @@ | ||||||
|  | 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 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,84 @@ | ||||||
|  | package osversion | ||||||
|  | 
 | ||||||
|  | // Windows Client and Server build numbers.
 | ||||||
|  | //
 | ||||||
|  | // See:
 | ||||||
|  | // https://learn.microsoft.com/en-us/windows/release-health/release-information
 | ||||||
|  | // https://learn.microsoft.com/en-us/windows/release-health/windows-server-release-info
 | ||||||
|  | // https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information
 | ||||||
|  | const ( | ||||||
|  | 	// RS1 (version 1607, codename "Redstone 1") corresponds to Windows Server
 | ||||||
|  | 	// 2016 (ltsc2016) and Windows 10 (Anniversary Update).
 | ||||||
|  | 	RS1 = 14393 | ||||||
|  | 	// V1607 (version 1607, codename "Redstone 1") is an alias for [RS1].
 | ||||||
|  | 	V1607 = RS1 | ||||||
|  | 	// LTSC2016 (Windows Server 2016) is an alias for [RS1].
 | ||||||
|  | 	LTSC2016 = RS1 | ||||||
|  | 
 | ||||||
|  | 	// RS2 (version 1703, codename "Redstone 2") was a client-only update, and
 | ||||||
|  | 	// corresponds to Windows 10 (Creators Update).
 | ||||||
|  | 	RS2 = 15063 | ||||||
|  | 	// V1703 (version 1703, codename "Redstone 2") is an alias for [RS2].
 | ||||||
|  | 	V1703 = RS2 | ||||||
|  | 
 | ||||||
|  | 	// RS3 (version 1709, codename "Redstone 3") corresponds to Windows Server
 | ||||||
|  | 	// 1709 (Semi-Annual Channel (SAC)), and Windows 10 (Fall Creators Update).
 | ||||||
|  | 	RS3 = 16299 | ||||||
|  | 	// V1709 (version 1709, codename "Redstone 3") is an alias for [RS3].
 | ||||||
|  | 	V1709 = RS3 | ||||||
|  | 
 | ||||||
|  | 	// RS4 (version 1803, codename "Redstone 4") corresponds to Windows Server
 | ||||||
|  | 	// 1803 (Semi-Annual Channel (SAC)), and Windows 10 (April 2018 Update).
 | ||||||
|  | 	RS4 = 17134 | ||||||
|  | 	// V1803 (version 1803, codename "Redstone 4") is an alias for [RS4].
 | ||||||
|  | 	V1803 = RS4 | ||||||
|  | 
 | ||||||
|  | 	// RS5 (version 1809, codename "Redstone 5") corresponds to Windows Server
 | ||||||
|  | 	// 2019 (ltsc2019), and Windows 10 (October 2018 Update).
 | ||||||
|  | 	RS5 = 17763 | ||||||
|  | 	// V1809 (version 1809, codename "Redstone 5") is an alias for [RS5].
 | ||||||
|  | 	V1809 = RS5 | ||||||
|  | 	// LTSC2019 (Windows Server 2019) is an alias for [RS5].
 | ||||||
|  | 	LTSC2019 = RS5 | ||||||
|  | 
 | ||||||
|  | 	// V19H1 (version 1903, codename 19H1) corresponds to Windows Server 1903 (semi-annual
 | ||||||
|  | 	// channel).
 | ||||||
|  | 	V19H1 = 18362 | ||||||
|  | 	// V1903 (version 1903) is an alias for [V19H1].
 | ||||||
|  | 	V1903 = V19H1 | ||||||
|  | 
 | ||||||
|  | 	// V19H2 (version 1909, codename 19H2) corresponds to Windows Server 1909 (semi-annual
 | ||||||
|  | 	// channel).
 | ||||||
|  | 	V19H2 = 18363 | ||||||
|  | 	// V1909 (version 1909) is an alias for [V19H2].
 | ||||||
|  | 	V1909 = V19H2 | ||||||
|  | 
 | ||||||
|  | 	// V20H1 (version 2004, codename 20H1) corresponds to Windows Server 2004 (semi-annual
 | ||||||
|  | 	// channel).
 | ||||||
|  | 	V20H1 = 19041 | ||||||
|  | 	// V2004 (version 2004) is an alias for [V20H1].
 | ||||||
|  | 	V2004 = V20H1 | ||||||
|  | 
 | ||||||
|  | 	// V20H2 corresponds to Windows Server 20H2 (semi-annual channel).
 | ||||||
|  | 	V20H2 = 19042 | ||||||
|  | 
 | ||||||
|  | 	// V21H1 corresponds to Windows Server 21H1 (semi-annual channel).
 | ||||||
|  | 	V21H1 = 19043 | ||||||
|  | 
 | ||||||
|  | 	// V21H2Win10 corresponds to Windows 10 (November 2021 Update).
 | ||||||
|  | 	V21H2Win10 = 19044 | ||||||
|  | 
 | ||||||
|  | 	// V21H2Server corresponds to Windows Server 2022 (ltsc2022).
 | ||||||
|  | 	V21H2Server = 20348 | ||||||
|  | 	// LTSC2022 (Windows Server 2022) is an alias for [V21H2Server]
 | ||||||
|  | 	LTSC2022 = V21H2Server | ||||||
|  | 
 | ||||||
|  | 	// V21H2Win11 corresponds to Windows 11 (original release).
 | ||||||
|  | 	V21H2Win11 = 22000 | ||||||
|  | 
 | ||||||
|  | 	// V22H2Win10 corresponds to Windows 10 (2022 Update).
 | ||||||
|  | 	V22H2Win10 = 19045 | ||||||
|  | 
 | ||||||
|  | 	// V22H2Win11 corresponds to Windows 11 (2022 Update).
 | ||||||
|  | 	V22H2Win11 = 22621 | ||||||
|  | ) | ||||||
|  | @ -44,6 +44,12 @@ import ( | ||||||
| 	"github.com/sirupsen/logrus" | 	"github.com/sirupsen/logrus" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  | // G is a shorthand for [GetLogger].
 | ||||||
|  | //
 | ||||||
|  | // We may want to define this locally to a package to get package tagged log
 | ||||||
|  | // messages.
 | ||||||
|  | var G = GetLogger | ||||||
|  | 
 | ||||||
| // L is an alias for the standard logger.
 | // L is an alias for the standard logger.
 | ||||||
| var L = &Entry{ | var L = &Entry{ | ||||||
| 	Logger: logrus.StandardLogger(), | 	Logger: logrus.StandardLogger(), | ||||||
|  | @ -169,11 +175,6 @@ func WithLogger(ctx context.Context, logger *Entry) context.Context { | ||||||
| // GetLogger retrieves the current logger from the context. If no logger is
 | // GetLogger retrieves the current logger from the context. If no logger is
 | ||||||
| // available, the default logger is returned.
 | // available, the default logger is returned.
 | ||||||
| func GetLogger(ctx context.Context) *Entry { | func GetLogger(ctx context.Context) *Entry { | ||||||
| 	return G(ctx) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| // G is a shorthand for [GetLogger].
 |  | ||||||
| func G(ctx context.Context) *Entry { |  | ||||||
| 	if logger := ctx.Value(loggerKey{}); logger != nil { | 	if logger := ctx.Value(loggerKey{}); logger != nil { | ||||||
| 		return logger.(*Entry) | 		return logger.(*Entry) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -22,6 +22,7 @@ import ( | ||||||
| 	"strconv" | 	"strconv" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
|  | 	"github.com/Microsoft/hcsshim/osversion" | ||||||
| 	specs "github.com/opencontainers/image-spec/specs-go/v1" | 	specs "github.com/opencontainers/image-spec/specs-go/v1" | ||||||
| 	"golang.org/x/sys/windows" | 	"golang.org/x/sys/windows" | ||||||
| ) | ) | ||||||
|  | @ -50,15 +51,36 @@ func (m windowsmatcher) Match(p specs.Platform) bool { | ||||||
| 	match := m.defaultMatcher.Match(p) | 	match := m.defaultMatcher.Match(p) | ||||||
| 
 | 
 | ||||||
| 	if match && m.OS == "windows" { | 	if match && m.OS == "windows" { | ||||||
| 		if strings.HasPrefix(p.OSVersion, m.osVersionPrefix) { | 		// HPC containers do not have OS version filled
 | ||||||
|  | 		if p.OSVersion == "" { | ||||||
| 			return true | 			return true | ||||||
| 		} | 		} | ||||||
| 		return p.OSVersion == "" | 
 | ||||||
|  | 		hostOsVersion := GetOsVersion(m.osVersionPrefix) | ||||||
|  | 		ctrOsVersion := GetOsVersion(p.OSVersion) | ||||||
|  | 		return osversion.CheckHostAndContainerCompat(hostOsVersion, ctrOsVersion) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return match | 	return match | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func GetOsVersion(osVersionPrefix string) osversion.OSVersion { | ||||||
|  | 	parts := strings.Split(osVersionPrefix, ".") | ||||||
|  | 	if len(parts) < 3 { | ||||||
|  | 		return osversion.OSVersion{} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	majorVersion, _ := strconv.Atoi(parts[0]) | ||||||
|  | 	minorVersion, _ := strconv.Atoi(parts[1]) | ||||||
|  | 	buildNumber, _ := strconv.Atoi(parts[2]) | ||||||
|  | 
 | ||||||
|  | 	return osversion.OSVersion{ | ||||||
|  | 		MajorVersion: uint8(majorVersion), | ||||||
|  | 		MinorVersion: uint8(minorVersion), | ||||||
|  | 		Build:        uint16(buildNumber), | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Less sorts matched platforms in front of other platforms.
 | // Less sorts matched platforms in front of other platforms.
 | ||||||
| // For matched platforms, it puts platforms with larger revision
 | // For matched platforms, it puts platforms with larger revision
 | ||||||
| // number in front.
 | // number in front.
 | ||||||
|  |  | ||||||
|  | @ -196,6 +196,10 @@ func Parse(specifier string) (specs.Platform, error) { | ||||||
| 				p.Variant = cpuVariant() | 				p.Variant = cpuVariant() | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  | 			if p.OS == "windows" { | ||||||
|  | 				p.OSVersion = GetWindowsOsVersion() | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
| 			return p, nil | 			return p, nil | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -218,6 +222,10 @@ func Parse(specifier string) (specs.Platform, error) { | ||||||
| 			p.Variant = "" | 			p.Variant = "" | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		if p.OS == "windows" { | ||||||
|  | 			p.OSVersion = GetWindowsOsVersion() | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		return p, nil | 		return p, nil | ||||||
| 	case 3: | 	case 3: | ||||||
| 		// we have a fully specified variant, this is rare
 | 		// we have a fully specified variant, this is rare
 | ||||||
|  | @ -227,6 +235,10 @@ func Parse(specifier string) (specs.Platform, error) { | ||||||
| 			p.Variant = "v8" | 			p.Variant = "v8" | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		if p.OS == "windows" { | ||||||
|  | 			p.OSVersion = GetWindowsOsVersion() | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
| 		return p, nil | 		return p, nil | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -28,3 +28,7 @@ func newDefaultMatcher(platform specs.Platform) Matcher { | ||||||
| 		Platform: Normalize(platform), | 		Platform: Normalize(platform), | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func GetWindowsOsVersion() string { | ||||||
|  | 	return "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -17,7 +17,10 @@ | ||||||
| package platforms | package platforms | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 
 | ||||||
| 	specs "github.com/opencontainers/image-spec/specs-go/v1" | 	specs "github.com/opencontainers/image-spec/specs-go/v1" | ||||||
|  | 	"golang.org/x/sys/windows" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // NewMatcher returns a Windows matcher that will match on osVersionPrefix if
 | // NewMatcher returns a Windows matcher that will match on osVersionPrefix if
 | ||||||
|  | @ -32,3 +35,8 @@ func newDefaultMatcher(platform specs.Platform) Matcher { | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func GetWindowsOsVersion() string { | ||||||
|  | 	major, minor, build := windows.RtlGetNtVersionNumbers() | ||||||
|  | 	return fmt.Sprintf("%d.%d.%d", major, minor, build) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -79,6 +79,9 @@ github.com/Microsoft/go-winio/internal/fs | ||||||
| github.com/Microsoft/go-winio/internal/socket | github.com/Microsoft/go-winio/internal/socket | ||||||
| github.com/Microsoft/go-winio/internal/stringbuffer | github.com/Microsoft/go-winio/internal/stringbuffer | ||||||
| github.com/Microsoft/go-winio/pkg/guid | github.com/Microsoft/go-winio/pkg/guid | ||||||
|  | # github.com/Microsoft/hcsshim v0.11.0 | ||||||
|  | ## explicit; go 1.18 | ||||||
|  | github.com/Microsoft/hcsshim/osversion | ||||||
| # github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 | # github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 | ||||||
| ## explicit; go 1.13 | ## explicit; go 1.13 | ||||||
| github.com/ProtonMail/go-crypto/bitcurves | github.com/ProtonMail/go-crypto/bitcurves | ||||||
|  | @ -286,7 +289,7 @@ github.com/containerd/cgroups | ||||||
| github.com/containerd/cgroups/stats/v1 | github.com/containerd/cgroups/stats/v1 | ||||||
| github.com/containerd/cgroups/v2 | github.com/containerd/cgroups/v2 | ||||||
| github.com/containerd/cgroups/v2/stats | github.com/containerd/cgroups/v2/stats | ||||||
| # github.com/containerd/containerd v1.7.5 | # github.com/containerd/containerd v1.7.6 | ||||||
| ## explicit; go 1.19 | ## explicit; go 1.19 | ||||||
| github.com/containerd/containerd/cio | github.com/containerd/containerd/cio | ||||||
| github.com/containerd/containerd/defaults | github.com/containerd/containerd/defaults | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue