Add checkpoint and restore

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Update go-runc to 49b2a02ec1ed3e4ae52d30b54a291b75

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add shim to restore creation

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Keep checkpoint path in service

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Add C/R to non-shim build

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Checkpoint rw and image

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Pause container on bind checkpoints

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Return dump.log in error on checkpoint failure

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Pause container for checkpoint

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Update runc to 639454475cb9c8b861cc599f8bcd5c8c790ae402

For checkpoint into to work you need runc version
639454475cb9c8b861cc599f8bcd5c8c790ae402 + and criu 3.0 as this is what
I have been testing with.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Move restore behind create calls

This remove the restore RPCs in favor of providing the checkpoint
information to the `Create` calls of a container.  If provided, the
container will be created/restored from the checkpoint instead of an
existing container.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>

Regen protos after rebase

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby
2017-05-12 10:18:00 -07:00
parent 5ee77fc281
commit 7cc1b64bd8
31 changed files with 2153 additions and 406 deletions

View File

@@ -19,8 +19,8 @@ package container
import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import google_protobuf "github.com/gogo/protobuf/types"
import _ "github.com/gogo/protobuf/gogoproto"
import google_protobuf1 "github.com/gogo/protobuf/types"
import _ "github.com/gogo/protobuf/types"
import time "time"
@@ -108,9 +108,10 @@ func (x Event_EventType) String() string {
func (Event_EventType) EnumDescriptor() ([]byte, []int) { return fileDescriptorContainer, []int{3, 0} }
type Container struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
Pid uint32 `protobuf:"varint,2,opt,name=pid,proto3" json:"pid,omitempty"`
Status Status `protobuf:"varint,3,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
Spec *google_protobuf1.Any `protobuf:"bytes,4,opt,name=spec" json:"spec,omitempty"`
}
func (m *Container) Reset() { *m = Container{} }
@@ -118,15 +119,15 @@ func (*Container) ProtoMessage() {}
func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorContainer, []int{0} }
type Process struct {
Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
Env []string `protobuf:"bytes,3,rep,name=env" json:"env,omitempty"`
User *User `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"`
Cwd string `protobuf:"bytes,5,opt,name=cwd,proto3" json:"cwd,omitempty"`
Terminal bool `protobuf:"varint,6,opt,name=terminal,proto3" json:"terminal,omitempty"`
ExitStatus uint32 `protobuf:"varint,7,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
Status Status `protobuf:"varint,8,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
RuntimeData *google_protobuf.Any `protobuf:"bytes,9,opt,name=runtime_data,json=runtimeData" json:"runtime_data,omitempty"`
Pid uint32 `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args" json:"args,omitempty"`
Env []string `protobuf:"bytes,3,rep,name=env" json:"env,omitempty"`
User *User `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"`
Cwd string `protobuf:"bytes,5,opt,name=cwd,proto3" json:"cwd,omitempty"`
Terminal bool `protobuf:"varint,6,opt,name=terminal,proto3" json:"terminal,omitempty"`
ExitStatus uint32 `protobuf:"varint,7,opt,name=exit_status,json=exitStatus,proto3" json:"exit_status,omitempty"`
Status Status `protobuf:"varint,8,opt,name=status,proto3,enum=containerd.v1.types.Status" json:"status,omitempty"`
RuntimeData *google_protobuf1.Any `protobuf:"bytes,9,opt,name=runtime_data,json=runtimeData" json:"runtime_data,omitempty"`
}
func (m *Process) Reset() { *m = Process{} }
@@ -194,6 +195,16 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) {
i++
i = encodeVarintContainer(dAtA, i, uint64(m.Status))
}
if m.Spec != nil {
dAtA[i] = 0x22
i++
i = encodeVarintContainer(dAtA, i, uint64(m.Spec.Size()))
n1, err := m.Spec.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n1
}
return i, nil
}
@@ -251,11 +262,11 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x22
i++
i = encodeVarintContainer(dAtA, i, uint64(m.User.Size()))
n1, err := m.User.MarshalTo(dAtA[i:])
n2, err := m.User.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n1
i += n2
}
if len(m.Cwd) > 0 {
dAtA[i] = 0x2a
@@ -287,11 +298,11 @@ func (m *Process) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x4a
i++
i = encodeVarintContainer(dAtA, i, uint64(m.RuntimeData.Size()))
n2, err := m.RuntimeData.MarshalTo(dAtA[i:])
n3, err := m.RuntimeData.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n2
i += n3
}
return i, nil
}
@@ -322,21 +333,21 @@ func (m *User) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintContainer(dAtA, i, uint64(m.Gid))
}
if len(m.AdditionalGids) > 0 {
dAtA4 := make([]byte, len(m.AdditionalGids)*10)
var j3 int
dAtA5 := make([]byte, len(m.AdditionalGids)*10)
var j4 int
for _, num := range m.AdditionalGids {
for num >= 1<<7 {
dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80)
dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j3++
j4++
}
dAtA4[j3] = uint8(num)
j3++
dAtA5[j4] = uint8(num)
j4++
}
dAtA[i] = 0x1a
i++
i = encodeVarintContainer(dAtA, i, uint64(j3))
i += copy(dAtA[i:], dAtA4[:j3])
i = encodeVarintContainer(dAtA, i, uint64(j4))
i += copy(dAtA[i:], dAtA5[:j4])
}
return i, nil
}
@@ -380,11 +391,11 @@ func (m *Event) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x2a
i++
i = encodeVarintContainer(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.ExitedAt)))
n5, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExitedAt, dAtA[i:])
n6, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExitedAt, dAtA[i:])
if err != nil {
return 0, err
}
i += n5
i += n6
return i, nil
}
@@ -428,6 +439,10 @@ func (m *Container) Size() (n int) {
if m.Status != 0 {
n += 1 + sovContainer(uint64(m.Status))
}
if m.Spec != nil {
l = m.Spec.Size()
n += 1 + l + sovContainer(uint64(l))
}
return n
}
@@ -534,6 +549,7 @@ func (this *Container) String() string {
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`Pid:` + fmt.Sprintf("%v", this.Pid) + `,`,
`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
`Spec:` + strings.Replace(fmt.Sprintf("%v", this.Spec), "Any", "google_protobuf1.Any", 1) + `,`,
`}`,
}, "")
return s
@@ -551,7 +567,7 @@ func (this *Process) String() string {
`Terminal:` + fmt.Sprintf("%v", this.Terminal) + `,`,
`ExitStatus:` + fmt.Sprintf("%v", this.ExitStatus) + `,`,
`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
`RuntimeData:` + strings.Replace(fmt.Sprintf("%v", this.RuntimeData), "Any", "google_protobuf.Any", 1) + `,`,
`RuntimeData:` + strings.Replace(fmt.Sprintf("%v", this.RuntimeData), "Any", "google_protobuf1.Any", 1) + `,`,
`}`,
}, "")
return s
@@ -686,6 +702,39 @@ func (m *Container) Unmarshal(dAtA []byte) error {
break
}
}
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowContainer
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthContainer
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Spec == nil {
m.Spec = &google_protobuf1.Any{}
}
if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipContainer(dAtA[iNdEx:])
@@ -960,7 +1009,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
return io.ErrUnexpectedEOF
}
if m.RuntimeData == nil {
m.RuntimeData = &google_protobuf.Any{}
m.RuntimeData = &google_protobuf1.Any{}
}
if err := m.RuntimeData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
@@ -1413,48 +1462,49 @@ func init() {
}
var fileDescriptorContainer = []byte{
// 680 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4d, 0x6f, 0xd3, 0x4a,
0x14, 0x8d, 0x3f, 0xf2, 0x35, 0x69, 0xf3, 0xfc, 0xe6, 0x55, 0x4f, 0x6e, 0x40, 0x8e, 0x15, 0x21,
0x11, 0x21, 0xe1, 0x88, 0x74, 0x01, 0xdb, 0x34, 0xb6, 0xaa, 0x0a, 0x91, 0x04, 0x27, 0x11, 0xdd,
0x45, 0xd3, 0x78, 0x30, 0x03, 0xcd, 0xd8, 0xb2, 0xc7, 0x2d, 0xd9, 0xb1, 0x44, 0x5d, 0xf1, 0x07,
0xba, 0x01, 0xb6, 0x6c, 0x59, 0xf0, 0x0b, 0xba, 0x64, 0xc9, 0xaa, 0xd0, 0xfc, 0x12, 0x34, 0xe3,
0xa4, 0x8e, 0xda, 0x22, 0xb1, 0xb1, 0xce, 0xdc, 0x73, 0xe6, 0xce, 0x3d, 0xf7, 0x18, 0xd8, 0x3e,
0x61, 0xaf, 0x92, 0x43, 0x6b, 0x1a, 0xcc, 0x5a, 0xd3, 0x80, 0x32, 0x44, 0x28, 0x8e, 0xbc, 0x75,
0x88, 0x42, 0xd2, 0x62, 0xf3, 0x10, 0xc7, 0x59, 0x31, 0x43, 0x56, 0x18, 0x05, 0x2c, 0x80, 0xff,
0x65, 0x7a, 0xeb, 0xf8, 0x91, 0x25, 0xe4, 0xb5, 0x6d, 0x3f, 0x08, 0xfc, 0x23, 0xdc, 0x12, 0x92,
0xc3, 0xe4, 0x65, 0x0b, 0xd1, 0x79, 0xaa, 0xaf, 0x6d, 0xf9, 0x81, 0x1f, 0x08, 0xd8, 0xe2, 0x68,
0x59, 0xad, 0x5f, 0xbf, 0xc0, 0xc8, 0x0c, 0xc7, 0x0c, 0xcd, 0xc2, 0x54, 0xd0, 0x78, 0x0d, 0xca,
0xdd, 0xd5, 0x43, 0xf0, 0x7f, 0x20, 0x13, 0x4f, 0x97, 0x4c, 0xa9, 0x59, 0xde, 0x2d, 0x2c, 0x2e,
0xea, 0xf2, 0xbe, 0xed, 0xca, 0xc4, 0x83, 0x1a, 0x50, 0x42, 0xe2, 0xe9, 0xb2, 0x29, 0x35, 0x37,
0x5d, 0x0e, 0xe1, 0x0e, 0x28, 0xc4, 0x0c, 0xb1, 0x24, 0xd6, 0x15, 0x53, 0x6a, 0x56, 0xdb, 0x77,
0xac, 0x5b, 0xc6, 0xb5, 0x86, 0x42, 0xe2, 0x2e, 0xa5, 0x8d, 0x2f, 0x32, 0x28, 0x0e, 0xa2, 0x60,
0x8a, 0xe3, 0x78, 0xd5, 0x52, 0xca, 0x5a, 0x42, 0xa0, 0xa2, 0xc8, 0x8f, 0x75, 0xd9, 0x54, 0x9a,
0x65, 0x57, 0x60, 0xae, 0xc2, 0xf4, 0x58, 0x57, 0x44, 0x89, 0x43, 0xf8, 0x10, 0xa8, 0x49, 0x8c,
0x23, 0x5d, 0x35, 0xa5, 0x66, 0xa5, 0xbd, 0x7d, 0xeb, 0xb3, 0xe3, 0x18, 0x47, 0xae, 0x90, 0xf1,
0x06, 0xd3, 0x13, 0x4f, 0xcf, 0x73, 0x4b, 0x2e, 0x87, 0xb0, 0x06, 0x4a, 0x0c, 0x47, 0x33, 0x42,
0xd1, 0x91, 0x5e, 0x30, 0xa5, 0x66, 0xc9, 0xbd, 0x3a, 0xc3, 0x3a, 0xa8, 0xe0, 0xb7, 0x84, 0x4d,
0x96, 0xd6, 0x8a, 0x62, 0x38, 0xc0, 0x4b, 0xa9, 0x93, 0x35, 0xdb, 0xa5, 0xbf, 0xb6, 0x0d, 0x1f,
0x83, 0x8d, 0x28, 0xa1, 0x7c, 0xf1, 0x13, 0x0f, 0x31, 0xa4, 0x97, 0xc5, 0xe8, 0x5b, 0x56, 0x1a,
0x8d, 0xb5, 0x8a, 0xc6, 0xea, 0xd0, 0xb9, 0x5b, 0x59, 0x2a, 0x6d, 0xc4, 0x50, 0x63, 0x08, 0xd4,
0xf1, 0xd2, 0x44, 0x92, 0xed, 0x2a, 0x49, 0x03, 0xf1, 0xb3, 0x40, 0x7c, 0xe2, 0xc1, 0xfb, 0xe0,
0x1f, 0xe4, 0x79, 0x84, 0x91, 0x80, 0xa2, 0xa3, 0x89, 0x4f, 0xbc, 0x58, 0x6c, 0x6d, 0xd3, 0xad,
0x66, 0xe5, 0x3d, 0xe2, 0xc5, 0x8d, 0x8f, 0x32, 0xc8, 0x3b, 0xc7, 0x98, 0xb2, 0x3f, 0xa6, 0xfd,
0x04, 0xa8, 0xdc, 0x87, 0xe8, 0x5e, 0x6d, 0xdf, 0xbb, 0xd5, 0xa2, 0xe8, 0x90, 0x7e, 0x47, 0xf3,
0x10, 0xbb, 0xe2, 0xc6, 0x2a, 0x54, 0x25, 0x0b, 0xf5, 0xda, 0x46, 0xd5, 0x1b, 0x1b, 0xed, 0x80,
0x32, 0x3f, 0x61, 0x6f, 0x82, 0x98, 0x88, 0xa9, 0xd2, 0xae, 0xdd, 0xd8, 0xcc, 0x68, 0xf5, 0xd3,
0xee, 0x96, 0xce, 0x2f, 0xea, 0xb9, 0x0f, 0x3f, 0xeb, 0x92, 0x5b, 0x4a, 0xaf, 0x75, 0x58, 0xe3,
0x39, 0x28, 0x5f, 0x0d, 0x02, 0x4b, 0x40, 0x75, 0x0e, 0xf6, 0x47, 0x5a, 0x0e, 0x16, 0x81, 0xd2,
0xef, 0x3f, 0xd3, 0x24, 0x08, 0x40, 0xa1, 0xeb, 0x3a, 0x9d, 0x91, 0xa3, 0xc9, 0xb0, 0x0c, 0xf2,
0xc3, 0x51, 0xc7, 0x1d, 0x69, 0x0a, 0xac, 0x02, 0xe0, 0x1c, 0x38, 0xdd, 0x49, 0xc7, 0xb6, 0x1d,
0x5b, 0x53, 0xb9, 0x6c, 0xd0, 0x19, 0x0f, 0x1d, 0x5b, 0xcb, 0x3f, 0xf8, 0x2a, 0x81, 0xc2, 0x72,
0x40, 0x03, 0x14, 0xc7, 0xbd, 0xa7, 0xbd, 0xfe, 0x8b, 0x9e, 0x96, 0xab, 0xfd, 0x7b, 0x7a, 0x66,
0x6e, 0xa6, 0xc4, 0x98, 0xbe, 0xa1, 0xc1, 0x09, 0xe5, 0x7c, 0xda, 0xdd, 0xd6, 0xa4, 0x75, 0xbe,
0x1b, 0x61, 0xc4, 0xb0, 0xc7, 0x79, 0x77, 0xdc, 0xeb, 0xed, 0xf7, 0xf6, 0x34, 0x79, 0x9d, 0x77,
0x13, 0x4a, 0x09, 0xf5, 0x39, 0x3f, 0x1c, 0xf5, 0x07, 0x03, 0xc7, 0xd6, 0x94, 0x75, 0x7e, 0xc8,
0x82, 0x30, 0xc4, 0x1e, 0xbc, 0x7b, 0x35, 0x96, 0x5a, 0xd3, 0x4e, 0xcf, 0xcc, 0x8d, 0x94, 0x1e,
0xa0, 0x24, 0xc6, 0x5e, 0xad, 0xfa, 0xfe, 0x93, 0x91, 0xfb, 0xf6, 0xd9, 0x58, 0x4e, 0xbb, 0xab,
0x9f, 0x5f, 0x1a, 0xb9, 0x1f, 0x97, 0x46, 0xee, 0xdd, 0xc2, 0x90, 0xce, 0x17, 0x86, 0xf4, 0x7d,
0x61, 0x48, 0xbf, 0x16, 0x86, 0x74, 0x58, 0x10, 0xdb, 0xdc, 0xf9, 0x1d, 0x00, 0x00, 0xff, 0xff,
0x0d, 0x06, 0xaf, 0x6b, 0x9e, 0x04, 0x00, 0x00,
// 694 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xbf, 0x6f, 0xdb, 0x46,
0x18, 0xd5, 0x91, 0xd4, 0xaf, 0x93, 0xad, 0xb2, 0x57, 0xa3, 0xa0, 0xd5, 0x82, 0x22, 0x84, 0x02,
0x15, 0x0a, 0x94, 0x42, 0xe5, 0xa1, 0x5d, 0x65, 0x91, 0x30, 0x8c, 0x22, 0x92, 0x42, 0x49, 0x88,
0x37, 0xe1, 0x2c, 0x5e, 0x18, 0x22, 0xd6, 0x91, 0x20, 0x8f, 0x76, 0xb4, 0x65, 0x0c, 0x3c, 0x65,
0xc8, 0xea, 0x25, 0xc9, 0x9a, 0x35, 0x43, 0xfe, 0x02, 0x8f, 0x19, 0x33, 0x39, 0xb1, 0xfe, 0x92,
0xe0, 0x8e, 0x94, 0x29, 0xd8, 0x4e, 0x90, 0x85, 0x78, 0x77, 0xef, 0xf1, 0xfb, 0xde, 0xf7, 0xbe,
0x83, 0x96, 0xe7, 0xb3, 0x27, 0xc9, 0xb1, 0x39, 0x0f, 0x16, 0x9d, 0x79, 0x40, 0x19, 0xf6, 0x29,
0x89, 0xdc, 0x4d, 0x88, 0x43, 0xbf, 0xc3, 0x96, 0x21, 0x89, 0xf3, 0xcb, 0x1c, 0x99, 0x61, 0x14,
0xb0, 0x00, 0xfd, 0x92, 0xeb, 0xcd, 0xd3, 0x7f, 0x4c, 0x21, 0x6f, 0xec, 0x78, 0x81, 0x17, 0x08,
0xbe, 0xc3, 0x51, 0x2a, 0x6d, 0xec, 0x7a, 0x41, 0xe0, 0x9d, 0x90, 0x8e, 0x38, 0x1d, 0x27, 0x8f,
0x3b, 0x98, 0x2e, 0x33, 0xaa, 0x79, 0x9b, 0x62, 0xfe, 0x82, 0xc4, 0x0c, 0x2f, 0xc2, 0x54, 0xd0,
0x7a, 0x05, 0x60, 0xb5, 0xbf, 0xee, 0x84, 0x7e, 0x85, 0x92, 0xef, 0x6a, 0xc0, 0x00, 0xed, 0xea,
0x7e, 0x69, 0x75, 0xd5, 0x94, 0x0e, 0x2d, 0x47, 0xf2, 0x5d, 0xa4, 0x42, 0x39, 0xf4, 0x5d, 0x4d,
0x32, 0x40, 0x7b, 0xdb, 0xe1, 0x10, 0xed, 0xc1, 0x52, 0xcc, 0x30, 0x4b, 0x62, 0x4d, 0x36, 0x40,
0xbb, 0xde, 0xfd, 0xcd, 0xbc, 0xc7, 0xaf, 0x39, 0x16, 0x12, 0x27, 0x93, 0xa2, 0x36, 0x54, 0xe2,
0x90, 0xcc, 0x35, 0xc5, 0x00, 0xed, 0x5a, 0x77, 0xc7, 0x4c, 0xcd, 0x99, 0x6b, 0x73, 0x66, 0x8f,
0x2e, 0x1d, 0xa1, 0x68, 0xbd, 0x93, 0x60, 0x79, 0x14, 0x05, 0x73, 0x12, 0xc7, 0xeb, 0xe6, 0x20,
0x6f, 0x8e, 0xa0, 0x82, 0x23, 0x2f, 0xd6, 0x24, 0x43, 0x6e, 0x57, 0x1d, 0x81, 0xb9, 0x8a, 0xd0,
0x53, 0x4d, 0x16, 0x57, 0x1c, 0xa2, 0xbf, 0xa1, 0x92, 0xc4, 0x24, 0xca, 0xba, 0xed, 0xde, 0x6b,
0x70, 0x1a, 0x93, 0xc8, 0x11, 0x32, 0x5e, 0x60, 0x7e, 0xe6, 0x6a, 0x45, 0x3e, 0xbc, 0xc3, 0x21,
0x6a, 0xc0, 0x0a, 0x23, 0xd1, 0xc2, 0xa7, 0xf8, 0x44, 0x2b, 0x19, 0xa0, 0x5d, 0x71, 0x6e, 0xce,
0xa8, 0x09, 0x6b, 0xe4, 0x99, 0xcf, 0x66, 0x59, 0x08, 0x65, 0x61, 0x0e, 0xf2, 0xab, 0x74, 0xe6,
0x8d, 0x80, 0x2a, 0x3f, 0x1e, 0xd0, 0xbf, 0x70, 0x2b, 0x4a, 0x28, 0xdf, 0xd1, 0xcc, 0xc5, 0x0c,
0x6b, 0xd5, 0xef, 0x04, 0x55, 0xcb, 0x94, 0x16, 0x66, 0xb8, 0x35, 0x86, 0xca, 0x34, 0x1b, 0x22,
0xc9, 0xb3, 0x4a, 0xd2, 0xd5, 0x79, 0xf9, 0xea, 0x3c, 0xdf, 0x45, 0x7f, 0xc2, 0x9f, 0xb0, 0xeb,
0xfa, 0xcc, 0x0f, 0x28, 0x3e, 0x99, 0x79, 0xbe, 0x1b, 0x8b, 0xd4, 0xb6, 0x9d, 0x7a, 0x7e, 0x7d,
0xe0, 0xbb, 0x71, 0xeb, 0xb5, 0x04, 0x8b, 0xf6, 0x29, 0xa1, 0xec, 0x9b, 0xef, 0xe2, 0x3f, 0xa8,
0xf0, 0x39, 0x44, 0xf5, 0x7a, 0xf7, 0x8f, 0x7b, 0x47, 0x14, 0x15, 0xd2, 0xef, 0x64, 0x19, 0x12,
0x47, 0xfc, 0xb1, 0x5e, 0xaa, 0x9c, 0x2f, 0xf5, 0x56, 0xa2, 0xca, 0x9d, 0x44, 0x7b, 0xb0, 0xca,
0x4f, 0xc4, 0x9d, 0x61, 0x26, 0xd6, 0x54, 0xeb, 0x36, 0xee, 0x24, 0x33, 0x59, 0xbf, 0xef, 0xfd,
0xca, 0xe5, 0x55, 0xb3, 0xf0, 0xf2, 0x73, 0x13, 0x38, 0x95, 0xf4, 0xb7, 0x1e, 0x6b, 0x3d, 0x84,
0xd5, 0x1b, 0x23, 0xa8, 0x02, 0x15, 0xfb, 0xe8, 0x70, 0xa2, 0x16, 0x50, 0x19, 0xca, 0xc3, 0xe1,
0x03, 0x15, 0x20, 0x08, 0x4b, 0x7d, 0xc7, 0xee, 0x4d, 0x6c, 0x55, 0x42, 0x55, 0x58, 0x1c, 0x4f,
0x7a, 0xce, 0x44, 0x95, 0x51, 0x1d, 0x42, 0xfb, 0xc8, 0xee, 0xcf, 0x7a, 0x96, 0x65, 0x5b, 0xaa,
0xc2, 0x65, 0xa3, 0xde, 0x74, 0x6c, 0x5b, 0x6a, 0xf1, 0xaf, 0xf7, 0x00, 0x96, 0x32, 0x83, 0x3a,
0x2c, 0x4f, 0x07, 0xff, 0x0f, 0x86, 0x8f, 0x06, 0x6a, 0xa1, 0xf1, 0xf3, 0xf9, 0x85, 0xb1, 0x9d,
0x12, 0x53, 0xfa, 0x94, 0x06, 0x67, 0x94, 0xf3, 0x69, 0x75, 0x4b, 0x05, 0x9b, 0x7c, 0x3f, 0x22,
0x98, 0x11, 0x97, 0xf3, 0xce, 0x74, 0x30, 0x38, 0x1c, 0x1c, 0xa8, 0xd2, 0x26, 0xef, 0x24, 0x94,
0xfa, 0xd4, 0xe3, 0xfc, 0x78, 0x32, 0x1c, 0x8d, 0x6c, 0x4b, 0x95, 0x37, 0xf9, 0x31, 0x0b, 0xc2,
0x90, 0xb8, 0xe8, 0xf7, 0x1b, 0x5b, 0x4a, 0x43, 0x3d, 0xbf, 0x30, 0xb6, 0x52, 0x7a, 0x84, 0x93,
0x98, 0xb8, 0x8d, 0xfa, 0x8b, 0x37, 0x7a, 0xe1, 0xc3, 0x5b, 0x3d, 0x73, 0xbb, 0xaf, 0x5d, 0x5e,
0xeb, 0x85, 0x4f, 0xd7, 0x7a, 0xe1, 0xf9, 0x4a, 0x07, 0x97, 0x2b, 0x1d, 0x7c, 0x5c, 0xe9, 0xe0,
0xcb, 0x4a, 0x07, 0xc7, 0x25, 0x91, 0xe6, 0xde, 0xd7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x17, 0x6e,
0xa4, 0xd7, 0xc9, 0x04, 0x00, 0x00,
}

View File

@@ -2,8 +2,8 @@ syntax = "proto3";
package containerd.v1.types;
import "google/protobuf/any.proto";
import "gogoproto/gogo.proto";
import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";
enum Status {
@@ -21,6 +21,7 @@ message Container {
string id = 1;
uint32 pid = 2;
Status status = 3;
google.protobuf.Any spec = 4;
}
message Process {