summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDjordje Lukic <djordje.lukic@docker.com>2023-04-07 10:56:37 +0200
committerSebastiaan van Stijn <github@gone.nl>2023-05-05 20:20:12 +0200
commite00f6efb20f5542afa531667671bbf01e9f5998c (patch)
tree49e9c63e11e1de62289b4e05205857d87ed1a09b
parentbd4620f6ee0d68f2080e6d82cb0668e53ce63dec (diff)
downloaddocker-e00f6efb20f5542afa531667671bbf01e9f5998c.tar.gz
Vendor containerd 1.6.x with the readonly mount fix
Uses containerd from release/1.6 commit https://github.com/containerd/containerd/commit/c0efc63d3907e530740a71ca8dc5e559a165dbdd Signed-off-by: Djordje Lukic <djordje.lukic@docker.com> (cherry picked from commit be4abf9d6e7332785ba6819fa026f0f3e4fdca6f) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
-rw-r--r--vendor.mod2
-rw-r--r--vendor.sum4
-rw-r--r--vendor/github.com/containerd/containerd/Vagrantfile2
-rw-r--r--vendor/github.com/containerd/containerd/images/archive/exporter.go40
-rw-r--r--vendor/github.com/containerd/containerd/oci/spec_opts.go33
-rw-r--r--vendor/modules.txt2
6 files changed, 29 insertions, 54 deletions
diff --git a/vendor.mod b/vendor.mod
index 3bef3c9272..2145a89294 100644
--- a/vendor.mod
+++ b/vendor.mod
@@ -19,7 +19,7 @@ require (
github.com/bsphere/le_go v0.0.0-20200109081728-fc06dab2caa8
github.com/cloudflare/cfssl v0.0.0-20180323000720-5d63dbd981b5
github.com/containerd/cgroups v1.0.4
- github.com/containerd/containerd v1.6.20
+ github.com/containerd/containerd v1.6.21-0.20230406162538-c0efc63d3907
github.com/containerd/continuity v0.3.0
github.com/containerd/fifo v1.1.0
github.com/containerd/typeurl v1.0.2
diff --git a/vendor.sum b/vendor.sum
index 034b87de48..16e329befa 100644
--- a/vendor.sum
+++ b/vendor.sum
@@ -243,8 +243,8 @@ github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09Zvgq
github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c=
-github.com/containerd/containerd v1.6.20 h1:+itjwpdqXpzHB/QAiWc/BZCjjVfcNgw69w/oIeF4Oy0=
-github.com/containerd/containerd v1.6.20/go.mod h1:apei1/i5Ux2FzrK6+DM/suEsGuK/MeVOfy8tR2q7Wnw=
+github.com/containerd/containerd v1.6.21-0.20230406162538-c0efc63d3907 h1:77Ml66lA9zDrfdVBpNTAnxko/vm5YKRlDEJwkWgxYlg=
+github.com/containerd/containerd v1.6.21-0.20230406162538-c0efc63d3907/go.mod h1:apei1/i5Ux2FzrK6+DM/suEsGuK/MeVOfy8tR2q7Wnw=
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
diff --git a/vendor/github.com/containerd/containerd/Vagrantfile b/vendor/github.com/containerd/containerd/Vagrantfile
index a4a05edf86..0300c4200b 100644
--- a/vendor/github.com/containerd/containerd/Vagrantfile
+++ b/vendor/github.com/containerd/containerd/Vagrantfile
@@ -93,7 +93,7 @@ EOF
config.vm.provision "install-golang", type: "shell", run: "once" do |sh|
sh.upload_path = "/tmp/vagrant-install-golang"
sh.env = {
- 'GO_VERSION': ENV['GO_VERSION'] || "1.19.7",
+ 'GO_VERSION': ENV['GO_VERSION'] || "1.19.8",
}
sh.inline = <<~SHELL
#!/usr/bin/env bash
diff --git a/vendor/github.com/containerd/containerd/images/archive/exporter.go b/vendor/github.com/containerd/containerd/images/archive/exporter.go
index 40a0a33df0..6943a7f8bc 100644
--- a/vendor/github.com/containerd/containerd/images/archive/exporter.go
+++ b/vendor/github.com/containerd/containerd/images/archive/exporter.go
@@ -176,7 +176,7 @@ func Export(ctx context.Context, store content.Provider, writer io.Writer, opts
}
name := desc.Annotations[images.AnnotationImageName]
- if name != "" && !eo.skipDockerManifest {
+ if name != "" {
mt.names = append(mt.names, name)
}
case images.MediaTypeDockerSchema2ManifestList, ocispec.MediaTypeImageIndex:
@@ -215,26 +215,24 @@ func Export(ctx context.Context, store content.Provider, writer io.Writer, opts
records = append(records, r...)
}
- if !eo.skipDockerManifest {
- if len(manifests) >= 1 {
- if len(manifests) > 1 {
- sort.SliceStable(manifests, func(i, j int) bool {
- if manifests[i].Platform == nil {
- return false
- }
- if manifests[j].Platform == nil {
- return true
- }
- return eo.platform.Less(*manifests[i].Platform, *manifests[j].Platform)
- })
- }
- d = manifests[0].Digest
- dManifests[d] = &exportManifest{
- manifest: manifests[0],
- }
- } else if eo.platform != nil {
- return fmt.Errorf("no manifest found for platform: %w", errdefs.ErrNotFound)
+ if len(manifests) >= 1 {
+ if len(manifests) > 1 {
+ sort.SliceStable(manifests, func(i, j int) bool {
+ if manifests[i].Platform == nil {
+ return false
+ }
+ if manifests[j].Platform == nil {
+ return true
+ }
+ return eo.platform.Less(*manifests[i].Platform, *manifests[j].Platform)
+ })
+ }
+ d = manifests[0].Digest
+ dManifests[d] = &exportManifest{
+ manifest: manifests[0],
}
+ } else if eo.platform != nil {
+ return fmt.Errorf("no manifest found for platform: %w", errdefs.ErrNotFound)
}
resolvedIndex[desc.Digest] = d
}
@@ -250,7 +248,7 @@ func Export(ctx context.Context, store content.Provider, writer io.Writer, opts
}
}
- if len(dManifests) > 0 {
+ if !eo.skipDockerManifest && len(dManifests) > 0 {
tr, err := manifestsRecord(ctx, store, dManifests)
if err != nil {
return fmt.Errorf("unable to create manifests file: %w", err)
diff --git a/vendor/github.com/containerd/containerd/oci/spec_opts.go b/vendor/github.com/containerd/containerd/oci/spec_opts.go
index cd251c3886..9c9160c591 100644
--- a/vendor/github.com/containerd/containerd/oci/spec_opts.go
+++ b/vendor/github.com/containerd/containerd/oci/spec_opts.go
@@ -663,8 +663,7 @@ func WithUser(userstr string) SpecOpts {
return err
}
- mounts = tryReadonlyMounts(mounts)
- return mount.WithTempMount(ctx, mounts, f)
+ return mount.WithReadonlyTempMount(ctx, mounts, f)
default:
return fmt.Errorf("invalid USER value %s", userstr)
}
@@ -724,8 +723,7 @@ func WithUserID(uid uint32) SpecOpts {
return err
}
- mounts = tryReadonlyMounts(mounts)
- return mount.WithTempMount(ctx, mounts, setUser)
+ return mount.WithReadonlyTempMount(ctx, mounts, setUser)
}
}
@@ -769,8 +767,7 @@ func WithUsername(username string) SpecOpts {
return err
}
- mounts = tryReadonlyMounts(mounts)
- return mount.WithTempMount(ctx, mounts, setUser)
+ return mount.WithReadonlyTempMount(ctx, mounts, setUser)
} else if s.Windows != nil {
s.Process.User.Username = username
} else {
@@ -848,8 +845,7 @@ func WithAdditionalGIDs(userstr string) SpecOpts {
return err
}
- mounts = tryReadonlyMounts(mounts)
- return mount.WithTempMount(ctx, mounts, setAdditionalGids)
+ return mount.WithReadonlyTempMount(ctx, mounts, setAdditionalGids)
}
}
@@ -910,8 +906,7 @@ func WithAppendAdditionalGroups(groups ...string) SpecOpts {
return err
}
- mounts = tryReadonlyMounts(mounts)
- return mount.WithTempMount(ctx, mounts, setAdditionalGids)
+ return mount.WithReadonlyTempMount(ctx, mounts, setAdditionalGids)
}
}
@@ -1389,21 +1384,3 @@ func WithDevShmSize(kb int64) SpecOpts {
return ErrNoShmMount
}
}
-
-// tryReadonlyMounts is used by the options which are trying to get user/group
-// information from container's rootfs. Since the option does read operation
-// only, this helper will append ReadOnly mount option to prevent linux kernel
-// from syncing whole filesystem in umount syscall.
-//
-// TODO(fuweid):
-//
-// Currently, it only works for overlayfs. I think we can apply it to other
-// kinds of filesystem. Maybe we can return `ro` option by `snapshotter.Mount`
-// API, when the caller passes that experimental annotation
-// `containerd.io/snapshot/readonly.mount` something like that.
-func tryReadonlyMounts(mounts []mount.Mount) []mount.Mount {
- if len(mounts) == 1 && mounts[0].Type == "overlay" {
- mounts[0].Options = append(mounts[0].Options, "ro")
- }
- return mounts
-}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index fd400982e1..921811dfb2 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -160,7 +160,7 @@ github.com/containerd/cgroups/v2/stats
# github.com/containerd/console v1.0.3
## explicit; go 1.13
github.com/containerd/console
-# github.com/containerd/containerd v1.6.20
+# github.com/containerd/containerd v1.6.21-0.20230406162538-c0efc63d3907
## explicit; go 1.17
github.com/containerd/containerd
github.com/containerd/containerd/api/events