containerd/pkg
Paul "TBBle" Hampson 474a257b16 Implement Windows mounting for bind and windows-layer mounts
Using symlinks for bind mounts means we are not protecting an RO-mounted
layer against modification. Windows doesn't currently appear to offer a
better approach though, as we cannot create arbitrary empty WCOW scratch
layers at this time.

For windows-layer mounts, Unmount does not have access to the mounts
used to create it. So we store the relevant data in an Alternate Data
Stream on the mountpoint in order to be able to Unmount later.

Based on approach in https://github.com/containerd/containerd/pull/2366,
with sign-offs recorded as 'Based-on-work-by' trailers below.

This also partially-reverts some changes made in #6034 as they are not
needed with this mounting implmentation, which no longer needs to be
handled specially by the caller compared to non-Windows mounts.

Signed-off-by: Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>
Based-on-work-by: Michael Crosby <crosbymichael@gmail.com>
Based-on-work-by: Darren Stahl <darst@microsoft.com>
2023-03-31 06:15:17 -07:00
..
apparmor pkg/apparmor: clarify Godoc 2023-02-10 10:23:59 -07:00
blockio pkg: rename {blockio,rdt}_default.go -> nonlinux.go 2023-02-12 08:35:17 +08:00
cap lint: remove //nolint:dupword that are no longer needed 2023-02-16 03:50:23 +09:00
cleanup Add cleanup package for context management during cleanup 2023-01-03 12:30:26 -08:00
cri Implement Windows mounting for bind and windows-layer mounts 2023-03-31 06:15:17 -07:00
dialer chore: use go fix to cleanup old +build buildtag 2022-12-29 14:25:14 +08:00
epoch epoch: fix unit test when SOURCE_DATE_EPOCH is set 2023-03-03 15:12:22 -08:00
failpoint Run gofmt 1.19 2022-08-04 18:18:33 -07:00
hasher digest: use github.com/minio/sha256-simd 2022-12-08 18:50:00 +09:00
ioutil Run gofmt 1.19 2022-08-04 18:18:33 -07:00
kmutex Stop using math/rand.Read and rand.Seed (deprecated in Go 1.20) 2023-02-16 03:50:23 +09:00
netns Merge pull request #7879 from fuweid/clean-build-tags 2022-12-30 00:22:03 -08:00
nri pkg/nri: update NRI configuration. 2023-02-26 19:56:31 +02:00
oom chore: use go fix to cleanup old +build buildtag 2022-12-29 14:25:14 +08:00
os Move WithMounts to specs 2023-01-11 13:03:59 -08:00
process 'go routine' should be 'goroutine' 2023-02-08 14:10:34 +08:00
progress update golangci-lint to v1.49.0 2022-10-12 14:41:01 +02:00
randutil Stop using math/rand.Read and rand.Seed (deprecated in Go 1.20) 2023-02-16 03:50:23 +09:00
rdt pkg: rename {blockio,rdt}_default.go -> nonlinux.go 2023-02-12 08:35:17 +08:00
registrar feat: replace github.com/pkg/errors to errors 2022-01-07 10:27:03 +08:00
runtimeoptions/v1 Update runtime options to include bytes blob 2022-12-07 10:55:06 -08:00
schedcore add runc shim support for sched core 2021-10-08 16:18:09 +00:00
seccomp chore: use go fix to cleanup old +build buildtag 2022-12-29 14:25:14 +08:00
seed Stop using math/rand.Read and rand.Seed (deprecated in Go 1.20) 2023-02-16 03:50:23 +09:00
seutil seutil: Fix setting the "container_kvm_t" label 2021-12-14 00:09:17 +01:00
shutdown Expose Done and Err in Shutdown service 2022-11-16 22:03:44 -08:00
snapshotters Export remote snapshotter label handler 2023-02-01 23:03:23 +09:00
stdio Add logging binary support when terminal is true 2020-08-25 17:28:29 -07:00
streaming go.mod: github.com/containerd/typeurl/v2 v2.1.0 2023-02-11 23:39:52 +09:00
testutil chore: use go fix to cleanup old +build buildtag 2022-12-29 14:25:14 +08:00
timeout feat: use rwmutex instead 2021-11-16 11:06:40 +08:00
transfer feat: tag image using Transfer api 2023-03-05 23:22:17 +08:00
truncindex error strings should not be capitalized 2023-02-15 14:30:36 +08:00
ttrpcutil using ContextDialer instead 2022-07-20 22:53:42 +08:00
unpack Merge pull request #8143 from mxpv/log 2023-02-21 10:22:23 +08:00
userns chore: use go fix to cleanup old +build buildtag 2022-12-29 14:25:14 +08:00