Browse Source

vendor: update containerd to 63522d9

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Tonis Tiigi 7 years ago
parent
commit
44f3dd7653
53 changed files with 484 additions and 389 deletions
  1. 1 1
      cmd/dockerd/daemon_unix.go
  2. 1 1
      daemon/start_unix.go
  3. 12 16
      libcontainerd/client_daemon.go
  4. 1 1
      plugin/executor/containerd/containerd.go
  5. 2 2
      vendor.conf
  6. 8 8
      vendor/github.com/containerd/console/console_linux.go
  7. 36 72
      vendor/github.com/containerd/console/console_windows.go
  8. 0 10
      vendor/github.com/containerd/containerd/cio/io_unix.go
  9. 7 8
      vendor/github.com/containerd/containerd/container_opts_unix.go
  10. 37 2
      vendor/github.com/containerd/containerd/content/content.go
  11. 8 7
      vendor/github.com/containerd/containerd/content/helpers.go
  12. 20 8
      vendor/github.com/containerd/containerd/content/local/store.go
  13. 15 6
      vendor/github.com/containerd/containerd/content/proxy/content_store.go
  14. 8 8
      vendor/github.com/containerd/containerd/images/image.go
  15. 55 39
      vendor/github.com/containerd/containerd/metadata/content.go
  16. 1 1
      vendor/github.com/containerd/containerd/oci/spec_opts_unix.go
  17. 1 1
      vendor/github.com/containerd/containerd/oci/spec_opts_windows.go
  18. 12 3
      vendor/github.com/containerd/containerd/remotes/docker/pusher.go
  19. 8 8
      vendor/github.com/containerd/containerd/remotes/docker/schema1/converter.go
  20. 2 2
      vendor/github.com/containerd/containerd/remotes/handlers.go
  21. 3 3
      vendor/github.com/containerd/containerd/runtime/linux/bundle.go
  22. 2 1
      vendor/github.com/containerd/containerd/runtime/linux/proc/deleted_state.go
  23. 4 3
      vendor/github.com/containerd/containerd/runtime/linux/proc/exec.go
  24. 0 0
      vendor/github.com/containerd/containerd/runtime/linux/proc/exec_state.go
  25. 9 8
      vendor/github.com/containerd/containerd/runtime/linux/proc/init.go
  26. 8 7
      vendor/github.com/containerd/containerd/runtime/linux/proc/init_state.go
  27. 0 0
      vendor/github.com/containerd/containerd/runtime/linux/proc/io.go
  28. 42 0
      vendor/github.com/containerd/containerd/runtime/linux/proc/process.go
  29. 0 0
      vendor/github.com/containerd/containerd/runtime/linux/proc/types.go
  30. 0 0
      vendor/github.com/containerd/containerd/runtime/linux/proc/utils.go
  31. 1 1
      vendor/github.com/containerd/containerd/runtime/linux/process.go
  32. 17 0
      vendor/github.com/containerd/containerd/runtime/linux/runctypes/doc.go
  33. 36 36
      vendor/github.com/containerd/containerd/runtime/linux/runctypes/runc.pb.go
  34. 1 1
      vendor/github.com/containerd/containerd/runtime/linux/runctypes/runc.proto
  35. 3 3
      vendor/github.com/containerd/containerd/runtime/linux/runtime.go
  36. 2 2
      vendor/github.com/containerd/containerd/runtime/linux/task.go
  37. 1 23
      vendor/github.com/containerd/containerd/runtime/proc/proc.go
  38. 2 2
      vendor/github.com/containerd/containerd/runtime/shim/client/client.go
  39. 0 0
      vendor/github.com/containerd/containerd/runtime/shim/client/client_linux.go
  40. 0 0
      vendor/github.com/containerd/containerd/runtime/shim/client/client_unix.go
  41. 1 1
      vendor/github.com/containerd/containerd/runtime/shim/local.go
  42. 0 0
      vendor/github.com/containerd/containerd/runtime/shim/reaper.go
  43. 7 6
      vendor/github.com/containerd/containerd/runtime/shim/service.go
  44. 0 0
      vendor/github.com/containerd/containerd/runtime/shim/service_linux.go
  45. 0 0
      vendor/github.com/containerd/containerd/runtime/shim/service_unix.go
  46. 17 0
      vendor/github.com/containerd/containerd/runtime/shim/v1/doc.go
  47. 75 75
      vendor/github.com/containerd/containerd/runtime/shim/v1/shim.pb.go
  48. 1 1
      vendor/github.com/containerd/containerd/runtime/shim/v1/shim.proto
  49. 10 4
      vendor/github.com/containerd/containerd/services/server/server.go
  50. 1 1
      vendor/github.com/containerd/containerd/task.go
  51. 1 1
      vendor/github.com/containerd/containerd/task_opts.go
  52. 1 1
      vendor/github.com/containerd/containerd/task_opts_linux.go
  53. 4 5
      vendor/github.com/containerd/containerd/vendor.conf

+ 1 - 1
cmd/dockerd/daemon_unix.go

@@ -10,7 +10,7 @@ import (
 	"path/filepath"
 	"path/filepath"
 	"strconv"
 	"strconv"
 
 
-	"github.com/containerd/containerd/linux"
+	"github.com/containerd/containerd/runtime/linux"
 	"github.com/docker/docker/cmd/dockerd/hack"
 	"github.com/docker/docker/cmd/dockerd/hack"
 	"github.com/docker/docker/daemon"
 	"github.com/docker/docker/daemon"
 	"github.com/docker/docker/libcontainerd"
 	"github.com/docker/docker/libcontainerd"

+ 1 - 1
daemon/start_unix.go

@@ -7,7 +7,7 @@ import (
 	"os/exec"
 	"os/exec"
 	"path/filepath"
 	"path/filepath"
 
 
-	"github.com/containerd/containerd/linux/runctypes"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
 	"github.com/docker/docker/container"
 	"github.com/docker/docker/container"
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/errdefs"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"

+ 12 - 16
libcontainerd/client_daemon.go

@@ -16,9 +16,6 @@ import (
 	"syscall"
 	"syscall"
 	"time"
 	"time"
 
 
-	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/status"
-
 	"github.com/containerd/containerd"
 	"github.com/containerd/containerd"
 	apievents "github.com/containerd/containerd/api/events"
 	apievents "github.com/containerd/containerd/api/events"
 	"github.com/containerd/containerd/api/types"
 	"github.com/containerd/containerd/api/types"
@@ -28,14 +25,16 @@ import (
 	containerderrors "github.com/containerd/containerd/errdefs"
 	containerderrors "github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/events"
 	"github.com/containerd/containerd/events"
 	"github.com/containerd/containerd/images"
 	"github.com/containerd/containerd/images"
-	"github.com/containerd/containerd/linux/runctypes"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
 	"github.com/containerd/typeurl"
 	"github.com/containerd/typeurl"
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/opencontainers/image-spec/specs-go/v1"
-	"github.com/opencontainers/runtime-spec/specs-go"
+	specs "github.com/opencontainers/runtime-spec/specs-go"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 	"github.com/sirupsen/logrus"
 	"github.com/sirupsen/logrus"
+	"google.golang.org/grpc/codes"
+	"google.golang.org/grpc/status"
 )
 )
 
 
 // InitProcessName is the name given to the first process of a
 // InitProcessName is the name given to the first process of a
@@ -295,7 +294,7 @@ func (c *client) Start(ctx context.Context, id, checkpointDir string, withStdin
 		func(id string) (cio.IO, error) {
 		func(id string) (cio.IO, error) {
 			fifos := newFIFOSet(ctr.bundleDir, InitProcessName, withStdin, spec.Process.Terminal)
 			fifos := newFIFOSet(ctr.bundleDir, InitProcessName, withStdin, spec.Process.Terminal)
 
 
-			rio, err = c.createIO(fifos, id, InitProcessName, stdinCloseSync, attachStdio, spec.Process.Terminal)
+			rio, err = c.createIO(fifos, id, InitProcessName, stdinCloseSync, attachStdio)
 			return rio, err
 			return rio, err
 		},
 		},
 		func(_ context.Context, _ *containerd.Client, info *containerd.TaskInfo) error {
 		func(_ context.Context, _ *containerd.Client, info *containerd.TaskInfo) error {
@@ -366,7 +365,7 @@ func (c *client) Exec(ctx context.Context, containerID, processID string, spec *
 	}()
 	}()
 
 
 	p, err = t.Exec(ctx, processID, spec, func(id string) (cio.IO, error) {
 	p, err = t.Exec(ctx, processID, spec, func(id string) (cio.IO, error) {
-		rio, err = c.createIO(fifos, containerID, processID, stdinCloseSync, attachStdio, spec.Terminal)
+		rio, err = c.createIO(fifos, containerID, processID, stdinCloseSync, attachStdio)
 		return rio, err
 		return rio, err
 	})
 	})
 	if err != nil {
 	if err != nil {
@@ -575,7 +574,7 @@ func (c *client) CreateCheckpoint(ctx context.Context, containerID, checkpointDi
 		}
 		}
 	}()
 	}()
 
 
-	b, err := content.ReadBlob(ctx, c.getRemote().ContentStore(), img.Target().Digest)
+	b, err := content.ReadBlob(ctx, c.getRemote().ContentStore(), img.Target())
 	if err != nil {
 	if err != nil {
 		return errdefs.System(errors.Wrapf(err, "failed to retrieve checkpoint data"))
 		return errdefs.System(errors.Wrapf(err, "failed to retrieve checkpoint data"))
 	}
 	}
@@ -595,7 +594,7 @@ func (c *client) CreateCheckpoint(ctx context.Context, containerID, checkpointDi
 		return errdefs.System(errors.Wrapf(err, "invalid checkpoint"))
 		return errdefs.System(errors.Wrapf(err, "invalid checkpoint"))
 	}
 	}
 
 
-	rat, err := c.getRemote().ContentStore().ReaderAt(ctx, cpDesc.Digest)
+	rat, err := c.getRemote().ContentStore().ReaderAt(ctx, *cpDesc)
 	if err != nil {
 	if err != nil {
 		return errdefs.System(errors.Wrapf(err, "failed to get checkpoint reader"))
 		return errdefs.System(errors.Wrapf(err, "failed to get checkpoint reader"))
 	}
 	}
@@ -645,16 +644,13 @@ func (c *client) getProcess(containerID, processID string) (containerd.Process,
 
 
 // createIO creates the io to be used by a process
 // createIO creates the io to be used by a process
 // This needs to get a pointer to interface as upon closure the process may not have yet been registered
 // This needs to get a pointer to interface as upon closure the process may not have yet been registered
-func (c *client) createIO(fifos *cio.FIFOSet, containerID, processID string, stdinCloseSync chan struct{}, attachStdio StdioCallback, terminal bool) (cio.IO, error) {
+func (c *client) createIO(fifos *cio.FIFOSet, containerID, processID string, stdinCloseSync chan struct{}, attachStdio StdioCallback) (cio.IO, error) {
 	var (
 	var (
 		io  *cio.DirectIO
 		io  *cio.DirectIO
 		err error
 		err error
 	)
 	)
-	if terminal {
-		io, err = cio.NewDirectIOWithTerminal(context.Background(), fifos)
-	} else {
-		io, err = cio.NewDirectIO(context.Background(), fifos)
-	}
+
+	io, err = cio.NewDirectIO(context.Background(), fifos)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
@@ -858,7 +854,7 @@ func (c *client) processEventStream(ctx context.Context) {
 }
 }
 
 
 func (c *client) writeContent(ctx context.Context, mediaType, ref string, r io.Reader) (*types.Descriptor, error) {
 func (c *client) writeContent(ctx context.Context, mediaType, ref string, r io.Reader) (*types.Descriptor, error) {
-	writer, err := c.getRemote().ContentStore().Writer(ctx, ref, 0, "")
+	writer, err := c.getRemote().ContentStore().Writer(ctx, content.WithRef(ref))
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}

+ 1 - 1
plugin/executor/containerd/containerd.go

@@ -8,7 +8,7 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/containerd/containerd/cio"
 	"github.com/containerd/containerd/cio"
-	"github.com/containerd/containerd/linux/runctypes"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/libcontainerd"
 	"github.com/docker/docker/libcontainerd"
 	"github.com/opencontainers/runtime-spec/specs-go"
 	"github.com/opencontainers/runtime-spec/specs-go"

+ 2 - 2
vendor.conf

@@ -112,11 +112,11 @@ github.com/googleapis/gax-go v2.0.0
 google.golang.org/genproto 694d95ba50e67b2e363f3483057db5d4910c18f9
 google.golang.org/genproto 694d95ba50e67b2e363f3483057db5d4910c18f9
 
 
 # containerd
 # containerd
-github.com/containerd/containerd c7083eed5d8633d54c25fe81aa609010a4f2e495
+github.com/containerd/containerd 63522d9eaa5a0443d225642c4b6f4f5fdedf932b
 github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
 github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
 github.com/containerd/continuity d3c23511c1bf5851696cba83143d9cbcd666869b
 github.com/containerd/continuity d3c23511c1bf5851696cba83143d9cbcd666869b
 github.com/containerd/cgroups fe281dd265766145e943a034aa41086474ea6130
 github.com/containerd/cgroups fe281dd265766145e943a034aa41086474ea6130
-github.com/containerd/console cb7008ab3d8359b78c5f464cb7cf160107ad5925
+github.com/containerd/console 9290d21dc56074581f619579c43d970b4514bc08
 github.com/containerd/go-runc f271fa2021de855d4d918dbef83c5fe19db1bdd
 github.com/containerd/go-runc f271fa2021de855d4d918dbef83c5fe19db1bdd
 github.com/containerd/typeurl f6943554a7e7e88b3c14aad190bf05932da84788
 github.com/containerd/typeurl f6943554a7e7e88b3c14aad190bf05932da84788
 github.com/stevvooe/ttrpc d4528379866b0ce7e9d71f3eb96f0582fc374577
 github.com/stevvooe/ttrpc d4528379866b0ce7e9d71f3eb96f0582fc374577

+ 8 - 8
vendor/github.com/containerd/console/console_linux.go

@@ -72,7 +72,7 @@ func NewEpoller() (*Epoller, error) {
 	}, nil
 	}, nil
 }
 }
 
 
-// Add creates a epoll console based on the provided console. The console will
+// Add creates an epoll console based on the provided console. The console will
 // be registered with EPOLLET (i.e. using edge-triggered notification) and its
 // be registered with EPOLLET (i.e. using edge-triggered notification) and its
 // file descriptor will be set to non-blocking mode. After this, user should use
 // file descriptor will be set to non-blocking mode. After this, user should use
 // the return console to perform I/O.
 // the return console to perform I/O.
@@ -134,7 +134,7 @@ func (e *Epoller) Wait() error {
 	}
 	}
 }
 }
 
 
-// Close unregister the console's file descriptor from epoll interface
+// CloseConsole unregisters the console's file descriptor from epoll interface
 func (e *Epoller) CloseConsole(fd int) error {
 func (e *Epoller) CloseConsole(fd int) error {
 	e.mu.Lock()
 	e.mu.Lock()
 	defer e.mu.Unlock()
 	defer e.mu.Unlock()
@@ -149,12 +149,12 @@ func (e *Epoller) getConsole(sysfd int) *EpollConsole {
 	return f
 	return f
 }
 }
 
 
-// Close the epoll fd
+// Close closes the epoll fd
 func (e *Epoller) Close() error {
 func (e *Epoller) Close() error {
 	return unix.Close(e.efd)
 	return unix.Close(e.efd)
 }
 }
 
 
-// EpollConsole acts like a console but register its file descriptor with a
+// EpollConsole acts like a console but registers its file descriptor with an
 // epoll fd and uses epoll API to perform I/O.
 // epoll fd and uses epoll API to perform I/O.
 type EpollConsole struct {
 type EpollConsole struct {
 	Console
 	Console
@@ -167,7 +167,7 @@ type EpollConsole struct {
 // Read reads up to len(p) bytes into p. It returns the number of bytes read
 // Read reads up to len(p) bytes into p. It returns the number of bytes read
 // (0 <= n <= len(p)) and any error encountered.
 // (0 <= n <= len(p)) and any error encountered.
 //
 //
-// If the console's read returns EAGAIN or EIO, we assumes that its a
+// If the console's read returns EAGAIN or EIO, we assume that it's a
 // temporary error because the other side went away and wait for the signal
 // temporary error because the other side went away and wait for the signal
 // generated by epoll event to continue.
 // generated by epoll event to continue.
 func (ec *EpollConsole) Read(p []byte) (n int, err error) {
 func (ec *EpollConsole) Read(p []byte) (n int, err error) {
@@ -207,7 +207,7 @@ func (ec *EpollConsole) Read(p []byte) (n int, err error) {
 // written from p (0 <= n <= len(p)) and any error encountered that caused
 // written from p (0 <= n <= len(p)) and any error encountered that caused
 // the write to stop early.
 // the write to stop early.
 //
 //
-// If writes to the console returns EAGAIN or EIO, we assumes that its a
+// If writes to the console returns EAGAIN or EIO, we assume that it's a
 // temporary error because the other side went away and wait for the signal
 // temporary error because the other side went away and wait for the signal
 // generated by epoll event to continue.
 // generated by epoll event to continue.
 func (ec *EpollConsole) Write(p []byte) (n int, err error) {
 func (ec *EpollConsole) Write(p []byte) (n int, err error) {
@@ -224,7 +224,7 @@ func (ec *EpollConsole) Write(p []byte) (n int, err error) {
 			} else {
 			} else {
 				hangup = (err == unix.EAGAIN || err == unix.EIO)
 				hangup = (err == unix.EAGAIN || err == unix.EIO)
 			}
 			}
-			// if the other end disappear, assume this is temporary and wait for the
+			// if the other end disappears, assume this is temporary and wait for the
 			// signal to continue again.
 			// signal to continue again.
 			if hangup {
 			if hangup {
 				ec.writec.Wait()
 				ec.writec.Wait()
@@ -242,7 +242,7 @@ func (ec *EpollConsole) Write(p []byte) (n int, err error) {
 	return n, err
 	return n, err
 }
 }
 
 
-// Close closed the file descriptor and signal call waiters for this fd.
+// Shutdown closes the file descriptor and signals call waiters for this fd.
 // It accepts a callback which will be called with the console's fd. The
 // It accepts a callback which will be called with the console's fd. The
 // callback typically will be used to do further cleanup such as unregister the
 // callback typically will be used to do further cleanup such as unregister the
 // console's fd from the epoll interface.
 // console's fd from the epoll interface.

+ 36 - 72
vendor/github.com/containerd/console/console_windows.go

@@ -17,7 +17,6 @@
 package console
 package console
 
 
 import (
 import (
-	"fmt"
 	"os"
 	"os"
 
 
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
@@ -29,90 +28,55 @@ var (
 	ErrNotImplemented = errors.New("not implemented")
 	ErrNotImplemented = errors.New("not implemented")
 )
 )
 
 
-func (m *master) initStdios() {
-	m.in = windows.Handle(os.Stdin.Fd())
-	if err := windows.GetConsoleMode(m.in, &m.inMode); err == nil {
-		// Validate that windows.ENABLE_VIRTUAL_TERMINAL_INPUT is supported, but do not set it.
-		if err = windows.SetConsoleMode(m.in, m.inMode|windows.ENABLE_VIRTUAL_TERMINAL_INPUT); err == nil {
-			vtInputSupported = true
-		}
-		// Unconditionally set the console mode back even on failure because SetConsoleMode
-		// remembers invalid bits on input handles.
-		windows.SetConsoleMode(m.in, m.inMode)
-	} else {
-		fmt.Printf("failed to get console mode for stdin: %v\n", err)
-	}
-
-	m.out = windows.Handle(os.Stdout.Fd())
-	if err := windows.GetConsoleMode(m.out, &m.outMode); err == nil {
-		if err := windows.SetConsoleMode(m.out, m.outMode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING); err == nil {
-			m.outMode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
+func (m *master) init() {
+	m.h = windows.Handle(m.f.Fd())
+	if err := windows.GetConsoleMode(m.h, &m.mode); err == nil {
+		if m.f == os.Stdin {
+			// Validate that windows.ENABLE_VIRTUAL_TERMINAL_INPUT is supported, but do not set it.
+			if err = windows.SetConsoleMode(m.h, m.mode|windows.ENABLE_VIRTUAL_TERMINAL_INPUT); err == nil {
+				vtInputSupported = true
+			}
+			// Unconditionally set the console mode back even on failure because SetConsoleMode
+			// remembers invalid bits on input handles.
+			windows.SetConsoleMode(m.h, m.mode)
+		} else if err := windows.SetConsoleMode(m.h, m.mode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING); err == nil {
+			m.mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
 		} else {
 		} else {
-			windows.SetConsoleMode(m.out, m.outMode)
+			windows.SetConsoleMode(m.h, m.mode)
 		}
 		}
-	} else {
-		fmt.Printf("failed to get console mode for stdout: %v\n", err)
-	}
-
-	m.err = windows.Handle(os.Stderr.Fd())
-	if err := windows.GetConsoleMode(m.err, &m.errMode); err == nil {
-		if err := windows.SetConsoleMode(m.err, m.errMode|windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING); err == nil {
-			m.errMode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING
-		} else {
-			windows.SetConsoleMode(m.err, m.errMode)
-		}
-	} else {
-		fmt.Printf("failed to get console mode for stderr: %v\n", err)
 	}
 	}
 }
 }
 
 
 type master struct {
 type master struct {
-	in     windows.Handle
-	inMode uint32
-
-	out     windows.Handle
-	outMode uint32
-
-	err     windows.Handle
-	errMode uint32
+	h    windows.Handle
+	mode uint32
+	f    *os.File
 }
 }
 
 
 func (m *master) SetRaw() error {
 func (m *master) SetRaw() error {
-	if err := makeInputRaw(m.in, m.inMode); err != nil {
-		return err
+	if m.f == os.Stdin {
+		if err := makeInputRaw(m.h, m.mode); err != nil {
+			return err
+		}
+	} else {
+		// Set StdOut and StdErr to raw mode, we ignore failures since
+		// windows.DISABLE_NEWLINE_AUTO_RETURN might not be supported on this version of
+		// Windows.
+		windows.SetConsoleMode(m.h, m.mode|windows.DISABLE_NEWLINE_AUTO_RETURN)
 	}
 	}
-
-	// Set StdOut and StdErr to raw mode, we ignore failures since
-	// windows.DISABLE_NEWLINE_AUTO_RETURN might not be supported on this version of
-	// Windows.
-
-	windows.SetConsoleMode(m.out, m.outMode|windows.DISABLE_NEWLINE_AUTO_RETURN)
-
-	windows.SetConsoleMode(m.err, m.errMode|windows.DISABLE_NEWLINE_AUTO_RETURN)
-
 	return nil
 	return nil
 }
 }
 
 
 func (m *master) Reset() error {
 func (m *master) Reset() error {
-	for _, s := range []struct {
-		fd   windows.Handle
-		mode uint32
-	}{
-		{m.in, m.inMode},
-		{m.out, m.outMode},
-		{m.err, m.errMode},
-	} {
-		if err := windows.SetConsoleMode(s.fd, s.mode); err != nil {
-			return errors.Wrap(err, "unable to restore console mode")
-		}
+	if err := windows.SetConsoleMode(m.h, m.mode); err != nil {
+		return errors.Wrap(err, "unable to restore console mode")
 	}
 	}
-
 	return nil
 	return nil
 }
 }
 
 
 func (m *master) Size() (WinSize, error) {
 func (m *master) Size() (WinSize, error) {
 	var info windows.ConsoleScreenBufferInfo
 	var info windows.ConsoleScreenBufferInfo
-	err := windows.GetConsoleScreenBufferInfo(m.out, &info)
+	err := windows.GetConsoleScreenBufferInfo(m.h, &info)
 	if err != nil {
 	if err != nil {
 		return WinSize{}, errors.Wrap(err, "unable to get console info")
 		return WinSize{}, errors.Wrap(err, "unable to get console info")
 	}
 	}
@@ -134,11 +98,11 @@ func (m *master) ResizeFrom(c Console) error {
 }
 }
 
 
 func (m *master) DisableEcho() error {
 func (m *master) DisableEcho() error {
-	mode := m.inMode &^ windows.ENABLE_ECHO_INPUT
+	mode := m.mode &^ windows.ENABLE_ECHO_INPUT
 	mode |= windows.ENABLE_PROCESSED_INPUT
 	mode |= windows.ENABLE_PROCESSED_INPUT
 	mode |= windows.ENABLE_LINE_INPUT
 	mode |= windows.ENABLE_LINE_INPUT
 
 
-	if err := windows.SetConsoleMode(m.in, mode); err != nil {
+	if err := windows.SetConsoleMode(m.h, mode); err != nil {
 		return errors.Wrap(err, "unable to set console to disable echo")
 		return errors.Wrap(err, "unable to set console to disable echo")
 	}
 	}
 
 
@@ -150,15 +114,15 @@ func (m *master) Close() error {
 }
 }
 
 
 func (m *master) Read(b []byte) (int, error) {
 func (m *master) Read(b []byte) (int, error) {
-	panic("not implemented on windows")
+	return m.f.Read(b)
 }
 }
 
 
 func (m *master) Write(b []byte) (int, error) {
 func (m *master) Write(b []byte) (int, error) {
-	panic("not implemented on windows")
+	return m.f.Write(b)
 }
 }
 
 
 func (m *master) Fd() uintptr {
 func (m *master) Fd() uintptr {
-	return uintptr(m.in)
+	return uintptr(m.h)
 }
 }
 
 
 // on windows, console can only be made from os.Std{in,out,err}, hence there
 // on windows, console can only be made from os.Std{in,out,err}, hence there
@@ -210,7 +174,7 @@ func newMaster(f *os.File) (Console, error) {
 	if f != os.Stdin && f != os.Stdout && f != os.Stderr {
 	if f != os.Stdin && f != os.Stdout && f != os.Stderr {
 		return nil, errors.New("creating a console from a file is not supported on windows")
 		return nil, errors.New("creating a console from a file is not supported on windows")
 	}
 	}
-	m := &master{}
-	m.initStdios()
+	m := &master{f: f}
+	m.init()
 	return m, nil
 	return m, nil
 }
 }

+ 0 - 10
vendor/github.com/containerd/containerd/cio/io_unix.go

@@ -141,18 +141,8 @@ func openFifos(ctx context.Context, fifos *FIFOSet) (pipes, error) {
 // NewDirectIO returns an IO implementation that exposes the IO streams as io.ReadCloser
 // NewDirectIO returns an IO implementation that exposes the IO streams as io.ReadCloser
 // and io.WriteCloser.
 // and io.WriteCloser.
 func NewDirectIO(ctx context.Context, fifos *FIFOSet) (*DirectIO, error) {
 func NewDirectIO(ctx context.Context, fifos *FIFOSet) (*DirectIO, error) {
-	return newDirectIO(ctx, fifos, false)
-}
-
-// NewDirectIOWithTerminal returns an IO implementation that exposes the streams with terminal enabled
-func NewDirectIOWithTerminal(ctx context.Context, fifos *FIFOSet) (*DirectIO, error) {
-	return newDirectIO(ctx, fifos, true)
-}
-
-func newDirectIO(ctx context.Context, fifos *FIFOSet, terminal bool) (*DirectIO, error) {
 	ctx, cancel := context.WithCancel(ctx)
 	ctx, cancel := context.WithCancel(ctx)
 	pipes, err := openFifos(ctx, fifos)
 	pipes, err := openFifos(ctx, fifos)
-	fifos.Config.Terminal = terminal
 	return &DirectIO{
 	return &DirectIO{
 		pipes: pipes,
 		pipes: pipes,
 		cio: cio{
 		cio: cio{

+ 7 - 8
vendor/github.com/containerd/containerd/container_opts_unix.go

@@ -31,14 +31,14 @@ import (
 	"github.com/containerd/containerd/content"
 	"github.com/containerd/containerd/content"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/images"
 	"github.com/containerd/containerd/images"
-	"github.com/containerd/containerd/linux/runctypes"
 	"github.com/containerd/containerd/mount"
 	"github.com/containerd/containerd/mount"
 	"github.com/containerd/containerd/platforms"
 	"github.com/containerd/containerd/platforms"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
 	"github.com/gogo/protobuf/proto"
 	"github.com/gogo/protobuf/proto"
 	protobuf "github.com/gogo/protobuf/types"
 	protobuf "github.com/gogo/protobuf/types"
-	digest "github.com/opencontainers/go-digest"
 	"github.com/opencontainers/image-spec/identity"
 	"github.com/opencontainers/image-spec/identity"
 	"github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/opencontainers/image-spec/specs-go/v1"
+	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
 
 
@@ -50,10 +50,9 @@ func WithCheckpoint(im Image, snapshotKey string) NewContainerOpts {
 	return func(ctx context.Context, client *Client, c *containers.Container) error {
 	return func(ctx context.Context, client *Client, c *containers.Container) error {
 		var (
 		var (
 			desc  = im.Target()
 			desc  = im.Target()
-			id    = desc.Digest
 			store = client.ContentStore()
 			store = client.ContentStore()
 		)
 		)
-		index, err := decodeIndex(ctx, store, id)
+		index, err := decodeIndex(ctx, store, desc)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
@@ -80,7 +79,7 @@ func WithCheckpoint(im Image, snapshotKey string) NewContainerOpts {
 				}
 				}
 				c.Image = index.Annotations["image.name"]
 				c.Image = index.Annotations["image.name"]
 			case images.MediaTypeContainerd1CheckpointConfig:
 			case images.MediaTypeContainerd1CheckpointConfig:
-				data, err := content.ReadBlob(ctx, store, m.Digest)
+				data, err := content.ReadBlob(ctx, store, m)
 				if err != nil {
 				if err != nil {
 					return errors.Wrap(err, "unable to read checkpoint config")
 					return errors.Wrap(err, "unable to read checkpoint config")
 				}
 				}
@@ -113,7 +112,7 @@ func WithTaskCheckpoint(im Image) NewTaskOpts {
 	return func(ctx context.Context, c *Client, info *TaskInfo) error {
 	return func(ctx context.Context, c *Client, info *TaskInfo) error {
 		desc := im.Target()
 		desc := im.Target()
 		id := desc.Digest
 		id := desc.Digest
-		index, err := decodeIndex(ctx, c.ContentStore(), id)
+		index, err := decodeIndex(ctx, c.ContentStore(), desc)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
@@ -131,9 +130,9 @@ func WithTaskCheckpoint(im Image) NewTaskOpts {
 	}
 	}
 }
 }
 
 
-func decodeIndex(ctx context.Context, store content.Provider, id digest.Digest) (*v1.Index, error) {
+func decodeIndex(ctx context.Context, store content.Provider, desc ocispec.Descriptor) (*v1.Index, error) {
 	var index v1.Index
 	var index v1.Index
-	p, err := content.ReadBlob(ctx, store, id)
+	p, err := content.ReadBlob(ctx, store, desc)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}

+ 37 - 2
vendor/github.com/containerd/containerd/content/content.go

@@ -22,6 +22,7 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/opencontainers/go-digest"
 	"github.com/opencontainers/go-digest"
+	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 )
 )
 
 
 // ReaderAt extends the standard io.ReaderAt interface with reporting of Size and io.Closer
 // ReaderAt extends the standard io.ReaderAt interface with reporting of Size and io.Closer
@@ -33,12 +34,16 @@ type ReaderAt interface {
 
 
 // Provider provides a reader interface for specific content
 // Provider provides a reader interface for specific content
 type Provider interface {
 type Provider interface {
-	ReaderAt(ctx context.Context, dgst digest.Digest) (ReaderAt, error)
+	// ReaderAt only requires desc.Digest to be set.
+	// Other fields in the descriptor may be used internally for resolving
+	// the location of the actual data.
+	ReaderAt(ctx context.Context, dec ocispec.Descriptor) (ReaderAt, error)
 }
 }
 
 
 // Ingester writes content
 // Ingester writes content
 type Ingester interface {
 type Ingester interface {
-	Writer(ctx context.Context, ref string, size int64, expected digest.Digest) (Writer, error)
+	// Some implementations require WithRef to be included in opts.
+	Writer(ctx context.Context, opts ...WriterOpt) (Writer, error)
 }
 }
 
 
 // Info holds content specific information
 // Info holds content specific information
@@ -142,3 +147,33 @@ func WithLabels(labels map[string]string) Opt {
 		return nil
 		return nil
 	}
 	}
 }
 }
+
+// WriterOpts is internally used by WriterOpt.
+type WriterOpts struct {
+	Ref  string
+	Desc ocispec.Descriptor
+}
+
+// WriterOpt is used for passing options to Ingester.Writer.
+type WriterOpt func(*WriterOpts) error
+
+// WithDescriptor specifies an OCI descriptor.
+// Writer may optionally use the descriptor internally for resolving
+// the location of the actual data.
+// Write does not require any field of desc to be set.
+// If the data size is unknown, desc.Size should be set to 0.
+// Some implementations may also accept negative values as "unknown".
+func WithDescriptor(desc ocispec.Descriptor) WriterOpt {
+	return func(opts *WriterOpts) error {
+		opts.Desc = desc
+		return nil
+	}
+}
+
+// WithRef specifies a ref string.
+func WithRef(ref string) WriterOpt {
+	return func(opts *WriterOpts) error {
+		opts.Ref = ref
+		return nil
+	}
+}

+ 8 - 7
vendor/github.com/containerd/containerd/content/helpers.go

@@ -26,6 +26,7 @@ import (
 
 
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/opencontainers/go-digest"
 	"github.com/opencontainers/go-digest"
+	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
 
 
@@ -45,8 +46,8 @@ func NewReader(ra ReaderAt) io.Reader {
 // ReadBlob retrieves the entire contents of the blob from the provider.
 // ReadBlob retrieves the entire contents of the blob from the provider.
 //
 //
 // Avoid using this for large blobs, such as layers.
 // Avoid using this for large blobs, such as layers.
-func ReadBlob(ctx context.Context, provider Provider, dgst digest.Digest) ([]byte, error) {
-	ra, err := provider.ReaderAt(ctx, dgst)
+func ReadBlob(ctx context.Context, provider Provider, desc ocispec.Descriptor) ([]byte, error) {
+	ra, err := provider.ReaderAt(ctx, desc)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
@@ -65,8 +66,8 @@ func ReadBlob(ctx context.Context, provider Provider, dgst digest.Digest) ([]byt
 // This is useful when the digest and size are known beforehand.
 // This is useful when the digest and size are known beforehand.
 //
 //
 // Copy is buffered, so no need to wrap reader in buffered io.
 // Copy is buffered, so no need to wrap reader in buffered io.
-func WriteBlob(ctx context.Context, cs Ingester, ref string, r io.Reader, size int64, expected digest.Digest, opts ...Opt) error {
-	cw, err := OpenWriter(ctx, cs, ref, size, expected)
+func WriteBlob(ctx context.Context, cs Ingester, ref string, r io.Reader, desc ocispec.Descriptor, opts ...Opt) error {
+	cw, err := OpenWriter(ctx, cs, WithRef(ref), WithDescriptor(desc))
 	if err != nil {
 	if err != nil {
 		if !errdefs.IsAlreadyExists(err) {
 		if !errdefs.IsAlreadyExists(err) {
 			return err
 			return err
@@ -76,19 +77,19 @@ func WriteBlob(ctx context.Context, cs Ingester, ref string, r io.Reader, size i
 	}
 	}
 	defer cw.Close()
 	defer cw.Close()
 
 
-	return Copy(ctx, cw, r, size, expected, opts...)
+	return Copy(ctx, cw, r, desc.Size, desc.Digest, opts...)
 }
 }
 
 
 // OpenWriter opens a new writer for the given reference, retrying if the writer
 // OpenWriter opens a new writer for the given reference, retrying if the writer
 // is locked until the reference is available or returns an error.
 // is locked until the reference is available or returns an error.
-func OpenWriter(ctx context.Context, cs Ingester, ref string, size int64, expected digest.Digest) (Writer, error) {
+func OpenWriter(ctx context.Context, cs Ingester, opts ...WriterOpt) (Writer, error) {
 	var (
 	var (
 		cw    Writer
 		cw    Writer
 		err   error
 		err   error
 		retry = 16
 		retry = 16
 	)
 	)
 	for {
 	for {
-		cw, err = cs.Writer(ctx, ref, size, expected)
+		cw, err = cs.Writer(ctx, opts...)
 		if err != nil {
 		if err != nil {
 			if !errdefs.IsUnavailable(err) {
 			if !errdefs.IsUnavailable(err) {
 				return nil, err
 				return nil, err

+ 20 - 8
vendor/github.com/containerd/containerd/content/local/store.go

@@ -34,6 +34,7 @@ import (
 	"github.com/containerd/containerd/filters"
 	"github.com/containerd/containerd/filters"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/log"
 	digest "github.com/opencontainers/go-digest"
 	digest "github.com/opencontainers/go-digest"
+	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
 
 
@@ -119,15 +120,15 @@ func (s *store) info(dgst digest.Digest, fi os.FileInfo, labels map[string]strin
 }
 }
 
 
 // ReaderAt returns an io.ReaderAt for the blob.
 // ReaderAt returns an io.ReaderAt for the blob.
-func (s *store) ReaderAt(ctx context.Context, dgst digest.Digest) (content.ReaderAt, error) {
-	p := s.blobPath(dgst)
+func (s *store) ReaderAt(ctx context.Context, desc ocispec.Descriptor) (content.ReaderAt, error) {
+	p := s.blobPath(desc.Digest)
 	fi, err := os.Stat(p)
 	fi, err := os.Stat(p)
 	if err != nil {
 	if err != nil {
 		if !os.IsNotExist(err) {
 		if !os.IsNotExist(err) {
 			return nil, err
 			return nil, err
 		}
 		}
 
 
-		return nil, errors.Wrapf(errdefs.ErrNotFound, "blob %s expected at %s", dgst, p)
+		return nil, errors.Wrapf(errdefs.ErrNotFound, "blob %s expected at %s", desc.Digest, p)
 	}
 	}
 
 
 	fp, err := os.Open(p)
 	fp, err := os.Open(p)
@@ -136,7 +137,7 @@ func (s *store) ReaderAt(ctx context.Context, dgst digest.Digest) (content.Reade
 			return nil, err
 			return nil, err
 		}
 		}
 
 
-		return nil, errors.Wrapf(errdefs.ErrNotFound, "blob %s expected at %s", dgst, p)
+		return nil, errors.Wrapf(errdefs.ErrNotFound, "blob %s expected at %s", desc.Digest, p)
 	}
 	}
 
 
 	return sizeReaderAt{size: fi.Size(), fp: fp}, nil
 	return sizeReaderAt{size: fi.Size(), fp: fp}, nil
@@ -400,11 +401,22 @@ func (s *store) total(ingestPath string) int64 {
 // ref at a time.
 // ref at a time.
 //
 //
 // The argument `ref` is used to uniquely identify a long-lived writer transaction.
 // The argument `ref` is used to uniquely identify a long-lived writer transaction.
-func (s *store) Writer(ctx context.Context, ref string, total int64, expected digest.Digest) (content.Writer, error) {
+func (s *store) Writer(ctx context.Context, opts ...content.WriterOpt) (content.Writer, error) {
+	var wOpts content.WriterOpts
+	for _, opt := range opts {
+		if err := opt(&wOpts); err != nil {
+			return nil, err
+		}
+	}
+	// TODO(AkihiroSuda): we could create a random string or one calculated based on the context
+	// https://github.com/containerd/containerd/issues/2129#issuecomment-380255019
+	if wOpts.Ref == "" {
+		return nil, errors.Wrap(errdefs.ErrInvalidArgument, "ref must not be empty")
+	}
 	var lockErr error
 	var lockErr error
 	for count := uint64(0); count < 10; count++ {
 	for count := uint64(0); count < 10; count++ {
 		time.Sleep(time.Millisecond * time.Duration(rand.Intn(1<<count)))
 		time.Sleep(time.Millisecond * time.Duration(rand.Intn(1<<count)))
-		if err := tryLock(ref); err != nil {
+		if err := tryLock(wOpts.Ref); err != nil {
 			if !errdefs.IsUnavailable(err) {
 			if !errdefs.IsUnavailable(err) {
 				return nil, err
 				return nil, err
 			}
 			}
@@ -420,9 +432,9 @@ func (s *store) Writer(ctx context.Context, ref string, total int64, expected di
 		return nil, lockErr
 		return nil, lockErr
 	}
 	}
 
 
-	w, err := s.writer(ctx, ref, total, expected)
+	w, err := s.writer(ctx, wOpts.Ref, wOpts.Desc.Size, wOpts.Desc.Digest)
 	if err != nil {
 	if err != nil {
-		unlock(ref)
+		unlock(wOpts.Ref)
 		return nil, err
 		return nil, err
 	}
 	}
 
 

+ 15 - 6
vendor/github.com/containerd/containerd/content/proxy/content_store.go

@@ -25,6 +25,7 @@ import (
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
 	protobuftypes "github.com/gogo/protobuf/types"
 	protobuftypes "github.com/gogo/protobuf/types"
 	digest "github.com/opencontainers/go-digest"
 	digest "github.com/opencontainers/go-digest"
+	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 )
 )
 
 
 type proxyContentStore struct {
 type proxyContentStore struct {
@@ -88,15 +89,16 @@ func (pcs *proxyContentStore) Delete(ctx context.Context, dgst digest.Digest) er
 	return nil
 	return nil
 }
 }
 
 
-func (pcs *proxyContentStore) ReaderAt(ctx context.Context, dgst digest.Digest) (content.ReaderAt, error) {
-	i, err := pcs.Info(ctx, dgst)
+// ReaderAt ignores MediaType.
+func (pcs *proxyContentStore) ReaderAt(ctx context.Context, desc ocispec.Descriptor) (content.ReaderAt, error) {
+	i, err := pcs.Info(ctx, desc.Digest)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
 
 
 	return &remoteReaderAt{
 	return &remoteReaderAt{
 		ctx:    ctx,
 		ctx:    ctx,
-		digest: dgst,
+		digest: desc.Digest,
 		size:   i.Size,
 		size:   i.Size,
 		client: pcs.client,
 		client: pcs.client,
 	}, nil
 	}, nil
@@ -157,14 +159,21 @@ func (pcs *proxyContentStore) ListStatuses(ctx context.Context, filters ...strin
 	return statuses, nil
 	return statuses, nil
 }
 }
 
 
-func (pcs *proxyContentStore) Writer(ctx context.Context, ref string, size int64, expected digest.Digest) (content.Writer, error) {
-	wrclient, offset, err := pcs.negotiate(ctx, ref, size, expected)
+// Writer ignores MediaType.
+func (pcs *proxyContentStore) Writer(ctx context.Context, opts ...content.WriterOpt) (content.Writer, error) {
+	var wOpts content.WriterOpts
+	for _, opt := range opts {
+		if err := opt(&wOpts); err != nil {
+			return nil, err
+		}
+	}
+	wrclient, offset, err := pcs.negotiate(ctx, wOpts.Ref, wOpts.Desc.Size, wOpts.Desc.Digest)
 	if err != nil {
 	if err != nil {
 		return nil, errdefs.FromGRPC(err)
 		return nil, errdefs.FromGRPC(err)
 	}
 	}
 
 
 	return &remoteWriter{
 	return &remoteWriter{
-		ref:    ref,
+		ref:    wOpts.Ref,
 		client: wrclient,
 		client: wrclient,
 		offset: offset,
 		offset: offset,
 	}, nil
 	}, nil

+ 8 - 8
vendor/github.com/containerd/containerd/images/image.go

@@ -143,7 +143,7 @@ func Manifest(ctx context.Context, provider content.Provider, image ocispec.Desc
 	if err := Walk(ctx, HandlerFunc(func(ctx context.Context, desc ocispec.Descriptor) ([]ocispec.Descriptor, error) {
 	if err := Walk(ctx, HandlerFunc(func(ctx context.Context, desc ocispec.Descriptor) ([]ocispec.Descriptor, error) {
 		switch desc.MediaType {
 		switch desc.MediaType {
 		case MediaTypeDockerSchema2Manifest, ocispec.MediaTypeImageManifest:
 		case MediaTypeDockerSchema2Manifest, ocispec.MediaTypeImageManifest:
-			p, err := content.ReadBlob(ctx, provider, desc.Digest)
+			p, err := content.ReadBlob(ctx, provider, desc)
 			if err != nil {
 			if err != nil {
 				return nil, err
 				return nil, err
 			}
 			}
@@ -159,7 +159,7 @@ func Manifest(ctx context.Context, provider content.Provider, image ocispec.Desc
 				}
 				}
 
 
 				if desc.Platform == nil {
 				if desc.Platform == nil {
-					p, err := content.ReadBlob(ctx, provider, manifest.Config.Digest)
+					p, err := content.ReadBlob(ctx, provider, manifest.Config)
 					if err != nil {
 					if err != nil {
 						return nil, err
 						return nil, err
 					}
 					}
@@ -180,7 +180,7 @@ func Manifest(ctx context.Context, provider content.Provider, image ocispec.Desc
 
 
 			return nil, nil
 			return nil, nil
 		case MediaTypeDockerSchema2ManifestList, ocispec.MediaTypeImageIndex:
 		case MediaTypeDockerSchema2ManifestList, ocispec.MediaTypeImageIndex:
-			p, err := content.ReadBlob(ctx, provider, desc.Digest)
+			p, err := content.ReadBlob(ctx, provider, desc)
 			if err != nil {
 			if err != nil {
 				return nil, err
 				return nil, err
 			}
 			}
@@ -240,7 +240,7 @@ func Platforms(ctx context.Context, provider content.Provider, image ocispec.Des
 
 
 		switch desc.MediaType {
 		switch desc.MediaType {
 		case MediaTypeDockerSchema2Config, ocispec.MediaTypeImageConfig:
 		case MediaTypeDockerSchema2Config, ocispec.MediaTypeImageConfig:
-			p, err := content.ReadBlob(ctx, provider, desc.Digest)
+			p, err := content.ReadBlob(ctx, provider, desc)
 			if err != nil {
 			if err != nil {
 				return nil, err
 				return nil, err
 			}
 			}
@@ -283,7 +283,7 @@ func Check(ctx context.Context, provider content.Provider, image ocispec.Descrip
 	required = append([]ocispec.Descriptor{mfst.Config}, mfst.Layers...)
 	required = append([]ocispec.Descriptor{mfst.Config}, mfst.Layers...)
 
 
 	for _, desc := range required {
 	for _, desc := range required {
-		ra, err := provider.ReaderAt(ctx, desc.Digest)
+		ra, err := provider.ReaderAt(ctx, desc)
 		if err != nil {
 		if err != nil {
 			if errdefs.IsNotFound(err) {
 			if errdefs.IsNotFound(err) {
 				missing = append(missing, desc)
 				missing = append(missing, desc)
@@ -305,7 +305,7 @@ func Children(ctx context.Context, provider content.Provider, desc ocispec.Descr
 	var descs []ocispec.Descriptor
 	var descs []ocispec.Descriptor
 	switch desc.MediaType {
 	switch desc.MediaType {
 	case MediaTypeDockerSchema2Manifest, ocispec.MediaTypeImageManifest:
 	case MediaTypeDockerSchema2Manifest, ocispec.MediaTypeImageManifest:
-		p, err := content.ReadBlob(ctx, provider, desc.Digest)
+		p, err := content.ReadBlob(ctx, provider, desc)
 		if err != nil {
 		if err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
@@ -320,7 +320,7 @@ func Children(ctx context.Context, provider content.Provider, desc ocispec.Descr
 		descs = append(descs, manifest.Config)
 		descs = append(descs, manifest.Config)
 		descs = append(descs, manifest.Layers...)
 		descs = append(descs, manifest.Layers...)
 	case MediaTypeDockerSchema2ManifestList, ocispec.MediaTypeImageIndex:
 	case MediaTypeDockerSchema2ManifestList, ocispec.MediaTypeImageIndex:
-		p, err := content.ReadBlob(ctx, provider, desc.Digest)
+		p, err := content.ReadBlob(ctx, provider, desc)
 		if err != nil {
 		if err != nil {
 			return nil, err
 			return nil, err
 		}
 		}
@@ -351,7 +351,7 @@ func Children(ctx context.Context, provider content.Provider, desc ocispec.Descr
 // These are used to verify that a set of layers unpacked to the expected
 // These are used to verify that a set of layers unpacked to the expected
 // values.
 // values.
 func RootFS(ctx context.Context, provider content.Provider, configDesc ocispec.Descriptor) ([]digest.Digest, error) {
 func RootFS(ctx context.Context, provider content.Provider, configDesc ocispec.Descriptor) ([]digest.Digest, error) {
-	p, err := content.ReadBlob(ctx, provider, configDesc.Digest)
+	p, err := content.ReadBlob(ctx, provider, configDesc)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}

+ 55 - 39
vendor/github.com/containerd/containerd/metadata/content.go

@@ -32,6 +32,7 @@ import (
 	"github.com/containerd/containerd/metadata/boltutil"
 	"github.com/containerd/containerd/metadata/boltutil"
 	"github.com/containerd/containerd/namespaces"
 	"github.com/containerd/containerd/namespaces"
 	digest "github.com/opencontainers/go-digest"
 	digest "github.com/opencontainers/go-digest"
+	ocispec "github.com/opencontainers/image-spec/specs-go/v1"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
 
 
@@ -337,7 +338,18 @@ func (cs *contentStore) Abort(ctx context.Context, ref string) error {
 
 
 }
 }
 
 
-func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expected digest.Digest) (content.Writer, error) {
+func (cs *contentStore) Writer(ctx context.Context, opts ...content.WriterOpt) (content.Writer, error) {
+	var wOpts content.WriterOpts
+	for _, opt := range opts {
+		if err := opt(&wOpts); err != nil {
+			return nil, err
+		}
+	}
+	// TODO(AkihiroSuda): we could create a random string or one calculated based on the context
+	// https://github.com/containerd/containerd/issues/2129#issuecomment-380255019
+	if wOpts.Ref == "" {
+		return nil, errors.Wrap(errdefs.ErrInvalidArgument, "ref must not be empty")
+	}
 	ns, err := namespaces.NamespaceRequired(ctx)
 	ns, err := namespaces.NamespaceRequired(ctx)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
@@ -353,12 +365,12 @@ func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expe
 	)
 	)
 	if err := update(ctx, cs.db, func(tx *bolt.Tx) error {
 	if err := update(ctx, cs.db, func(tx *bolt.Tx) error {
 		var shared bool
 		var shared bool
-		if expected != "" {
-			cbkt := getBlobBucket(tx, ns, expected)
+		if wOpts.Desc.Digest != "" {
+			cbkt := getBlobBucket(tx, ns, wOpts.Desc.Digest)
 			if cbkt != nil {
 			if cbkt != nil {
 				// Add content to lease to prevent other reference removals
 				// Add content to lease to prevent other reference removals
 				// from effecting this object during a provided lease
 				// from effecting this object during a provided lease
-				if err := addContentLease(ctx, tx, expected); err != nil {
+				if err := addContentLease(ctx, tx, wOpts.Desc.Digest); err != nil {
 					return errors.Wrap(err, "unable to lease content")
 					return errors.Wrap(err, "unable to lease content")
 				}
 				}
 				// Return error outside of transaction to ensure
 				// Return error outside of transaction to ensure
@@ -367,18 +379,18 @@ func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expe
 				return nil
 				return nil
 			}
 			}
 
 
-			if st, err := cs.Store.Info(ctx, expected); err == nil {
+			if st, err := cs.Store.Info(ctx, wOpts.Desc.Digest); err == nil {
 				// Ensure the expected size is the same, it is likely
 				// Ensure the expected size is the same, it is likely
 				// an error if the size is mismatched but the caller
 				// an error if the size is mismatched but the caller
 				// must resolve this on commit
 				// must resolve this on commit
-				if size == 0 || size == st.Size {
+				if wOpts.Desc.Size == 0 || wOpts.Desc.Size == st.Size {
 					shared = true
 					shared = true
-					size = st.Size
+					wOpts.Desc.Size = st.Size
 				}
 				}
 			}
 			}
 		}
 		}
 
 
-		bkt, err := createIngestBucket(tx, ns, ref)
+		bkt, err := createIngestBucket(tx, ns, wOpts.Ref)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
@@ -390,7 +402,7 @@ func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expe
 				return err
 				return err
 			}
 			}
 
 
-			bref = createKey(sid, ns, ref)
+			bref = createKey(sid, ns, wOpts.Ref)
 			if err := bkt.Put(bucketKeyRef, []byte(bref)); err != nil {
 			if err := bkt.Put(bucketKeyRef, []byte(bref)); err != nil {
 				return err
 				return err
 			}
 			}
@@ -399,7 +411,7 @@ func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expe
 		}
 		}
 
 
 		if shared {
 		if shared {
-			if err := bkt.Put(bucketKeyExpected, []byte(expected)); err != nil {
+			if err := bkt.Put(bucketKeyExpected, []byte(wOpts.Desc.Digest)); err != nil {
 				return err
 				return err
 			}
 			}
 		} else {
 		} else {
@@ -407,19 +419,21 @@ func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expe
 			// already checked against the user metadata. The content must
 			// already checked against the user metadata. The content must
 			// be committed in the namespace before it will be seen as
 			// be committed in the namespace before it will be seen as
 			// available in the current namespace.
 			// available in the current namespace.
-			w, err = cs.Store.Writer(ctx, bref, size, "")
+			desc := wOpts.Desc
+			desc.Digest = ""
+			w, err = cs.Store.Writer(ctx, content.WithRef(bref), content.WithDescriptor(desc))
 		}
 		}
 		return err
 		return err
 	}); err != nil {
 	}); err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
 	if exists {
 	if exists {
-		return nil, errors.Wrapf(errdefs.ErrAlreadyExists, "content %v", expected)
+		return nil, errors.Wrapf(errdefs.ErrAlreadyExists, "content %v", wOpts.Desc.Digest)
 	}
 	}
 
 
 	return &namespacedWriter{
 	return &namespacedWriter{
 		ctx:       ctx,
 		ctx:       ctx,
-		ref:       ref,
+		ref:       wOpts.Ref,
 		namespace: ns,
 		namespace: ns,
 		db:        cs.db,
 		db:        cs.db,
 		provider:  cs.Store,
 		provider:  cs.Store,
@@ -427,8 +441,7 @@ func (cs *contentStore) Writer(ctx context.Context, ref string, size int64, expe
 		w:         w,
 		w:         w,
 		bref:      bref,
 		bref:      bref,
 		started:   time.Now(),
 		started:   time.Now(),
-		expected:  expected,
-		size:      size,
+		desc:      wOpts.Desc,
 	}, nil
 	}, nil
 }
 }
 
 
@@ -445,10 +458,9 @@ type namespacedWriter struct {
 
 
 	w content.Writer
 	w content.Writer
 
 
-	bref     string
-	started  time.Time
-	expected digest.Digest
-	size     int64
+	bref    string
+	started time.Time
+	desc    ocispec.Descriptor
 }
 }
 
 
 func (nw *namespacedWriter) Close() error {
 func (nw *namespacedWriter) Close() error {
@@ -465,7 +477,7 @@ func (nw *namespacedWriter) Write(p []byte) (int, error) {
 			return 0, nil
 			return 0, nil
 		}
 		}
 
 
-		if err := nw.createAndCopy(nw.ctx, nw.size); err != nil {
+		if err := nw.createAndCopy(nw.ctx, nw.desc); err != nil {
 			return 0, err
 			return 0, err
 		}
 		}
 	}
 	}
@@ -477,31 +489,35 @@ func (nw *namespacedWriter) Digest() digest.Digest {
 	if nw.w != nil {
 	if nw.w != nil {
 		return nw.w.Digest()
 		return nw.w.Digest()
 	}
 	}
-	return nw.expected
+	return nw.desc.Digest
 }
 }
 
 
 func (nw *namespacedWriter) Truncate(size int64) error {
 func (nw *namespacedWriter) Truncate(size int64) error {
 	if nw.w != nil {
 	if nw.w != nil {
 		return nw.w.Truncate(size)
 		return nw.w.Truncate(size)
 	}
 	}
-
-	return nw.createAndCopy(nw.ctx, size)
+	desc := nw.desc
+	desc.Size = size
+	desc.Digest = ""
+	return nw.createAndCopy(nw.ctx, desc)
 }
 }
 
 
-func (nw *namespacedWriter) createAndCopy(ctx context.Context, size int64) error {
-	w, err := nw.provider.Writer(ctx, nw.bref, nw.size, "")
+func (nw *namespacedWriter) createAndCopy(ctx context.Context, desc ocispec.Descriptor) error {
+	nwDescWithoutDigest := desc
+	nwDescWithoutDigest.Digest = ""
+	w, err := nw.provider.Writer(ctx, content.WithRef(nw.bref), content.WithDescriptor(nwDescWithoutDigest))
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}
 
 
-	if size > 0 {
-		ra, err := nw.provider.ReaderAt(ctx, nw.expected)
+	if desc.Size > 0 {
+		ra, err := nw.provider.ReaderAt(ctx, nw.desc)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
 		defer ra.Close()
 		defer ra.Close()
 
 
-		if err := content.CopyReaderAt(w, ra, size); err != nil {
+		if err := content.CopyReaderAt(w, ra, desc.Size); err != nil {
 			nw.w.Close()
 			nw.w.Close()
 			nw.w = nil
 			nw.w = nil
 			return err
 			return err
@@ -544,14 +560,14 @@ func (nw *namespacedWriter) commit(ctx context.Context, tx *bolt.Tx, size int64,
 
 
 	var actual digest.Digest
 	var actual digest.Digest
 	if nw.w == nil {
 	if nw.w == nil {
-		if size != 0 && size != nw.size {
-			return "", errors.Errorf("%q failed size validation: %v != %v", nw.ref, nw.size, size)
+		if size != 0 && size != nw.desc.Size {
+			return "", errors.Errorf("%q failed size validation: %v != %v", nw.ref, nw.desc.Size, size)
 		}
 		}
-		if expected != "" && expected != nw.expected {
+		if expected != "" && expected != nw.desc.Digest {
 			return "", errors.Errorf("%q unexpected digest", nw.ref)
 			return "", errors.Errorf("%q unexpected digest", nw.ref)
 		}
 		}
-		size = nw.size
-		actual = nw.expected
+		size = nw.desc.Size
+		actual = nw.desc.Digest
 		if getBlobBucket(tx, nw.namespace, actual) != nil {
 		if getBlobBucket(tx, nw.namespace, actual) != nil {
 			return "", errors.Wrapf(errdefs.ErrAlreadyExists, "content %v", actual)
 			return "", errors.Wrapf(errdefs.ErrAlreadyExists, "content %v", actual)
 		}
 		}
@@ -601,11 +617,11 @@ func (nw *namespacedWriter) Status() (st content.Status, err error) {
 	if nw.w != nil {
 	if nw.w != nil {
 		st, err = nw.w.Status()
 		st, err = nw.w.Status()
 	} else {
 	} else {
-		st.Offset = nw.size
-		st.Total = nw.size
+		st.Offset = nw.desc.Size
+		st.Total = nw.desc.Size
 		st.StartedAt = nw.started
 		st.StartedAt = nw.started
 		st.UpdatedAt = nw.started
 		st.UpdatedAt = nw.started
-		st.Expected = nw.expected
+		st.Expected = nw.desc.Digest
 	}
 	}
 	if err == nil {
 	if err == nil {
 		st.Ref = nw.ref
 		st.Ref = nw.ref
@@ -613,11 +629,11 @@ func (nw *namespacedWriter) Status() (st content.Status, err error) {
 	return
 	return
 }
 }
 
 
-func (cs *contentStore) ReaderAt(ctx context.Context, dgst digest.Digest) (content.ReaderAt, error) {
-	if err := cs.checkAccess(ctx, dgst); err != nil {
+func (cs *contentStore) ReaderAt(ctx context.Context, desc ocispec.Descriptor) (content.ReaderAt, error) {
+	if err := cs.checkAccess(ctx, desc.Digest); err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
-	return cs.Store.ReaderAt(ctx, dgst)
+	return cs.Store.ReaderAt(ctx, desc)
 }
 }
 
 
 func (cs *contentStore) checkAccess(ctx context.Context, dgst digest.Digest) error {
 func (cs *contentStore) checkAccess(ctx context.Context, dgst digest.Digest) error {

+ 1 - 1
vendor/github.com/containerd/containerd/oci/spec_opts_unix.go

@@ -117,7 +117,7 @@ func WithImageConfig(image Image) SpecOpts {
 		)
 		)
 		switch ic.MediaType {
 		switch ic.MediaType {
 		case v1.MediaTypeImageConfig, images.MediaTypeDockerSchema2Config:
 		case v1.MediaTypeImageConfig, images.MediaTypeDockerSchema2Config:
-			p, err := content.ReadBlob(ctx, image.ContentStore(), ic.Digest)
+			p, err := content.ReadBlob(ctx, image.ContentStore(), ic)
 			if err != nil {
 			if err != nil {
 				return err
 				return err
 			}
 			}

+ 1 - 1
vendor/github.com/containerd/containerd/oci/spec_opts_windows.go

@@ -44,7 +44,7 @@ func WithImageConfig(image Image) SpecOpts {
 		)
 		)
 		switch ic.MediaType {
 		switch ic.MediaType {
 		case v1.MediaTypeImageConfig, images.MediaTypeDockerSchema2Config:
 		case v1.MediaTypeImageConfig, images.MediaTypeDockerSchema2Config:
-			p, err := content.ReadBlob(ctx, image.ContentStore(), ic.Digest)
+			p, err := content.ReadBlob(ctx, image.ContentStore(), ic)
 			if err != nil {
 			if err != nil {
 				return err
 				return err
 			}
 			}

+ 12 - 3
vendor/github.com/containerd/containerd/remotes/docker/pusher.go

@@ -155,9 +155,18 @@ func (p dockerPusher) Push(ctx context.Context, desc ocispec.Descriptor) (conten
 		location := resp.Header.Get("Location")
 		location := resp.Header.Get("Location")
 		// Support paths without host in location
 		// Support paths without host in location
 		if strings.HasPrefix(location, "/") {
 		if strings.HasPrefix(location, "/") {
-			u := p.base
-			u.Path = location
-			location = u.String()
+			// Support location string containing path and query
+			qmIndex := strings.Index(location, "?")
+			if qmIndex > 0 {
+				u := p.base
+				u.Path = location[:qmIndex]
+				u.RawQuery = location[qmIndex+1:]
+				location = u.String()
+			} else {
+				u := p.base
+				u.Path = location
+				location = u.String()
+			}
 		}
 		}
 
 
 		req, err = http.NewRequest(http.MethodPut, location, nil)
 		req, err = http.NewRequest(http.MethodPut, location, nil)

+ 8 - 8
vendor/github.com/containerd/containerd/remotes/docker/schema1/converter.go

@@ -211,12 +211,12 @@ func (c *Converter) Convert(ctx context.Context, opts ...ConvertOpt) (ocispec.De
 	}
 	}
 
 
 	ref := remotes.MakeRefKey(ctx, desc)
 	ref := remotes.MakeRefKey(ctx, desc)
-	if err := content.WriteBlob(ctx, c.contentStore, ref, bytes.NewReader(mb), desc.Size, desc.Digest, content.WithLabels(labels)); err != nil {
+	if err := content.WriteBlob(ctx, c.contentStore, ref, bytes.NewReader(mb), desc, content.WithLabels(labels)); err != nil {
 		return ocispec.Descriptor{}, errors.Wrap(err, "failed to write config")
 		return ocispec.Descriptor{}, errors.Wrap(err, "failed to write config")
 	}
 	}
 
 
 	ref = remotes.MakeRefKey(ctx, config)
 	ref = remotes.MakeRefKey(ctx, config)
-	if err := content.WriteBlob(ctx, c.contentStore, ref, bytes.NewReader(b), config.Size, config.Digest); err != nil {
+	if err := content.WriteBlob(ctx, c.contentStore, ref, bytes.NewReader(b), config); err != nil {
 		return ocispec.Descriptor{}, errors.Wrap(err, "failed to write config")
 		return ocispec.Descriptor{}, errors.Wrap(err, "failed to write config")
 	}
 	}
 
 
@@ -257,15 +257,15 @@ func (c *Converter) fetchBlob(ctx context.Context, desc ocispec.Descriptor) erro
 	var (
 	var (
 		ref  = remotes.MakeRefKey(ctx, desc)
 		ref  = remotes.MakeRefKey(ctx, desc)
 		calc = newBlobStateCalculator()
 		calc = newBlobStateCalculator()
-		size = desc.Size
 	)
 	)
 
 
 	// size may be unknown, set to zero for content ingest
 	// size may be unknown, set to zero for content ingest
-	if size == -1 {
-		size = 0
+	ingestDesc := desc
+	if ingestDesc.Size == -1 {
+		ingestDesc.Size = 0
 	}
 	}
 
 
-	cw, err := content.OpenWriter(ctx, c.contentStore, ref, size, desc.Digest)
+	cw, err := content.OpenWriter(ctx, c.contentStore, content.WithRef(ref), content.WithDescriptor(ingestDesc))
 	if err != nil {
 	if err != nil {
 		if !errdefs.IsAlreadyExists(err) {
 		if !errdefs.IsAlreadyExists(err) {
 			return err
 			return err
@@ -274,7 +274,7 @@ func (c *Converter) fetchBlob(ctx context.Context, desc ocispec.Descriptor) erro
 		// TODO: Check if blob -> diff id mapping already exists
 		// TODO: Check if blob -> diff id mapping already exists
 		// TODO: Check if blob empty label exists
 		// TODO: Check if blob empty label exists
 
 
-		ra, err := c.contentStore.ReaderAt(ctx, desc.Digest)
+		ra, err := c.contentStore.ReaderAt(ctx, desc)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
@@ -317,7 +317,7 @@ func (c *Converter) fetchBlob(ctx context.Context, desc ocispec.Descriptor) erro
 		eg.Go(func() error {
 		eg.Go(func() error {
 			defer pw.Close()
 			defer pw.Close()
 
 
-			return content.Copy(ctx, cw, io.TeeReader(rc, pw), size, desc.Digest)
+			return content.Copy(ctx, cw, io.TeeReader(rc, pw), ingestDesc.Size, ingestDesc.Digest)
 		})
 		})
 
 
 		if err := eg.Wait(); err != nil {
 		if err := eg.Wait(); err != nil {

+ 2 - 2
vendor/github.com/containerd/containerd/remotes/handlers.go

@@ -81,7 +81,7 @@ func FetchHandler(ingester content.Ingester, fetcher Fetcher) images.HandlerFunc
 func fetch(ctx context.Context, ingester content.Ingester, fetcher Fetcher, desc ocispec.Descriptor) error {
 func fetch(ctx context.Context, ingester content.Ingester, fetcher Fetcher, desc ocispec.Descriptor) error {
 	log.G(ctx).Debug("fetch")
 	log.G(ctx).Debug("fetch")
 
 
-	cw, err := content.OpenWriter(ctx, ingester, MakeRefKey(ctx, desc), desc.Size, desc.Digest)
+	cw, err := content.OpenWriter(ctx, ingester, content.WithRef(MakeRefKey(ctx, desc)), content.WithDescriptor(desc))
 	if err != nil {
 	if err != nil {
 		if errdefs.IsAlreadyExists(err) {
 		if errdefs.IsAlreadyExists(err) {
 			return nil
 			return nil
@@ -141,7 +141,7 @@ func push(ctx context.Context, provider content.Provider, pusher Pusher, desc oc
 	}
 	}
 	defer cw.Close()
 	defer cw.Close()
 
 
-	ra, err := provider.ReaderAt(ctx, desc.Digest)
+	ra, err := provider.ReaderAt(ctx, desc)
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}

+ 3 - 3
vendor/github.com/containerd/containerd/linux/bundle.go → vendor/github.com/containerd/containerd/runtime/linux/bundle.go

@@ -25,9 +25,9 @@ import (
 	"path/filepath"
 	"path/filepath"
 
 
 	"github.com/containerd/containerd/events/exchange"
 	"github.com/containerd/containerd/events/exchange"
-	"github.com/containerd/containerd/linux/runctypes"
-	"github.com/containerd/containerd/linux/shim"
-	"github.com/containerd/containerd/linux/shim/client"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
+	"github.com/containerd/containerd/runtime/shim"
+	"github.com/containerd/containerd/runtime/shim/client"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
 
 

+ 2 - 1
vendor/github.com/containerd/containerd/linux/proc/deleted_state.go → vendor/github.com/containerd/containerd/runtime/linux/proc/deleted_state.go

@@ -22,6 +22,7 @@ import (
 	"context"
 	"context"
 
 
 	"github.com/containerd/console"
 	"github.com/containerd/console"
+	"github.com/containerd/containerd/runtime/proc"
 	google_protobuf "github.com/gogo/protobuf/types"
 	google_protobuf "github.com/gogo/protobuf/types"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
@@ -65,6 +66,6 @@ func (s *deletedState) SetExited(status int) {
 	// no op
 	// no op
 }
 }
 
 
-func (s *deletedState) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error) {
+func (s *deletedState) Exec(ctx context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	return nil, errors.Errorf("cannot exec in a deleted state")
 	return nil, errors.Errorf("cannot exec in a deleted state")
 }
 }

+ 4 - 3
vendor/github.com/containerd/containerd/linux/proc/exec.go → vendor/github.com/containerd/containerd/runtime/linux/proc/exec.go

@@ -31,6 +31,7 @@ import (
 	"golang.org/x/sys/unix"
 	"golang.org/x/sys/unix"
 
 
 	"github.com/containerd/console"
 	"github.com/containerd/console"
+	"github.com/containerd/containerd/runtime/proc"
 	"github.com/containerd/fifo"
 	"github.com/containerd/fifo"
 	runc "github.com/containerd/go-runc"
 	runc "github.com/containerd/go-runc"
 	specs "github.com/opencontainers/runtime-spec/specs-go"
 	specs "github.com/opencontainers/runtime-spec/specs-go"
@@ -40,7 +41,7 @@ import (
 type execProcess struct {
 type execProcess struct {
 	wg sync.WaitGroup
 	wg sync.WaitGroup
 
 
-	State
+	proc.State
 
 
 	mu      sync.Mutex
 	mu      sync.Mutex
 	id      string
 	id      string
@@ -51,7 +52,7 @@ type execProcess struct {
 	pid     int
 	pid     int
 	closers []io.Closer
 	closers []io.Closer
 	stdin   io.Closer
 	stdin   io.Closer
-	stdio   Stdio
+	stdio   proc.Stdio
 	path    string
 	path    string
 	spec    specs.Process
 	spec    specs.Process
 
 
@@ -127,7 +128,7 @@ func (e *execProcess) Stdin() io.Closer {
 	return e.stdin
 	return e.stdin
 }
 }
 
 
-func (e *execProcess) Stdio() Stdio {
+func (e *execProcess) Stdio() proc.Stdio {
 	return e.stdio
 	return e.stdio
 }
 }
 
 

+ 0 - 0
vendor/github.com/containerd/containerd/linux/proc/exec_state.go → vendor/github.com/containerd/containerd/runtime/linux/proc/exec_state.go


+ 9 - 8
vendor/github.com/containerd/containerd/linux/proc/init.go → vendor/github.com/containerd/containerd/runtime/linux/proc/init.go

@@ -31,9 +31,10 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/containerd/console"
 	"github.com/containerd/console"
-	"github.com/containerd/containerd/linux/runctypes"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/mount"
 	"github.com/containerd/containerd/mount"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
+	"github.com/containerd/containerd/runtime/proc"
 	"github.com/containerd/fifo"
 	"github.com/containerd/fifo"
 	runc "github.com/containerd/go-runc"
 	runc "github.com/containerd/go-runc"
 	"github.com/containerd/typeurl"
 	"github.com/containerd/typeurl"
@@ -63,7 +64,7 @@ type Init struct {
 	id       string
 	id       string
 	bundle   string
 	bundle   string
 	console  console.Console
 	console  console.Console
-	platform Platform
+	platform proc.Platform
 	io       runc.IO
 	io       runc.IO
 	runtime  *runc.Runc
 	runtime  *runc.Runc
 	status   int
 	status   int
@@ -71,7 +72,7 @@ type Init struct {
 	pid      int
 	pid      int
 	closers  []io.Closer
 	closers  []io.Closer
 	stdin    io.Closer
 	stdin    io.Closer
-	stdio    Stdio
+	stdio    proc.Stdio
 	rootfs   string
 	rootfs   string
 	IoUID    int
 	IoUID    int
 	IoGID    int
 	IoGID    int
@@ -94,7 +95,7 @@ func NewRunc(root, path, namespace, runtime, criu string, systemd bool) *runc.Ru
 }
 }
 
 
 // New returns a new init process
 // New returns a new init process
-func New(context context.Context, path, workDir, runtimeRoot, namespace, criu string, systemdCgroup bool, platform Platform, r *CreateConfig) (*Init, error) {
+func New(context context.Context, path, workDir, runtimeRoot, namespace, criu string, systemdCgroup bool, platform proc.Platform, r *CreateConfig) (*Init, error) {
 	var success bool
 	var success bool
 
 
 	var options runctypes.CreateOptions
 	var options runctypes.CreateOptions
@@ -134,7 +135,7 @@ func New(context context.Context, path, workDir, runtimeRoot, namespace, criu st
 		bundle:   r.Bundle,
 		bundle:   r.Bundle,
 		runtime:  runtime,
 		runtime:  runtime,
 		platform: platform,
 		platform: platform,
-		stdio: Stdio{
+		stdio: proc.Stdio{
 			Stdin:    r.Stdin,
 			Stdin:    r.Stdin,
 			Stdout:   r.Stdout,
 			Stdout:   r.Stdout,
 			Stderr:   r.Stderr,
 			Stderr:   r.Stderr,
@@ -363,7 +364,7 @@ func (p *Init) Runtime() *runc.Runc {
 }
 }
 
 
 // exec returns a new exec'd process
 // exec returns a new exec'd process
-func (p *Init) exec(context context.Context, path string, r *ExecConfig) (Process, error) {
+func (p *Init) exec(context context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	// process exec request
 	// process exec request
 	var spec specs.Process
 	var spec specs.Process
 	if err := json.Unmarshal(r.Spec.Value, &spec); err != nil {
 	if err := json.Unmarshal(r.Spec.Value, &spec); err != nil {
@@ -376,7 +377,7 @@ func (p *Init) exec(context context.Context, path string, r *ExecConfig) (Proces
 		path:   path,
 		path:   path,
 		parent: p,
 		parent: p,
 		spec:   spec,
 		spec:   spec,
-		stdio: Stdio{
+		stdio: proc.Stdio{
 			Stdin:    r.Stdin,
 			Stdin:    r.Stdin,
 			Stdout:   r.Stdout,
 			Stdout:   r.Stdout,
 			Stderr:   r.Stderr,
 			Stderr:   r.Stderr,
@@ -430,7 +431,7 @@ func (p *Init) update(context context.Context, r *google_protobuf.Any) error {
 }
 }
 
 
 // Stdio of the process
 // Stdio of the process
-func (p *Init) Stdio() Stdio {
+func (p *Init) Stdio() proc.Stdio {
 	return p.stdio
 	return p.stdio
 }
 }
 
 

+ 8 - 7
vendor/github.com/containerd/containerd/linux/proc/init_state.go → vendor/github.com/containerd/containerd/runtime/linux/proc/init_state.go

@@ -25,6 +25,7 @@ import (
 
 
 	"github.com/containerd/console"
 	"github.com/containerd/console"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
+	"github.com/containerd/containerd/runtime/proc"
 	"github.com/containerd/fifo"
 	"github.com/containerd/fifo"
 	runc "github.com/containerd/go-runc"
 	runc "github.com/containerd/go-runc"
 	google_protobuf "github.com/gogo/protobuf/types"
 	google_protobuf "github.com/gogo/protobuf/types"
@@ -32,13 +33,13 @@ import (
 )
 )
 
 
 type initState interface {
 type initState interface {
-	State
+	proc.State
 
 
 	Pause(context.Context) error
 	Pause(context.Context) error
 	Resume(context.Context) error
 	Resume(context.Context) error
 	Update(context.Context, *google_protobuf.Any) error
 	Update(context.Context, *google_protobuf.Any) error
 	Checkpoint(context.Context, *CheckpointConfig) error
 	Checkpoint(context.Context, *CheckpointConfig) error
-	Exec(context.Context, string, *ExecConfig) (Process, error)
+	Exec(context.Context, string, *ExecConfig) (proc.Process, error)
 }
 }
 
 
 type createdState struct {
 type createdState struct {
@@ -130,7 +131,7 @@ func (s *createdState) SetExited(status int) {
 	}
 	}
 }
 }
 
 
-func (s *createdState) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error) {
+func (s *createdState) Exec(ctx context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	s.p.mu.Lock()
 	s.p.mu.Lock()
 	defer s.p.mu.Unlock()
 	defer s.p.mu.Unlock()
 	return s.p.exec(ctx, path, r)
 	return s.p.exec(ctx, path, r)
@@ -272,7 +273,7 @@ func (s *createdCheckpointState) SetExited(status int) {
 	}
 	}
 }
 }
 
 
-func (s *createdCheckpointState) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error) {
+func (s *createdCheckpointState) Exec(ctx context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	s.p.mu.Lock()
 	s.p.mu.Lock()
 	defer s.p.mu.Unlock()
 	defer s.p.mu.Unlock()
 
 
@@ -364,7 +365,7 @@ func (s *runningState) SetExited(status int) {
 	}
 	}
 }
 }
 
 
-func (s *runningState) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error) {
+func (s *runningState) Exec(ctx context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	s.p.mu.Lock()
 	s.p.mu.Lock()
 	defer s.p.mu.Unlock()
 	defer s.p.mu.Unlock()
 	return s.p.exec(ctx, path, r)
 	return s.p.exec(ctx, path, r)
@@ -456,7 +457,7 @@ func (s *pausedState) SetExited(status int) {
 	}
 	}
 }
 }
 
 
-func (s *pausedState) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error) {
+func (s *pausedState) Exec(ctx context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	s.p.mu.Lock()
 	s.p.mu.Lock()
 	defer s.p.mu.Unlock()
 	defer s.p.mu.Unlock()
 
 
@@ -536,7 +537,7 @@ func (s *stoppedState) SetExited(status int) {
 	// no op
 	// no op
 }
 }
 
 
-func (s *stoppedState) Exec(ctx context.Context, path string, r *ExecConfig) (Process, error) {
+func (s *stoppedState) Exec(ctx context.Context, path string, r *ExecConfig) (proc.Process, error) {
 	s.p.mu.Lock()
 	s.p.mu.Lock()
 	defer s.p.mu.Unlock()
 	defer s.p.mu.Unlock()
 
 

+ 0 - 0
vendor/github.com/containerd/containerd/linux/proc/io.go → vendor/github.com/containerd/containerd/runtime/linux/proc/io.go


+ 42 - 0
vendor/github.com/containerd/containerd/runtime/linux/proc/process.go

@@ -0,0 +1,42 @@
+// +build !windows
+
+/*
+   Copyright The containerd Authors.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package proc
+
+import (
+	"github.com/pkg/errors"
+)
+
+// RuncRoot is the path to the root runc state directory
+const RuncRoot = "/run/containerd/runc"
+
+func stateName(v interface{}) string {
+	switch v.(type) {
+	case *runningState, *execRunningState:
+		return "running"
+	case *createdState, *execCreatedState, *createdCheckpointState:
+		return "created"
+	case *pausedState:
+		return "paused"
+	case *deletedState:
+		return "deleted"
+	case *stoppedState:
+		return "stopped"
+	}
+	panic(errors.Errorf("invalid state %v", v))
+}

+ 0 - 0
vendor/github.com/containerd/containerd/linux/proc/types.go → vendor/github.com/containerd/containerd/runtime/linux/proc/types.go


+ 0 - 0
vendor/github.com/containerd/containerd/linux/proc/utils.go → vendor/github.com/containerd/containerd/runtime/linux/proc/utils.go


+ 1 - 1
vendor/github.com/containerd/containerd/linux/process.go → vendor/github.com/containerd/containerd/runtime/linux/process.go

@@ -24,8 +24,8 @@ import (
 	eventstypes "github.com/containerd/containerd/api/events"
 	eventstypes "github.com/containerd/containerd/api/events"
 	"github.com/containerd/containerd/api/types/task"
 	"github.com/containerd/containerd/api/types/task"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
-	shim "github.com/containerd/containerd/linux/shim/v1"
 	"github.com/containerd/containerd/runtime"
 	"github.com/containerd/containerd/runtime"
+	shim "github.com/containerd/containerd/runtime/shim/v1"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 	"github.com/stevvooe/ttrpc"
 	"github.com/stevvooe/ttrpc"
 )
 )

+ 17 - 0
vendor/github.com/containerd/containerd/runtime/linux/runctypes/doc.go

@@ -0,0 +1,17 @@
+/*
+   Copyright The containerd Authors.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package runctypes

+ 36 - 36
vendor/github.com/containerd/containerd/linux/runctypes/runc.pb.go → vendor/github.com/containerd/containerd/runtime/linux/runctypes/runc.pb.go

@@ -1,11 +1,11 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: github.com/containerd/containerd/linux/runctypes/runc.proto
+// source: github.com/containerd/containerd/runtime/linux/runctypes/runc.proto
 
 
 /*
 /*
 	Package runctypes is a generated protocol buffer package.
 	Package runctypes is a generated protocol buffer package.
 
 
 	It is generated from these files:
 	It is generated from these files:
-		github.com/containerd/containerd/linux/runctypes/runc.proto
+		github.com/containerd/containerd/runtime/linux/runctypes/runc.proto
 
 
 	It has these top-level messages:
 	It has these top-level messages:
 		RuncOptions
 		RuncOptions
@@ -1408,43 +1408,43 @@ var (
 )
 )
 
 
 func init() {
 func init() {
-	proto.RegisterFile("github.com/containerd/containerd/linux/runctypes/runc.proto", fileDescriptorRunc)
+	proto.RegisterFile("github.com/containerd/containerd/runtime/linux/runctypes/runc.proto", fileDescriptorRunc)
 }
 }
 
 
 var fileDescriptorRunc = []byte{
 var fileDescriptorRunc = []byte{
-	// 540 bytes of a gzipped FileDescriptorProto
+	// 541 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x93, 0xc1, 0x6e, 0xd3, 0x40,
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x93, 0xc1, 0x6e, 0xd3, 0x40,
 	0x10, 0x86, 0x6b, 0xda, 0x26, 0xce, 0xa4, 0x29, 0xb0, 0x50, 0xc9, 0x14, 0x91, 0x86, 0x00, 0x52,
 	0x10, 0x86, 0x6b, 0xda, 0x26, 0xce, 0xa4, 0x29, 0xb0, 0x50, 0xc9, 0x14, 0x91, 0x86, 0x00, 0x52,
-	0xb8, 0xa4, 0x12, 0x88, 0x0b, 0xbd, 0xb5, 0x45, 0xa8, 0x02, 0x4a, 0x65, 0x5a, 0x09, 0x71, 0x59,
-	0xb9, 0xeb, 0x21, 0x59, 0x25, 0xde, 0x59, 0xed, 0xae, 0xa9, 0x73, 0xeb, 0x13, 0xf0, 0x5c, 0x3d,
-	0x72, 0xe4, 0x84, 0x68, 0x5e, 0x04, 0xe4, 0x75, 0x1c, 0xb8, 0x72, 0xe5, 0xf6, 0xcf, 0xf7, 0x8f,
-	0x3d, 0xa3, 0x7f, 0x35, 0xb0, 0x37, 0x92, 0x6e, 0x9c, 0x9f, 0x0f, 0x05, 0x65, 0xbb, 0x82, 0x94,
-	0x4b, 0xa4, 0x42, 0x93, 0xfe, 0x2d, 0xa7, 0x52, 0xe5, 0xc5, 0xae, 0xc9, 0x95, 0x70, 0x33, 0x8d,
-	0xd6, 0xab, 0xa1, 0x36, 0xe4, 0x88, 0x6d, 0xfd, 0x69, 0x1b, 0xfa, 0xb6, 0x61, 0x69, 0x6e, 0xdf,
-	0x1d, 0xd1, 0x88, 0x7c, 0xc7, 0x6e, 0xa9, 0xaa, 0xe6, 0xfe, 0xd7, 0x00, 0xda, 0x71, 0xae, 0xc4,
-	0x7b, 0xed, 0x24, 0x29, 0xcb, 0x22, 0x68, 0x9a, 0x5c, 0x39, 0x99, 0x61, 0x14, 0xf4, 0x82, 0x41,
-	0x2b, 0xae, 0x4b, 0xf6, 0x10, 0x36, 0x16, 0x92, 0x1b, 0x22, 0x17, 0xdd, 0xf0, 0x76, 0x7b, 0xc1,
-	0x62, 0x22, 0xc7, 0xee, 0x43, 0x4b, 0x18, 0x99, 0x73, 0x9d, 0xb8, 0x71, 0xb4, 0xea, 0xfd, 0xb0,
-	0x04, 0x27, 0x89, 0x1b, 0xb3, 0x27, 0xb0, 0x69, 0x67, 0xd6, 0x61, 0x96, 0x72, 0x31, 0x32, 0x94,
-	0xeb, 0x68, 0xad, 0x17, 0x0c, 0xc2, 0xb8, 0xb3, 0xa0, 0x07, 0x1e, 0xf6, 0x2f, 0x57, 0xa1, 0x73,
-	0x60, 0x30, 0x71, 0x58, 0xaf, 0xd4, 0x87, 0x8e, 0x22, 0xae, 0xe5, 0x17, 0x72, 0xd5, 0xe4, 0xc0,
-	0x7f, 0xd7, 0x56, 0x74, 0x52, 0x32, 0x3f, 0xf9, 0x1e, 0x84, 0xa4, 0x51, 0x71, 0x27, 0xb4, 0x5f,
-	0x2c, 0x8c, 0x9b, 0x65, 0x7d, 0x2a, 0x34, 0x7b, 0x06, 0x5b, 0x58, 0x38, 0x34, 0x2a, 0x99, 0xf2,
-	0x5c, 0xc9, 0x82, 0x5b, 0x12, 0x13, 0x74, 0xd6, 0x2f, 0x18, 0xc6, 0x77, 0x6a, 0xf3, 0x4c, 0xc9,
-	0xe2, 0x43, 0x65, 0xb1, 0x6d, 0x08, 0x1d, 0x9a, 0x4c, 0xaa, 0x64, 0xba, 0xd8, 0x72, 0x59, 0xb3,
-	0x07, 0x00, 0x9f, 0xe5, 0x14, 0xf9, 0x94, 0xc4, 0xc4, 0x46, 0xeb, 0xde, 0x6d, 0x95, 0xe4, 0x6d,
-	0x09, 0xd8, 0x53, 0xb8, 0x85, 0x99, 0x76, 0x33, 0xae, 0x92, 0x0c, 0xad, 0x4e, 0x04, 0xda, 0xa8,
-	0xd1, 0x5b, 0x1d, 0xb4, 0xe2, 0x9b, 0x9e, 0x1f, 0x2f, 0x71, 0x99, 0x68, 0x95, 0x84, 0xe5, 0x19,
-	0xa5, 0x18, 0x35, 0xab, 0x44, 0x17, 0xec, 0x1d, 0xa5, 0xc8, 0x1e, 0xc3, 0xa6, 0x22, 0xae, 0xf0,
-	0x82, 0x4f, 0x70, 0x66, 0xa4, 0x1a, 0x45, 0xa1, 0x1f, 0xb8, 0xa1, 0xe8, 0x18, 0x2f, 0xde, 0x54,
-	0x8c, 0xed, 0x40, 0xdb, 0x8e, 0x65, 0x56, 0xe7, 0xda, 0xf2, 0xff, 0x81, 0x12, 0x55, 0xa1, 0xb2,
-	0x2d, 0x68, 0x48, 0xe2, 0xb9, 0x4c, 0x23, 0xe8, 0x05, 0x83, 0x4e, 0xbc, 0x2e, 0xe9, 0x4c, 0xa6,
-	0x0b, 0x3c, 0x92, 0x69, 0xd4, 0xae, 0xf1, 0x6b, 0x99, 0xf6, 0x7f, 0x05, 0x70, 0xfb, 0x60, 0x8c,
-	0x62, 0xa2, 0x49, 0x2a, 0x57, 0x3f, 0x03, 0x83, 0x35, 0x2c, 0x64, 0x9d, 0xbe, 0xd7, 0xff, 0x6b,
-	0xec, 0xfd, 0x17, 0xb0, 0x79, 0x62, 0x48, 0xa0, 0xb5, 0x87, 0xe8, 0x12, 0x39, 0xb5, 0xec, 0x11,
-	0x34, 0xb1, 0x40, 0xc1, 0x65, 0x5a, 0xdd, 0xc5, 0x3e, 0xcc, 0x7f, 0xec, 0x34, 0x5e, 0x15, 0x28,
-	0x8e, 0x0e, 0xe3, 0x46, 0x69, 0x1d, 0xa5, 0xfb, 0xa7, 0x57, 0xd7, 0xdd, 0x95, 0xef, 0xd7, 0xdd,
-	0x95, 0xcb, 0x79, 0x37, 0xb8, 0x9a, 0x77, 0x83, 0x6f, 0xf3, 0x6e, 0xf0, 0x73, 0xde, 0x0d, 0x3e,
-	0xbd, 0xfc, 0xd7, 0x83, 0xde, 0x5b, 0xaa, 0x8f, 0x2b, 0xe7, 0x0d, 0x7f, 0xab, 0xcf, 0x7f, 0x07,
-	0x00, 0x00, 0xff, 0xff, 0xb1, 0xca, 0x85, 0x39, 0x17, 0x04, 0x00, 0x00,
+	0xb8, 0xa4, 0x12, 0x88, 0x13, 0xb7, 0xa6, 0x08, 0x55, 0x40, 0xa9, 0x0c, 0x95, 0x10, 0x42, 0x5a,
+	0xb9, 0xeb, 0x21, 0x59, 0xc5, 0xde, 0x59, 0x79, 0xd7, 0xd4, 0xb9, 0xf5, 0x09, 0x78, 0xae, 0x1e,
+	0x39, 0x72, 0x42, 0x34, 0x2f, 0x02, 0xf2, 0xda, 0x0e, 0x9c, 0x39, 0x72, 0xfb, 0xe7, 0xfb, 0xc7,
+	0x9e, 0xd1, 0xbf, 0x1a, 0x98, 0x4c, 0xa5, 0x9d, 0xe5, 0x67, 0x63, 0x41, 0xe9, 0xbe, 0x20, 0x65,
+	0x23, 0xa9, 0x30, 0x8b, 0xff, 0x96, 0x59, 0xae, 0xac, 0x4c, 0x71, 0x3f, 0x91, 0x2a, 0x2f, 0xca,
+	0x4a, 0xd8, 0x85, 0x46, 0xe3, 0xd4, 0x58, 0x67, 0x64, 0x89, 0xed, 0xfc, 0x69, 0x1f, 0xbb, 0xb6,
+	0x71, 0x69, 0xee, 0xde, 0x9e, 0xd2, 0x94, 0x5c, 0xc7, 0x7e, 0xa9, 0xaa, 0xe6, 0xe1, 0x57, 0x0f,
+	0xba, 0x61, 0xae, 0xc4, 0x5b, 0x6d, 0x25, 0x29, 0xc3, 0x02, 0x68, 0xd7, 0x23, 0x02, 0x6f, 0xe0,
+	0x8d, 0x3a, 0x61, 0x53, 0xb2, 0xfb, 0xb0, 0x55, 0x4b, 0x9e, 0x11, 0xd9, 0xe0, 0x9a, 0xb3, 0xbb,
+	0x35, 0x0b, 0x89, 0x2c, 0xbb, 0x0b, 0x1d, 0x91, 0xc9, 0x9c, 0xeb, 0xc8, 0xce, 0x82, 0x75, 0xe7,
+	0xfb, 0x25, 0x38, 0x89, 0xec, 0x8c, 0x3d, 0x82, 0x6d, 0xb3, 0x30, 0x16, 0xd3, 0x98, 0x8b, 0x69,
+	0x46, 0xb9, 0x0e, 0x36, 0x06, 0xde, 0xc8, 0x0f, 0x7b, 0x35, 0x9d, 0x38, 0x38, 0xbc, 0x58, 0x87,
+	0xde, 0x24, 0xc3, 0xc8, 0x62, 0xb3, 0xd2, 0x10, 0x7a, 0x8a, 0xb8, 0x96, 0x5f, 0xc8, 0x56, 0x93,
+	0x3d, 0xf7, 0x5d, 0x57, 0xd1, 0x49, 0xc9, 0xdc, 0xe4, 0x3b, 0xe0, 0x93, 0x46, 0xc5, 0xad, 0xd0,
+	0x6e, 0x31, 0x3f, 0x6c, 0x97, 0xf5, 0x7b, 0xa1, 0xd9, 0x13, 0xd8, 0xc1, 0xc2, 0x62, 0xa6, 0xa2,
+	0x84, 0xe7, 0x4a, 0x16, 0xdc, 0x90, 0x98, 0xa3, 0x35, 0x6e, 0x41, 0x3f, 0xbc, 0xd5, 0x98, 0xa7,
+	0x4a, 0x16, 0xef, 0x2a, 0x8b, 0xed, 0x82, 0x6f, 0x31, 0x4b, 0xa5, 0x8a, 0x92, 0x7a, 0xcb, 0x55,
+	0xcd, 0xee, 0x01, 0x7c, 0x96, 0x09, 0xf2, 0x84, 0xc4, 0xdc, 0x04, 0x9b, 0xce, 0xed, 0x94, 0xe4,
+	0x75, 0x09, 0xd8, 0x63, 0xb8, 0x81, 0xa9, 0xb6, 0x0b, 0xae, 0xa2, 0x14, 0x8d, 0x8e, 0x04, 0x9a,
+	0xa0, 0x35, 0x58, 0x1f, 0x75, 0xc2, 0xeb, 0x8e, 0x1f, 0xaf, 0x70, 0x99, 0x68, 0x95, 0x84, 0xe1,
+	0x29, 0xc5, 0x18, 0xb4, 0xab, 0x44, 0x6b, 0xf6, 0x86, 0x62, 0x64, 0x0f, 0x61, 0x5b, 0x11, 0x57,
+	0x78, 0xce, 0xe7, 0xb8, 0xc8, 0xa4, 0x9a, 0x06, 0xbe, 0x1b, 0xb8, 0xa5, 0xe8, 0x18, 0xcf, 0x5f,
+	0x55, 0x8c, 0xed, 0x41, 0xd7, 0xcc, 0x64, 0xda, 0xe4, 0xda, 0x71, 0xff, 0x81, 0x12, 0x55, 0xa1,
+	0xb2, 0x1d, 0x68, 0x49, 0xe2, 0xb9, 0x8c, 0x03, 0x18, 0x78, 0xa3, 0x5e, 0xb8, 0x29, 0xe9, 0x54,
+	0xc6, 0x35, 0x9e, 0xca, 0x38, 0xe8, 0x36, 0xf8, 0xa5, 0x8c, 0x87, 0xbf, 0x3c, 0xb8, 0x39, 0x99,
+	0xa1, 0x98, 0x6b, 0x92, 0xca, 0x36, 0xcf, 0xc0, 0x60, 0x03, 0x0b, 0xd9, 0xa4, 0xef, 0xf4, 0xff,
+	0x1a, 0xfb, 0xf0, 0x19, 0x6c, 0x9f, 0x64, 0x24, 0xd0, 0x98, 0x43, 0xb4, 0x91, 0x4c, 0x0c, 0x7b,
+	0x00, 0x6d, 0x2c, 0x50, 0x70, 0x19, 0x57, 0x77, 0x71, 0x00, 0xcb, 0x1f, 0x7b, 0xad, 0x17, 0x05,
+	0x8a, 0xa3, 0xc3, 0xb0, 0x55, 0x5a, 0x47, 0xf1, 0xc1, 0xa7, 0xcb, 0xab, 0xfe, 0xda, 0xf7, 0xab,
+	0xfe, 0xda, 0xc5, 0xb2, 0xef, 0x5d, 0x2e, 0xfb, 0xde, 0xb7, 0x65, 0xdf, 0xfb, 0xb9, 0xec, 0x7b,
+	0x1f, 0x0f, 0xfe, 0xf5, 0xb0, 0x9f, 0xaf, 0xd4, 0x87, 0xb5, 0xb3, 0x96, 0xbb, 0xd9, 0xa7, 0xbf,
+	0x03, 0x00, 0x00, 0xff, 0xff, 0x18, 0xa1, 0x4b, 0x5b, 0x27, 0x04, 0x00, 0x00,
 }
 }

+ 1 - 1
vendor/github.com/containerd/containerd/linux/runctypes/runc.proto → vendor/github.com/containerd/containerd/runtime/linux/runctypes/runc.proto

@@ -4,7 +4,7 @@ package containerd.linux.runc;
 
 
 import weak "gogoproto/gogo.proto";
 import weak "gogoproto/gogo.proto";
 
 
-option go_package = "github.com/containerd/containerd/linux/runctypes;runctypes";
+option go_package = "github.com/containerd/containerd/runtime/linux/runctypes;runctypes";
 
 
 message RuncOptions {
 message RuncOptions {
 	string runtime = 1;
 	string runtime = 1;

+ 3 - 3
vendor/github.com/containerd/containerd/linux/runtime.go → vendor/github.com/containerd/containerd/runtime/linux/runtime.go

@@ -33,9 +33,6 @@ import (
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/events/exchange"
 	"github.com/containerd/containerd/events/exchange"
 	"github.com/containerd/containerd/identifiers"
 	"github.com/containerd/containerd/identifiers"
-	"github.com/containerd/containerd/linux/proc"
-	"github.com/containerd/containerd/linux/runctypes"
-	shim "github.com/containerd/containerd/linux/shim/v1"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/metadata"
 	"github.com/containerd/containerd/metadata"
 	"github.com/containerd/containerd/mount"
 	"github.com/containerd/containerd/mount"
@@ -43,6 +40,9 @@ import (
 	"github.com/containerd/containerd/platforms"
 	"github.com/containerd/containerd/platforms"
 	"github.com/containerd/containerd/plugin"
 	"github.com/containerd/containerd/plugin"
 	"github.com/containerd/containerd/runtime"
 	"github.com/containerd/containerd/runtime"
+	"github.com/containerd/containerd/runtime/linux/proc"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
+	shim "github.com/containerd/containerd/runtime/shim/v1"
 	runc "github.com/containerd/go-runc"
 	runc "github.com/containerd/go-runc"
 	"github.com/containerd/typeurl"
 	"github.com/containerd/typeurl"
 	ptypes "github.com/gogo/protobuf/types"
 	ptypes "github.com/gogo/protobuf/types"

+ 2 - 2
vendor/github.com/containerd/containerd/linux/task.go → vendor/github.com/containerd/containerd/runtime/linux/task.go

@@ -28,9 +28,9 @@ import (
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/events/exchange"
 	"github.com/containerd/containerd/events/exchange"
 	"github.com/containerd/containerd/identifiers"
 	"github.com/containerd/containerd/identifiers"
-	"github.com/containerd/containerd/linux/shim/client"
-	shim "github.com/containerd/containerd/linux/shim/v1"
 	"github.com/containerd/containerd/runtime"
 	"github.com/containerd/containerd/runtime"
+	"github.com/containerd/containerd/runtime/shim/client"
+	shim "github.com/containerd/containerd/runtime/shim/v1"
 	runc "github.com/containerd/go-runc"
 	runc "github.com/containerd/go-runc"
 	"github.com/gogo/protobuf/types"
 	"github.com/gogo/protobuf/types"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"

+ 1 - 23
vendor/github.com/containerd/containerd/linux/proc/process.go → vendor/github.com/containerd/containerd/runtime/proc/proc.go

@@ -1,5 +1,3 @@
-// +build !windows
-
 /*
 /*
    Copyright The containerd Authors.
    Copyright The containerd Authors.
 
 
@@ -25,12 +23,8 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/containerd/console"
 	"github.com/containerd/console"
-	"github.com/pkg/errors"
 )
 )
 
 
-// RuncRoot is the path to the root runc state directory
-const RuncRoot = "/run/containerd/runc"
-
 // Stdio of a process
 // Stdio of a process
 type Stdio struct {
 type Stdio struct {
 	Stdin    string
 	Stdin    string
@@ -44,7 +38,7 @@ func (s Stdio) IsNull() bool {
 	return s.Stdin == "" && s.Stdout == "" && s.Stderr == ""
 	return s.Stdin == "" && s.Stdout == "" && s.Stderr == ""
 }
 }
 
 
-// Process on a linux system
+// Process on a system
 type Process interface {
 type Process interface {
 	State
 	State
 	// ID returns the id for the process
 	// ID returns the id for the process
@@ -79,22 +73,6 @@ type State interface {
 	SetExited(status int)
 	SetExited(status int)
 }
 }
 
 
-func stateName(v interface{}) string {
-	switch v.(type) {
-	case *runningState, *execRunningState:
-		return "running"
-	case *createdState, *execCreatedState, *createdCheckpointState:
-		return "created"
-	case *pausedState:
-		return "paused"
-	case *deletedState:
-		return "deleted"
-	case *stoppedState:
-		return "stopped"
-	}
-	panic(errors.Errorf("invalid state %v", v))
-}
-
 // Platform handles platform-specific behavior that may differs across
 // Platform handles platform-specific behavior that may differs across
 // platform implementations
 // platform implementations
 type Platform interface {
 type Platform interface {

+ 2 - 2
vendor/github.com/containerd/containerd/linux/shim/client/client.go → vendor/github.com/containerd/containerd/runtime/shim/client/client.go

@@ -36,9 +36,9 @@ import (
 	"github.com/stevvooe/ttrpc"
 	"github.com/stevvooe/ttrpc"
 
 
 	"github.com/containerd/containerd/events"
 	"github.com/containerd/containerd/events"
-	"github.com/containerd/containerd/linux/shim"
-	shimapi "github.com/containerd/containerd/linux/shim/v1"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/log"
+	"github.com/containerd/containerd/runtime/shim"
+	shimapi "github.com/containerd/containerd/runtime/shim/v1"
 	"github.com/containerd/containerd/sys"
 	"github.com/containerd/containerd/sys"
 	ptypes "github.com/gogo/protobuf/types"
 	ptypes "github.com/gogo/protobuf/types"
 )
 )

+ 0 - 0
vendor/github.com/containerd/containerd/linux/shim/client/client_linux.go → vendor/github.com/containerd/containerd/runtime/shim/client/client_linux.go


+ 0 - 0
vendor/github.com/containerd/containerd/linux/shim/client/client_unix.go → vendor/github.com/containerd/containerd/runtime/shim/client/client_unix.go


+ 1 - 1
vendor/github.com/containerd/containerd/linux/shim/local.go → vendor/github.com/containerd/containerd/runtime/shim/local.go

@@ -22,8 +22,8 @@ import (
 	"context"
 	"context"
 	"path/filepath"
 	"path/filepath"
 
 
-	shimapi "github.com/containerd/containerd/linux/shim/v1"
 	"github.com/containerd/containerd/mount"
 	"github.com/containerd/containerd/mount"
+	shimapi "github.com/containerd/containerd/runtime/shim/v1"
 	ptypes "github.com/gogo/protobuf/types"
 	ptypes "github.com/gogo/protobuf/types"
 )
 )
 
 

+ 0 - 0
vendor/github.com/containerd/containerd/linux/shim/reaper.go → vendor/github.com/containerd/containerd/runtime/shim/reaper.go


+ 7 - 6
vendor/github.com/containerd/containerd/linux/shim/service.go → vendor/github.com/containerd/containerd/runtime/shim/service.go

@@ -29,12 +29,13 @@ import (
 	"github.com/containerd/containerd/api/types/task"
 	"github.com/containerd/containerd/api/types/task"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/events"
 	"github.com/containerd/containerd/events"
-	"github.com/containerd/containerd/linux/proc"
-	"github.com/containerd/containerd/linux/runctypes"
-	shimapi "github.com/containerd/containerd/linux/shim/v1"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/log"
 	"github.com/containerd/containerd/namespaces"
 	"github.com/containerd/containerd/namespaces"
 	"github.com/containerd/containerd/runtime"
 	"github.com/containerd/containerd/runtime"
+	"github.com/containerd/containerd/runtime/linux/proc"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
+	rproc "github.com/containerd/containerd/runtime/proc"
+	shimapi "github.com/containerd/containerd/runtime/shim/v1"
 	runc "github.com/containerd/go-runc"
 	runc "github.com/containerd/go-runc"
 	"github.com/containerd/typeurl"
 	"github.com/containerd/typeurl"
 	ptypes "github.com/gogo/protobuf/types"
 	ptypes "github.com/gogo/protobuf/types"
@@ -78,7 +79,7 @@ func NewService(config Config, publisher events.Publisher) (*Service, error) {
 	s := &Service{
 	s := &Service{
 		config:    config,
 		config:    config,
 		context:   ctx,
 		context:   ctx,
-		processes: make(map[string]proc.Process),
+		processes: make(map[string]rproc.Process),
 		events:    make(chan interface{}, 128),
 		events:    make(chan interface{}, 128),
 		ec:        Default.Subscribe(),
 		ec:        Default.Subscribe(),
 	}
 	}
@@ -96,9 +97,9 @@ type Service struct {
 
 
 	config    Config
 	config    Config
 	context   context.Context
 	context   context.Context
-	processes map[string]proc.Process
+	processes map[string]rproc.Process
 	events    chan interface{}
 	events    chan interface{}
-	platform  proc.Platform
+	platform  rproc.Platform
 	ec        chan runc.Exit
 	ec        chan runc.Exit
 
 
 	// Filled by Create()
 	// Filled by Create()

+ 0 - 0
vendor/github.com/containerd/containerd/linux/shim/service_linux.go → vendor/github.com/containerd/containerd/runtime/shim/service_linux.go


+ 0 - 0
vendor/github.com/containerd/containerd/linux/shim/service_unix.go → vendor/github.com/containerd/containerd/runtime/shim/service_unix.go


+ 17 - 0
vendor/github.com/containerd/containerd/runtime/shim/v1/doc.go

@@ -0,0 +1,17 @@
+/*
+   Copyright The containerd Authors.
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+*/
+
+package shim

+ 75 - 75
vendor/github.com/containerd/containerd/linux/shim/v1/shim.pb.go → vendor/github.com/containerd/containerd/runtime/shim/v1/shim.pb.go

@@ -1,11 +1,11 @@
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
 // Code generated by protoc-gen-gogo. DO NOT EDIT.
-// source: github.com/containerd/containerd/linux/shim/v1/shim.proto
+// source: github.com/containerd/containerd/runtime/shim/v1/shim.proto
 
 
 /*
 /*
 	Package shim is a generated protocol buffer package.
 	Package shim is a generated protocol buffer package.
 
 
 	It is generated from these files:
 	It is generated from these files:
-		github.com/containerd/containerd/linux/shim/v1/shim.proto
+		github.com/containerd/containerd/runtime/shim/v1/shim.proto
 
 
 	It has these top-level messages:
 	It has these top-level messages:
 		CreateTaskRequest
 		CreateTaskRequest
@@ -4352,80 +4352,80 @@ var (
 )
 )
 
 
 func init() {
 func init() {
-	proto.RegisterFile("github.com/containerd/containerd/linux/shim/v1/shim.proto", fileDescriptorShim)
+	proto.RegisterFile("github.com/containerd/containerd/runtime/shim/v1/shim.proto", fileDescriptorShim)
 }
 }
 
 
 var fileDescriptorShim = []byte{
 var fileDescriptorShim = []byte{
-	// 1133 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcd, 0x6e, 0xdb, 0x46,
-	0x10, 0x36, 0x69, 0xfd, 0x8e, 0x22, 0xd7, 0xde, 0x3a, 0x2e, 0xa3, 0x00, 0xb2, 0x40, 0xa0, 0x81,
-	0x8b, 0x22, 0x54, 0x2d, 0x17, 0x49, 0xd3, 0x02, 0x01, 0x6c, 0x27, 0x28, 0x8c, 0xd6, 0x88, 0x41,
-	0x3b, 0x4d, 0xd0, 0xa2, 0x30, 0x68, 0x71, 0x2d, 0x2d, 0x2c, 0x91, 0x0c, 0x77, 0xe9, 0xda, 0x3d,
-	0xf5, 0xd4, 0x73, 0x1f, 0xa7, 0x8f, 0xe0, 0x43, 0x0e, 0x3d, 0xf6, 0x94, 0x36, 0xba, 0xf7, 0x1d,
-	0x8a, 0xfd, 0x91, 0x49, 0x49, 0x66, 0x48, 0xf9, 0x62, 0x71, 0x76, 0xbf, 0xd9, 0x9d, 0x9d, 0xef,
-	0xdb, 0x99, 0x35, 0x3c, 0xe9, 0x11, 0xd6, 0x8f, 0x4e, 0xac, 0xae, 0x3f, 0x6c, 0x77, 0x7d, 0x8f,
-	0x39, 0xc4, 0xc3, 0xa1, 0x9b, 0xfc, 0x1c, 0x10, 0x2f, 0xba, 0x68, 0xd3, 0x3e, 0x19, 0xb6, 0xcf,
-	0x37, 0xc5, 0xaf, 0x15, 0x84, 0x3e, 0xf3, 0x51, 0x2b, 0x06, 0x59, 0x61, 0xe4, 0x31, 0x32, 0xc4,
-	0x96, 0x00, 0x5b, 0x02, 0x74, 0xbe, 0xd9, 0xb8, 0xd7, 0xf3, 0xfd, 0xde, 0x00, 0xb7, 0x05, 0xfe,
-	0x24, 0x3a, 0x6d, 0x3b, 0xde, 0xa5, 0x74, 0x6e, 0xdc, 0x9f, 0x9e, 0xc2, 0xc3, 0x80, 0x8d, 0x27,
-	0x57, 0x7b, 0x7e, 0xcf, 0x17, 0x9f, 0x6d, 0xfe, 0xa5, 0x46, 0xd7, 0xa7, 0x5d, 0xf8, 0x8e, 0x94,
-	0x39, 0xc3, 0x40, 0x01, 0x1e, 0x65, 0x9e, 0xc5, 0x09, 0x48, 0x9b, 0x5d, 0x06, 0x98, 0xb6, 0x87,
-	0x7e, 0xe4, 0x31, 0xe5, 0xf7, 0xf5, 0x1c, 0x7e, 0xcc, 0xa1, 0x67, 0xe2, 0x8f, 0xf4, 0x35, 0xff,
-	0xd3, 0x61, 0x65, 0x37, 0xc4, 0x0e, 0xc3, 0x47, 0x0e, 0x3d, 0xb3, 0xf1, 0x9b, 0x08, 0x53, 0x86,
-	0xd6, 0x40, 0x27, 0xae, 0xa1, 0xb5, 0xb4, 0x8d, 0xea, 0x4e, 0x69, 0xf4, 0x6e, 0x5d, 0xdf, 0x7b,
-	0x66, 0xeb, 0xc4, 0x45, 0x6b, 0x50, 0x3a, 0x89, 0x3c, 0x77, 0x80, 0x0d, 0x9d, 0xcf, 0xd9, 0xca,
-	0x42, 0x06, 0x94, 0x55, 0x06, 0x8d, 0x45, 0x31, 0x31, 0x36, 0x51, 0x1b, 0x4a, 0xa1, 0xef, 0xb3,
-	0x53, 0x6a, 0x14, 0x5a, 0x8b, 0x1b, 0xb5, 0xce, 0x27, 0x56, 0x22, 0xeb, 0x22, 0x24, 0x6b, 0x9f,
-	0x1f, 0xc5, 0x56, 0x30, 0xd4, 0x80, 0x0a, 0xc3, 0xe1, 0x90, 0x78, 0xce, 0xc0, 0x28, 0xb6, 0xb4,
-	0x8d, 0x8a, 0x7d, 0x6d, 0xa3, 0x55, 0x28, 0x52, 0xe6, 0x12, 0xcf, 0x28, 0x89, 0x4d, 0xa4, 0xc1,
-	0x83, 0xa2, 0xcc, 0xf5, 0x23, 0x66, 0x94, 0x65, 0x50, 0xd2, 0x52, 0xe3, 0x38, 0x0c, 0x8d, 0xca,
-	0xf5, 0x38, 0x0e, 0x43, 0xd4, 0x04, 0xe8, 0xf6, 0x71, 0xf7, 0x2c, 0xf0, 0x89, 0xc7, 0x8c, 0xaa,
-	0x98, 0x4b, 0x8c, 0xa0, 0xcf, 0x61, 0x25, 0x70, 0x42, 0xec, 0xb1, 0xe3, 0x04, 0x0c, 0x04, 0x6c,
-	0x59, 0x4e, 0xec, 0xc6, 0x60, 0x0b, 0xca, 0x7e, 0xc0, 0x88, 0xef, 0x51, 0xa3, 0xd6, 0xd2, 0x36,
-	0x6a, 0x9d, 0x55, 0x4b, 0xd2, 0x6c, 0x8d, 0x69, 0xb6, 0xb6, 0xbd, 0x4b, 0x7b, 0x0c, 0x32, 0x1f,
-	0x00, 0x4a, 0xa6, 0x9b, 0x06, 0xbe, 0x47, 0x31, 0x5a, 0x86, 0xc5, 0x40, 0x25, 0xbc, 0x6e, 0xf3,
-	0x4f, 0xf3, 0x77, 0x0d, 0x96, 0x9e, 0xe1, 0x01, 0x66, 0x38, 0x1d, 0x84, 0xd6, 0xa1, 0x86, 0x2f,
-	0x08, 0x3b, 0xa6, 0xcc, 0x61, 0x11, 0x15, 0x9c, 0xd4, 0x6d, 0xe0, 0x43, 0x87, 0x62, 0x04, 0x6d,
-	0x43, 0x95, 0x5b, 0xd8, 0x3d, 0x76, 0x98, 0x60, 0xa6, 0xd6, 0x69, 0xcc, 0xc4, 0x77, 0x34, 0x96,
-	0xe1, 0x4e, 0xe5, 0xea, 0xdd, 0xfa, 0xc2, 0x1f, 0xff, 0xac, 0x6b, 0x76, 0x45, 0xba, 0x6d, 0x33,
-	0xd3, 0x82, 0x55, 0x19, 0xc7, 0x41, 0xe8, 0x77, 0x31, 0xa5, 0x19, 0x12, 0x31, 0xff, 0xd4, 0x00,
-	0x3d, 0xbf, 0xc0, 0xdd, 0x7c, 0xf0, 0x09, 0xba, 0xf5, 0x34, 0xba, 0x17, 0x6f, 0xa6, 0xbb, 0x90,
-	0x42, 0x77, 0x71, 0x82, 0xee, 0x0d, 0x28, 0xd0, 0x00, 0x77, 0x85, 0x66, 0xd2, 0xe8, 0x11, 0x08,
-	0xf3, 0x2e, 0x7c, 0x3c, 0x11, 0xb9, 0xcc, 0xbb, 0xf9, 0x1a, 0x96, 0x6d, 0x4c, 0xc9, 0xaf, 0xf8,
-	0x80, 0x5d, 0x66, 0x1d, 0x67, 0x15, 0x8a, 0xbf, 0x10, 0x97, 0xf5, 0x15, 0x17, 0xd2, 0xe0, 0xa1,
-	0xf5, 0x31, 0xe9, 0xf5, 0x25, 0x07, 0x75, 0x5b, 0x59, 0xe6, 0x03, 0xb8, 0xc3, 0x89, 0xc2, 0x59,
-	0x39, 0x7d, 0xab, 0x43, 0x5d, 0x01, 0x95, 0x16, 0xe6, 0xbd, 0xa0, 0x4a, 0x3b, 0x8b, 0xb1, 0x76,
-	0xb6, 0x78, 0xba, 0x84, 0x6c, 0x78, 0x1a, 0x97, 0x3a, 0xf7, 0x93, 0x17, 0xf3, 0x7c, 0x53, 0xdd,
-	0x4d, 0xa9, 0x23, 0x5b, 0x41, 0x63, 0x46, 0x8a, 0x37, 0x33, 0x52, 0x4a, 0x61, 0xa4, 0x3c, 0xc1,
-	0x48, 0x92, 0xf3, 0xca, 0x14, 0xe7, 0x53, 0x92, 0xae, 0x7e, 0x58, 0xd2, 0x70, 0x2b, 0x49, 0xbf,
-	0x80, 0xda, 0x77, 0x64, 0x30, 0xc8, 0x51, 0xec, 0x28, 0xe9, 0x8d, 0x85, 0x59, 0xb7, 0x95, 0xc5,
-	0x73, 0xe9, 0x0c, 0x06, 0x22, 0x97, 0x15, 0x9b, 0x7f, 0x9a, 0x4f, 0x61, 0x69, 0x77, 0xe0, 0x53,
-	0xbc, 0xf7, 0x22, 0x87, 0x3e, 0x64, 0x02, 0xa5, 0xd6, 0xa5, 0x61, 0x7e, 0x06, 0x1f, 0x7d, 0x4f,
-	0x28, 0x3b, 0x20, 0x6e, 0xe6, 0xf5, 0xb2, 0x61, 0x39, 0x86, 0x2a, 0x31, 0x3c, 0x85, 0x6a, 0x20,
-	0x35, 0x8b, 0xa9, 0xa1, 0x89, 0x32, 0xdb, 0xba, 0x91, 0x4d, 0xa5, 0xec, 0x3d, 0xef, 0xd4, 0xb7,
-	0x63, 0x17, 0xf3, 0x27, 0xb8, 0x1b, 0x57, 0xb4, 0x64, 0x1b, 0x40, 0x50, 0x08, 0x1c, 0xd6, 0x97,
-	0x61, 0xd8, 0xe2, 0x3b, 0x59, 0xf0, 0xf4, 0x3c, 0x05, 0xef, 0x21, 0x2c, 0x1f, 0xf6, 0xc9, 0x50,
-	0xec, 0x39, 0x0e, 0xf8, 0x1e, 0x54, 0x78, 0x8b, 0x3d, 0x8e, 0xcb, 0x59, 0x99, 0xdb, 0x07, 0xc4,
-	0x35, 0xbf, 0x85, 0x95, 0x97, 0x81, 0x3b, 0xd5, 0x8e, 0x3a, 0x50, 0x0d, 0x31, 0xf5, 0xa3, 0xb0,
-	0x2b, 0x0e, 0x98, 0xbe, 0x6b, 0x0c, 0x53, 0x77, 0x2b, 0x64, 0x59, 0x09, 0x7d, 0x22, 0xae, 0x16,
-	0xc7, 0x65, 0x5c, 0x2d, 0x75, 0x85, 0xf4, 0xb8, 0x46, 0x7f, 0x0a, 0xb5, 0x57, 0x0e, 0xc9, 0xdc,
-	0x21, 0x84, 0x3b, 0x12, 0xa6, 0x36, 0x98, 0x92, 0xb8, 0xf6, 0x61, 0x89, 0xeb, 0xb7, 0x91, 0x78,
-	0xe7, 0x6d, 0x0d, 0x0a, 0x3c, 0xed, 0xa8, 0x0f, 0x45, 0x51, 0x39, 0x90, 0x65, 0x65, 0x3d, 0x77,
-	0xac, 0x64, 0x2d, 0x6a, 0xb4, 0x73, 0xe3, 0xd5, 0xb1, 0x28, 0x94, 0x64, 0x67, 0x43, 0x5b, 0xd9,
-	0xae, 0x33, 0x4f, 0x8e, 0xc6, 0x97, 0xf3, 0x39, 0xa9, 0x4d, 0xe5, 0xf1, 0x42, 0x96, 0xf3, 0x78,
-	0xd7, 0x72, 0xc8, 0x79, 0xbc, 0x84, 0x2c, 0x6c, 0x28, 0xc9, 0x3e, 0x88, 0xd6, 0x66, 0xb8, 0x78,
-	0xce, 0xdf, 0x7e, 0x8d, 0x2f, 0xb2, 0x97, 0x9c, 0xea, 0xe8, 0x97, 0x50, 0x9f, 0xe8, 0xad, 0xe8,
-	0x51, 0xde, 0x25, 0x26, 0xbb, 0xeb, 0x2d, 0xb6, 0x7e, 0x03, 0x95, 0x71, 0x1d, 0x41, 0x9b, 0xd9,
-	0xde, 0x53, 0xe5, 0xa9, 0xd1, 0x99, 0xc7, 0x45, 0x6d, 0xf9, 0x18, 0x8a, 0x07, 0x4e, 0x44, 0xd3,
-	0x13, 0x98, 0x32, 0x8e, 0xbe, 0x82, 0x92, 0x8d, 0x69, 0x34, 0x9c, 0xdf, 0xf3, 0x67, 0x80, 0xc4,
-	0x5b, 0xed, 0x71, 0x0e, 0x89, 0xdd, 0x54, 0x07, 0x53, 0x97, 0xdf, 0x87, 0x02, 0x6f, 0x24, 0xe8,
-	0x61, 0xf6, 0xc2, 0x89, 0x86, 0x93, 0xba, 0xdc, 0x11, 0x14, 0xf8, 0xfb, 0x03, 0xe5, 0xb8, 0x0a,
-	0xb3, 0x2f, 0xac, 0xd4, 0x55, 0x5f, 0x41, 0xf5, 0xfa, 0xf9, 0x82, 0x72, 0xf0, 0x36, 0xfd, 0xd6,
-	0x49, 0x5d, 0xf8, 0x10, 0xca, 0xaa, 0xeb, 0xa1, 0x1c, 0xfa, 0x9b, 0x6c, 0x90, 0xa9, 0x8b, 0xfe,
-	0x00, 0x95, 0x71, 0xbb, 0x48, 0x65, 0x3b, 0xc7, 0x21, 0x66, 0x5a, 0xce, 0x4b, 0x28, 0xc9, 0xbe,
-	0x92, 0xa7, 0x3a, 0xcd, 0x74, 0xa0, 0xd4, 0x70, 0x31, 0x14, 0x78, 0x6d, 0xcf, 0xa3, 0x80, 0x44,
-	0xab, 0x68, 0x58, 0x79, 0xe1, 0x32, 0xfa, 0x9d, 0xfd, 0xab, 0xf7, 0xcd, 0x85, 0xbf, 0xdf, 0x37,
-	0x17, 0x7e, 0x1b, 0x35, 0xb5, 0xab, 0x51, 0x53, 0xfb, 0x6b, 0xd4, 0xd4, 0xfe, 0x1d, 0x35, 0xb5,
-	0x1f, 0xb7, 0xe6, 0xfb, 0xff, 0xf7, 0x1b, 0xfe, 0xfb, 0x5a, 0x3f, 0x29, 0x89, 0x73, 0x6c, 0xfd,
-	0x1f, 0x00, 0x00, 0xff, 0xff, 0x4d, 0xd0, 0xe6, 0x46, 0x3f, 0x0f, 0x00, 0x00,
+	// 1135 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0x4d, 0x6f, 0xdb, 0x46,
+	0x13, 0x36, 0x69, 0x7d, 0x8e, 0x22, 0xbf, 0xf6, 0xbe, 0x8e, 0xcb, 0x28, 0x80, 0x2c, 0x10, 0x68,
+	0xe0, 0xa2, 0x08, 0x55, 0xcb, 0x6d, 0xd2, 0x36, 0x40, 0x00, 0xdb, 0x09, 0x0a, 0xa3, 0x0d, 0x6c,
+	0xd0, 0x4e, 0x13, 0xb4, 0x28, 0x0c, 0x5a, 0x5c, 0x4b, 0x0b, 0x4b, 0x24, 0xc3, 0x5d, 0xba, 0x76,
+	0x4f, 0x3d, 0xf5, 0xdc, 0x9f, 0xd3, 0x9f, 0xe0, 0x43, 0x0e, 0x3d, 0xf6, 0x94, 0x36, 0xba, 0xf7,
+	0x3f, 0x14, 0xfb, 0x21, 0x93, 0x92, 0xcc, 0x90, 0xf2, 0xc5, 0xe2, 0xec, 0x3e, 0xb3, 0x3b, 0x3b,
+	0xcf, 0xb3, 0x33, 0x6b, 0x78, 0xd2, 0x23, 0xac, 0x1f, 0x9d, 0x58, 0x5d, 0x7f, 0xd8, 0xee, 0xfa,
+	0x1e, 0x73, 0x88, 0x87, 0x43, 0x37, 0xf9, 0x19, 0x46, 0x1e, 0x23, 0x43, 0xdc, 0xa6, 0x7d, 0x32,
+	0x6c, 0x9f, 0x6f, 0x8a, 0x5f, 0x2b, 0x08, 0x7d, 0xe6, 0xa3, 0x56, 0x0c, 0xb3, 0x14, 0xcc, 0x1a,
+	0x10, 0x2f, 0xba, 0xb0, 0x04, 0xe8, 0x7c, 0xb3, 0x71, 0xaf, 0xe7, 0xfb, 0xbd, 0x01, 0x6e, 0x0b,
+	0xfc, 0x49, 0x74, 0xda, 0x76, 0xbc, 0x4b, 0xe9, 0xdc, 0xb8, 0x3f, 0x3d, 0x85, 0x87, 0x01, 0x1b,
+	0x4f, 0xae, 0xf6, 0xfc, 0x9e, 0x2f, 0x3e, 0xdb, 0xfc, 0x4b, 0x8d, 0xae, 0x4f, 0xbb, 0xf0, 0x1d,
+	0x29, 0x73, 0x86, 0x81, 0x02, 0x3c, 0xca, 0x3c, 0x8d, 0x13, 0x90, 0x36, 0xbb, 0x0c, 0x30, 0x6d,
+	0x0f, 0xfd, 0xc8, 0x63, 0xca, 0xef, 0xeb, 0x39, 0xfc, 0x98, 0x43, 0xcf, 0xc4, 0x1f, 0xe9, 0x6b,
+	0xfe, 0xab, 0xc3, 0xca, 0x6e, 0x88, 0x1d, 0x86, 0x8f, 0x1c, 0x7a, 0x66, 0xe3, 0x37, 0x11, 0xa6,
+	0x0c, 0xad, 0x81, 0x4e, 0x5c, 0x43, 0x6b, 0x69, 0x1b, 0xd5, 0x9d, 0xd2, 0xe8, 0xdd, 0xba, 0xbe,
+	0xf7, 0xcc, 0xd6, 0x89, 0x8b, 0xd6, 0xa0, 0x74, 0x12, 0x79, 0xee, 0x00, 0x1b, 0x3a, 0x9f, 0xb3,
+	0x95, 0x85, 0x0c, 0x28, 0xab, 0x0c, 0x1a, 0x8b, 0x62, 0x62, 0x6c, 0xa2, 0x36, 0x94, 0x42, 0xdf,
+	0x67, 0xa7, 0xd4, 0x28, 0xb4, 0x16, 0x37, 0x6a, 0x9d, 0x8f, 0xac, 0x44, 0xd6, 0x45, 0x48, 0xd6,
+	0x0b, 0x7e, 0x14, 0x5b, 0xc1, 0x50, 0x03, 0x2a, 0x0c, 0x87, 0x43, 0xe2, 0x39, 0x03, 0xa3, 0xd8,
+	0xd2, 0x36, 0x2a, 0xf6, 0xb5, 0x8d, 0x56, 0xa1, 0x48, 0x99, 0x4b, 0x3c, 0xa3, 0x24, 0x36, 0x91,
+	0x06, 0x0f, 0x8a, 0x32, 0xd7, 0x8f, 0x98, 0x51, 0x96, 0x41, 0x49, 0x4b, 0x8d, 0xe3, 0x30, 0x34,
+	0x2a, 0xd7, 0xe3, 0x38, 0x0c, 0x51, 0x13, 0xa0, 0xdb, 0xc7, 0xdd, 0xb3, 0xc0, 0x27, 0x1e, 0x33,
+	0xaa, 0x62, 0x2e, 0x31, 0x82, 0x3e, 0x85, 0x95, 0xc0, 0x09, 0xb1, 0xc7, 0x8e, 0x13, 0x30, 0x10,
+	0xb0, 0x65, 0x39, 0xb1, 0x1b, 0x83, 0x2d, 0x28, 0xfb, 0x01, 0x23, 0xbe, 0x47, 0x8d, 0x5a, 0x4b,
+	0xdb, 0xa8, 0x75, 0x56, 0x2d, 0x49, 0xb3, 0x35, 0xa6, 0xd9, 0xda, 0xf6, 0x2e, 0xed, 0x31, 0xc8,
+	0x7c, 0x00, 0x28, 0x99, 0x6e, 0x1a, 0xf8, 0x1e, 0xc5, 0x68, 0x19, 0x16, 0x03, 0x95, 0xf0, 0xba,
+	0xcd, 0x3f, 0xcd, 0xdf, 0x34, 0x58, 0x7a, 0x86, 0x07, 0x98, 0xe1, 0x74, 0x10, 0x5a, 0x87, 0x1a,
+	0xbe, 0x20, 0xec, 0x98, 0x32, 0x87, 0x45, 0x54, 0x70, 0x52, 0xb7, 0x81, 0x0f, 0x1d, 0x8a, 0x11,
+	0xb4, 0x0d, 0x55, 0x6e, 0x61, 0xf7, 0xd8, 0x61, 0x82, 0x99, 0x5a, 0xa7, 0x31, 0x13, 0xdf, 0xd1,
+	0x58, 0x86, 0x3b, 0x95, 0xab, 0x77, 0xeb, 0x0b, 0xbf, 0xff, 0xbd, 0xae, 0xd9, 0x15, 0xe9, 0xb6,
+	0xcd, 0x4c, 0x0b, 0x56, 0x65, 0x1c, 0x07, 0xa1, 0xdf, 0xc5, 0x94, 0x66, 0x48, 0xc4, 0xfc, 0x43,
+	0x03, 0xf4, 0xfc, 0x02, 0x77, 0xf3, 0xc1, 0x27, 0xe8, 0xd6, 0xd3, 0xe8, 0x5e, 0xbc, 0x99, 0xee,
+	0x42, 0x0a, 0xdd, 0xc5, 0x09, 0xba, 0x37, 0xa0, 0x40, 0x03, 0xdc, 0x15, 0x9a, 0x49, 0xa3, 0x47,
+	0x20, 0xcc, 0xbb, 0xf0, 0xff, 0x89, 0xc8, 0x65, 0xde, 0xcd, 0xd7, 0xb0, 0x6c, 0x63, 0x4a, 0x7e,
+	0xc1, 0x07, 0xec, 0x32, 0xeb, 0x38, 0xab, 0x50, 0xfc, 0x99, 0xb8, 0xac, 0xaf, 0xb8, 0x90, 0x06,
+	0x0f, 0xad, 0x8f, 0x49, 0xaf, 0x2f, 0x39, 0xa8, 0xdb, 0xca, 0x32, 0x1f, 0xc0, 0x1d, 0x4e, 0x14,
+	0xce, 0xca, 0xe9, 0x5b, 0x1d, 0xea, 0x0a, 0xa8, 0xb4, 0x30, 0xef, 0x05, 0x55, 0xda, 0x59, 0x8c,
+	0xb5, 0xb3, 0xc5, 0xd3, 0x25, 0x64, 0xc3, 0xd3, 0xb8, 0xd4, 0xb9, 0x9f, 0xbc, 0x98, 0xe7, 0x9b,
+	0xea, 0x6e, 0x4a, 0x1d, 0xd9, 0x0a, 0x1a, 0x33, 0x52, 0xbc, 0x99, 0x91, 0x52, 0x0a, 0x23, 0xe5,
+	0x09, 0x46, 0x92, 0x9c, 0x57, 0xa6, 0x38, 0x9f, 0x92, 0x74, 0xf5, 0xc3, 0x92, 0x86, 0x5b, 0x49,
+	0x7a, 0x1f, 0x6a, 0xdf, 0x92, 0xc1, 0x20, 0x47, 0xb1, 0xa3, 0xa4, 0x37, 0x16, 0x66, 0xdd, 0x56,
+	0x16, 0xcf, 0xa5, 0x33, 0x18, 0x88, 0x5c, 0x56, 0x6c, 0xfe, 0x69, 0x3e, 0x85, 0xa5, 0xdd, 0x81,
+	0x4f, 0xf1, 0xde, 0x7e, 0x0e, 0x7d, 0xc8, 0x04, 0x4a, 0xad, 0x4b, 0xc3, 0xfc, 0x04, 0xfe, 0xf7,
+	0x1d, 0xa1, 0xec, 0x80, 0xb8, 0x99, 0xd7, 0xcb, 0x86, 0xe5, 0x18, 0xaa, 0xc4, 0xf0, 0x14, 0xaa,
+	0x81, 0xd4, 0x2c, 0xa6, 0x86, 0x26, 0xca, 0x6c, 0xeb, 0x46, 0x36, 0x95, 0xb2, 0xf7, 0xbc, 0x53,
+	0xdf, 0x8e, 0x5d, 0xcc, 0x1f, 0xe1, 0x6e, 0x5c, 0xd1, 0x92, 0x6d, 0x00, 0x41, 0x21, 0x70, 0x58,
+	0x5f, 0x86, 0x61, 0x8b, 0xef, 0x64, 0xc1, 0xd3, 0xf3, 0x14, 0xbc, 0x87, 0xb0, 0x7c, 0xd8, 0x27,
+	0x43, 0xb1, 0xe7, 0x38, 0xe0, 0x7b, 0x50, 0xe1, 0x2d, 0xf6, 0x38, 0x2e, 0x67, 0x65, 0x6e, 0x1f,
+	0x10, 0xd7, 0xfc, 0x06, 0x56, 0x5e, 0x06, 0xee, 0x54, 0x3b, 0xea, 0x40, 0x35, 0xc4, 0xd4, 0x8f,
+	0xc2, 0xae, 0x38, 0x60, 0xfa, 0xae, 0x31, 0x4c, 0xdd, 0xad, 0x90, 0x65, 0x25, 0xf4, 0x2b, 0x71,
+	0xb5, 0x38, 0x2e, 0xe3, 0x6a, 0xa9, 0x2b, 0xa4, 0xc7, 0x35, 0xfa, 0x63, 0xa8, 0xbd, 0x72, 0x48,
+	0xe6, 0x0e, 0x21, 0xdc, 0x91, 0x30, 0xb5, 0xc1, 0x94, 0xc4, 0xb5, 0x0f, 0x4b, 0x5c, 0xbf, 0x8d,
+	0xc4, 0x3b, 0x6f, 0x6b, 0x50, 0xe0, 0x69, 0x47, 0x7d, 0x28, 0x8a, 0xca, 0x81, 0x2c, 0x2b, 0xeb,
+	0xb9, 0x63, 0x25, 0x6b, 0x51, 0xa3, 0x9d, 0x1b, 0xaf, 0x8e, 0x45, 0xa1, 0x24, 0x3b, 0x1b, 0xda,
+	0xca, 0x76, 0x9d, 0x79, 0x72, 0x34, 0x3e, 0x9f, 0xcf, 0x49, 0x6d, 0x2a, 0x8f, 0x17, 0xb2, 0x9c,
+	0xc7, 0xbb, 0x96, 0x43, 0xce, 0xe3, 0x25, 0x64, 0x61, 0x43, 0x49, 0xf6, 0x41, 0xb4, 0x36, 0xc3,
+	0xc5, 0x73, 0xfe, 0xf6, 0x6b, 0x7c, 0x96, 0xbd, 0xe4, 0x54, 0x47, 0xbf, 0x84, 0xfa, 0x44, 0x6f,
+	0x45, 0x8f, 0xf2, 0x2e, 0x31, 0xd9, 0x5d, 0x6f, 0xb1, 0xf5, 0x1b, 0xa8, 0x8c, 0xeb, 0x08, 0xda,
+	0xcc, 0xf6, 0x9e, 0x2a, 0x4f, 0x8d, 0xce, 0x3c, 0x2e, 0x6a, 0xcb, 0xc7, 0x50, 0x3c, 0x70, 0x22,
+	0x9a, 0x9e, 0xc0, 0x94, 0x71, 0xf4, 0x25, 0x94, 0x6c, 0x4c, 0xa3, 0xe1, 0xfc, 0x9e, 0x3f, 0x01,
+	0x24, 0xde, 0x6a, 0x8f, 0x73, 0x48, 0xec, 0xa6, 0x3a, 0x98, 0xba, 0xfc, 0x0b, 0x28, 0xf0, 0x46,
+	0x82, 0x1e, 0x66, 0x2f, 0x9c, 0x68, 0x38, 0xa9, 0xcb, 0x1d, 0x41, 0x81, 0xbf, 0x3f, 0x50, 0x8e,
+	0xab, 0x30, 0xfb, 0xc2, 0x4a, 0x5d, 0xf5, 0x15, 0x54, 0xaf, 0x9f, 0x2f, 0x28, 0x07, 0x6f, 0xd3,
+	0x6f, 0x9d, 0xd4, 0x85, 0x0f, 0xa1, 0xac, 0xba, 0x1e, 0xca, 0xa1, 0xbf, 0xc9, 0x06, 0x99, 0xba,
+	0xe8, 0xf7, 0x50, 0x19, 0xb7, 0x8b, 0x54, 0xb6, 0x73, 0x1c, 0x62, 0xa6, 0xe5, 0xbc, 0x84, 0x92,
+	0xec, 0x2b, 0x79, 0xaa, 0xd3, 0x4c, 0x07, 0x4a, 0x0d, 0x17, 0x43, 0x81, 0xd7, 0xf6, 0x3c, 0x0a,
+	0x48, 0xb4, 0x8a, 0x86, 0x95, 0x17, 0x2e, 0xa3, 0xdf, 0xd9, 0xbf, 0x7a, 0xdf, 0x5c, 0xf8, 0xeb,
+	0x7d, 0x73, 0xe1, 0xd7, 0x51, 0x53, 0xbb, 0x1a, 0x35, 0xb5, 0x3f, 0x47, 0x4d, 0xed, 0x9f, 0x51,
+	0x53, 0xfb, 0xe1, 0x8b, 0x79, 0xff, 0x03, 0x7e, 0xc2, 0x7f, 0x5f, 0xeb, 0x27, 0x25, 0x71, 0x92,
+	0xad, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x88, 0x3a, 0x56, 0x43, 0x0f, 0x00, 0x00,
 }
 }

+ 1 - 1
vendor/github.com/containerd/containerd/linux/shim/v1/shim.proto → vendor/github.com/containerd/containerd/runtime/shim/v1/shim.proto

@@ -9,7 +9,7 @@ import "google/protobuf/timestamp.proto";
 import "github.com/containerd/containerd/api/types/mount.proto";
 import "github.com/containerd/containerd/api/types/mount.proto";
 import "github.com/containerd/containerd/api/types/task/task.proto";
 import "github.com/containerd/containerd/api/types/task/task.proto";
 
 
-option go_package = "github.com/containerd/containerd/linux/shim/v1;shim";
+option go_package = "github.com/containerd/containerd/runtime/shim/v1;shim";
 
 
 // Shim service is launched for each container and is responsible for owning the IO
 // Shim service is launched for each container and is responsible for owning the IO
 // for the container and its additional processes.  The shim is also the parent of
 // for the container and its additional processes.  The shim is also the parent of

+ 10 - 4
vendor/github.com/containerd/containerd/services/server/server.go

@@ -66,12 +66,18 @@ func New(ctx context.Context, config *Config) (*Server, error) {
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
 	}
 	}
-	rpc := grpc.NewServer(
-		grpc.MaxRecvMsgSize(config.GRPC.MaxRecvMsgSize),
-		grpc.MaxSendMsgSize(config.GRPC.MaxSendMsgSize),
+
+	serverOpts := []grpc.ServerOption{
 		grpc.UnaryInterceptor(grpc_prometheus.UnaryServerInterceptor),
 		grpc.UnaryInterceptor(grpc_prometheus.UnaryServerInterceptor),
 		grpc.StreamInterceptor(grpc_prometheus.StreamServerInterceptor),
 		grpc.StreamInterceptor(grpc_prometheus.StreamServerInterceptor),
-	)
+	}
+	if config.GRPC.MaxRecvMsgSize > 0 {
+		serverOpts = append(serverOpts, grpc.MaxRecvMsgSize(config.GRPC.MaxRecvMsgSize))
+	}
+	if config.GRPC.MaxSendMsgSize > 0 {
+		serverOpts = append(serverOpts, grpc.MaxSendMsgSize(config.GRPC.MaxSendMsgSize))
+	}
+	rpc := grpc.NewServer(serverOpts...)
 	var (
 	var (
 		services []plugin.Service
 		services []plugin.Service
 		s        = &Server{
 		s        = &Server{

+ 1 - 1
vendor/github.com/containerd/containerd/task.go

@@ -597,7 +597,7 @@ func (t *task) writeIndex(ctx context.Context, index *v1.Index) (d v1.Descriptor
 }
 }
 
 
 func writeContent(ctx context.Context, store content.Ingester, mediaType, ref string, r io.Reader, opts ...content.Opt) (d v1.Descriptor, err error) {
 func writeContent(ctx context.Context, store content.Ingester, mediaType, ref string, r io.Reader, opts ...content.Opt) (d v1.Descriptor, err error) {
-	writer, err := store.Writer(ctx, ref, 0, "")
+	writer, err := store.Writer(ctx, content.WithRef(ref))
 	if err != nil {
 	if err != nil {
 		return d, err
 		return d, err
 	}
 	}

+ 1 - 1
vendor/github.com/containerd/containerd/task_opts.go

@@ -21,8 +21,8 @@ import (
 	"syscall"
 	"syscall"
 
 
 	"github.com/containerd/containerd/errdefs"
 	"github.com/containerd/containerd/errdefs"
-	"github.com/containerd/containerd/linux/runctypes"
 	"github.com/containerd/containerd/mount"
 	"github.com/containerd/containerd/mount"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
 )
 )
 
 
 // NewTaskOpts allows the caller to set options on a new task
 // NewTaskOpts allows the caller to set options on a new task

+ 1 - 1
vendor/github.com/containerd/containerd/task_opts_linux.go

@@ -20,7 +20,7 @@ import (
 	"context"
 	"context"
 	"errors"
 	"errors"
 
 
-	"github.com/containerd/containerd/linux/runctypes"
+	"github.com/containerd/containerd/runtime/linux/runctypes"
 	"github.com/opencontainers/runtime-spec/specs-go"
 	"github.com/opencontainers/runtime-spec/specs-go"
 )
 )
 
 

+ 4 - 5
vendor/github.com/containerd/containerd/vendor.conf

@@ -1,5 +1,5 @@
 github.com/containerd/go-runc f271fa2021de855d4d918dbef83c5fe19db1bdd5
 github.com/containerd/go-runc f271fa2021de855d4d918dbef83c5fe19db1bdd5
-github.com/containerd/console cb7008ab3d8359b78c5f464cb7cf160107ad5925
+github.com/containerd/console 9290d21dc56074581f619579c43d970b4514bc08
 github.com/containerd/cgroups fe281dd265766145e943a034aa41086474ea6130
 github.com/containerd/cgroups fe281dd265766145e943a034aa41086474ea6130
 github.com/containerd/typeurl f6943554a7e7e88b3c14aad190bf05932da84788
 github.com/containerd/typeurl f6943554a7e7e88b3c14aad190bf05932da84788
 github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
 github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
@@ -33,8 +33,8 @@ github.com/opencontainers/image-spec v1.0.1
 golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c
 golang.org/x/sync 450f422ab23cf9881c94e2db30cac0eb1b7cf80c
 github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895
 github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895
 github.com/grpc-ecosystem/go-grpc-prometheus 6b7015e65d366bf3f19b2b2a000a831940f0f7e0
 github.com/grpc-ecosystem/go-grpc-prometheus 6b7015e65d366bf3f19b2b2a000a831940f0f7e0
-github.com/Microsoft/go-winio v0.4.5
-github.com/Microsoft/hcsshim v0.6.10
+github.com/Microsoft/go-winio v0.4.7
+github.com/Microsoft/hcsshim v0.6.11
 github.com/boltdb/bolt e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd
 github.com/boltdb/bolt e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd
 google.golang.org/genproto d80a6e20e776b0b17a324d0ba1ab50a39c8e8944
 google.golang.org/genproto d80a6e20e776b0b17a324d0ba1ab50a39c8e8944
 golang.org/x/text 19e51611da83d6be54ddafce4a4af510cb3e9ea4
 golang.org/x/text 19e51611da83d6be54ddafce4a4af510cb3e9ea4
@@ -43,8 +43,7 @@ github.com/syndtr/gocapability db04d3cc01c8b54962a58ec7e491717d06cfcc16
 github.com/gotestyourself/gotestyourself 44dbf532bbf5767611f6f2a61bded572e337010a
 github.com/gotestyourself/gotestyourself 44dbf532bbf5767611f6f2a61bded572e337010a
 github.com/google/go-cmp v0.1.0
 github.com/google/go-cmp v0.1.0
 
 
-# cri dependencies
-github.com/containerd/cri v1.0.0
+github.com/containerd/cri 8bcb9a95394e8d7845da1d6a994d3ac2a86d22f0
 github.com/containerd/go-cni f2d7272f12d045b16ed924f50e91f9f9cecc55a7
 github.com/containerd/go-cni f2d7272f12d045b16ed924f50e91f9f9cecc55a7
 github.com/blang/semver v3.1.0
 github.com/blang/semver v3.1.0
 github.com/containernetworking/cni v0.6.0
 github.com/containernetworking/cni v0.6.0