Remove client use of gc root label
Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
parent
e13894bb7a
commit
dce27d8c62
@ -2411,23 +2411,6 @@ file {
|
||||
dependency: "gogoproto/gogo.proto"
|
||||
dependency: "google/protobuf/empty.proto"
|
||||
dependency: "google/protobuf/timestamp.proto"
|
||||
message_type {
|
||||
name: "Snapshot"
|
||||
field {
|
||||
name: "snapshotter"
|
||||
number: 1
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_STRING
|
||||
json_name: "snapshotter"
|
||||
}
|
||||
field {
|
||||
name: "key"
|
||||
number: 2
|
||||
label: LABEL_OPTIONAL
|
||||
type: TYPE_STRING
|
||||
json_name: "key"
|
||||
}
|
||||
}
|
||||
message_type {
|
||||
name: "Lease"
|
||||
field {
|
||||
|
@ -9,7 +9,6 @@
|
||||
github.com/containerd/containerd/api/services/leases/v1/leases.proto
|
||||
|
||||
It has these top-level messages:
|
||||
Snapshot
|
||||
Lease
|
||||
CreateRequest
|
||||
CreateResponse
|
||||
@ -53,16 +52,6 @@ var _ = time.Kitchen
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
|
||||
|
||||
// Snapshot is a snapshot resource reference.
|
||||
type Snapshot struct {
|
||||
Snapshotter string `protobuf:"bytes,1,opt,name=snapshotter,proto3" json:"snapshotter,omitempty"`
|
||||
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
|
||||
}
|
||||
|
||||
func (m *Snapshot) Reset() { *m = Snapshot{} }
|
||||
func (*Snapshot) ProtoMessage() {}
|
||||
func (*Snapshot) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{0} }
|
||||
|
||||
// Lease is an object which retains resources while it exists.
|
||||
type Lease struct {
|
||||
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
@ -72,7 +61,7 @@ type Lease struct {
|
||||
|
||||
func (m *Lease) Reset() { *m = Lease{} }
|
||||
func (*Lease) ProtoMessage() {}
|
||||
func (*Lease) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{1} }
|
||||
func (*Lease) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{0} }
|
||||
|
||||
type CreateRequest struct {
|
||||
// ID is used to identity the lease, when the id is not set the service
|
||||
@ -83,7 +72,7 @@ type CreateRequest struct {
|
||||
|
||||
func (m *CreateRequest) Reset() { *m = CreateRequest{} }
|
||||
func (*CreateRequest) ProtoMessage() {}
|
||||
func (*CreateRequest) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{2} }
|
||||
func (*CreateRequest) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{1} }
|
||||
|
||||
type CreateResponse struct {
|
||||
Lease *Lease `protobuf:"bytes,1,opt,name=lease" json:"lease,omitempty"`
|
||||
@ -91,7 +80,7 @@ type CreateResponse struct {
|
||||
|
||||
func (m *CreateResponse) Reset() { *m = CreateResponse{} }
|
||||
func (*CreateResponse) ProtoMessage() {}
|
||||
func (*CreateResponse) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{3} }
|
||||
func (*CreateResponse) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{2} }
|
||||
|
||||
type DeleteRequest struct {
|
||||
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
@ -99,7 +88,7 @@ type DeleteRequest struct {
|
||||
|
||||
func (m *DeleteRequest) Reset() { *m = DeleteRequest{} }
|
||||
func (*DeleteRequest) ProtoMessage() {}
|
||||
func (*DeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{4} }
|
||||
func (*DeleteRequest) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{3} }
|
||||
|
||||
type ListRequest struct {
|
||||
Filters []string `protobuf:"bytes,1,rep,name=filters" json:"filters,omitempty"`
|
||||
@ -107,7 +96,7 @@ type ListRequest struct {
|
||||
|
||||
func (m *ListRequest) Reset() { *m = ListRequest{} }
|
||||
func (*ListRequest) ProtoMessage() {}
|
||||
func (*ListRequest) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{5} }
|
||||
func (*ListRequest) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{4} }
|
||||
|
||||
type ListResponse struct {
|
||||
Leases []*Lease `protobuf:"bytes,1,rep,name=leases" json:"leases,omitempty"`
|
||||
@ -115,10 +104,9 @@ type ListResponse struct {
|
||||
|
||||
func (m *ListResponse) Reset() { *m = ListResponse{} }
|
||||
func (*ListResponse) ProtoMessage() {}
|
||||
func (*ListResponse) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{6} }
|
||||
func (*ListResponse) Descriptor() ([]byte, []int) { return fileDescriptorLeases, []int{5} }
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*Snapshot)(nil), "containerd.services.leases.v1.Snapshot")
|
||||
proto.RegisterType((*Lease)(nil), "containerd.services.leases.v1.Lease")
|
||||
proto.RegisterType((*CreateRequest)(nil), "containerd.services.leases.v1.CreateRequest")
|
||||
proto.RegisterType((*CreateResponse)(nil), "containerd.services.leases.v1.CreateResponse")
|
||||
@ -279,36 +267,6 @@ var _Leases_serviceDesc = grpc.ServiceDesc{
|
||||
Metadata: "github.com/containerd/containerd/api/services/leases/v1/leases.proto",
|
||||
}
|
||||
|
||||
func (m *Snapshot) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
n, err := m.MarshalTo(dAtA)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return dAtA[:n], nil
|
||||
}
|
||||
|
||||
func (m *Snapshot) MarshalTo(dAtA []byte) (int, error) {
|
||||
var i int
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
if len(m.Snapshotter) > 0 {
|
||||
dAtA[i] = 0xa
|
||||
i++
|
||||
i = encodeVarintLeases(dAtA, i, uint64(len(m.Snapshotter)))
|
||||
i += copy(dAtA[i:], m.Snapshotter)
|
||||
}
|
||||
if len(m.Key) > 0 {
|
||||
dAtA[i] = 0x12
|
||||
i++
|
||||
i = encodeVarintLeases(dAtA, i, uint64(len(m.Key)))
|
||||
i += copy(dAtA[i:], m.Key)
|
||||
}
|
||||
return i, nil
|
||||
}
|
||||
|
||||
func (m *Lease) Marshal() (dAtA []byte, err error) {
|
||||
size := m.Size()
|
||||
dAtA = make([]byte, size)
|
||||
@ -541,20 +499,6 @@ func encodeVarintLeases(dAtA []byte, offset int, v uint64) int {
|
||||
dAtA[offset] = uint8(v)
|
||||
return offset + 1
|
||||
}
|
||||
func (m *Snapshot) Size() (n int) {
|
||||
var l int
|
||||
_ = l
|
||||
l = len(m.Snapshotter)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovLeases(uint64(l))
|
||||
}
|
||||
l = len(m.Key)
|
||||
if l > 0 {
|
||||
n += 1 + l + sovLeases(uint64(l))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func (m *Lease) Size() (n int) {
|
||||
var l int
|
||||
_ = l
|
||||
@ -650,17 +594,6 @@ func sovLeases(x uint64) (n int) {
|
||||
func sozLeases(x uint64) (n int) {
|
||||
return sovLeases(uint64((x << 1) ^ uint64((int64(x) >> 63))))
|
||||
}
|
||||
func (this *Snapshot) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
}
|
||||
s := strings.Join([]string{`&Snapshot{`,
|
||||
`Snapshotter:` + fmt.Sprintf("%v", this.Snapshotter) + `,`,
|
||||
`Key:` + fmt.Sprintf("%v", this.Key) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
}
|
||||
func (this *Lease) String() string {
|
||||
if this == nil {
|
||||
return "nil"
|
||||
@ -752,114 +685,6 @@ func valueToStringLeases(v interface{}) string {
|
||||
pv := reflect.Indirect(rv).Interface()
|
||||
return fmt.Sprintf("*%v", pv)
|
||||
}
|
||||
func (m *Snapshot) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
for iNdEx < l {
|
||||
preIndex := iNdEx
|
||||
var wire uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowLeases
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
wire |= (uint64(b) & 0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
fieldNum := int32(wire >> 3)
|
||||
wireType := int(wire & 0x7)
|
||||
if wireType == 4 {
|
||||
return fmt.Errorf("proto: Snapshot: wiretype end group for non-group")
|
||||
}
|
||||
if fieldNum <= 0 {
|
||||
return fmt.Errorf("proto: Snapshot: illegal tag %d (wire type %d)", fieldNum, wire)
|
||||
}
|
||||
switch fieldNum {
|
||||
case 1:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Snapshotter", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowLeases
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= (uint64(b) & 0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthLeases
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Snapshotter = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
case 2:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
|
||||
}
|
||||
var stringLen uint64
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowLeases
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
stringLen |= (uint64(b) & 0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
intStringLen := int(stringLen)
|
||||
if intStringLen < 0 {
|
||||
return ErrInvalidLengthLeases
|
||||
}
|
||||
postIndex := iNdEx + intStringLen
|
||||
if postIndex > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
m.Key = string(dAtA[iNdEx:postIndex])
|
||||
iNdEx = postIndex
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipLeases(dAtA[iNdEx:])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if skippy < 0 {
|
||||
return ErrInvalidLengthLeases
|
||||
}
|
||||
if (iNdEx + skippy) > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
iNdEx += skippy
|
||||
}
|
||||
}
|
||||
|
||||
if iNdEx > l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (m *Lease) Unmarshal(dAtA []byte) error {
|
||||
l := len(dAtA)
|
||||
iNdEx := 0
|
||||
@ -1712,38 +1537,37 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptorLeases = []byte{
|
||||
// 525 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0x4f, 0x6b, 0x13, 0x41,
|
||||
0x18, 0xc6, 0x33, 0x1b, 0xb3, 0x36, 0xef, 0x5a, 0x91, 0xa1, 0x94, 0xb0, 0xe2, 0x26, 0x2c, 0x42,
|
||||
0x83, 0x7f, 0x66, 0x6d, 0xbc, 0xd4, 0x2a, 0x05, 0xd3, 0x14, 0x14, 0x82, 0xc8, 0xea, 0x41, 0xbc,
|
||||
0x94, 0x4d, 0xf2, 0x36, 0x5d, 0xdc, 0x64, 0xd6, 0x9d, 0x49, 0x20, 0x37, 0x3f, 0x82, 0x1f, 0xc1,
|
||||
0x0f, 0xe1, 0x87, 0xc8, 0xd1, 0xa3, 0xa7, 0x6a, 0x73, 0xf3, 0x5b, 0x48, 0x66, 0x66, 0x6d, 0x5a,
|
||||
0xd1, 0x44, 0xe9, 0xed, 0x9d, 0x99, 0xe7, 0xd9, 0xf9, 0x3d, 0x0f, 0xcc, 0x42, 0xab, 0x1f, 0xcb,
|
||||
0xe3, 0x51, 0x87, 0x75, 0xf9, 0x20, 0xe8, 0xf2, 0xa1, 0x8c, 0xe2, 0x21, 0x66, 0xbd, 0xc5, 0x31,
|
||||
0x4a, 0xe3, 0x40, 0x60, 0x36, 0x8e, 0xbb, 0x28, 0x82, 0x04, 0x23, 0x81, 0x22, 0x18, 0x6f, 0x9b,
|
||||
0x89, 0xa5, 0x19, 0x97, 0x9c, 0xde, 0x3a, 0xd3, 0xb3, 0x5c, 0xcb, 0x8c, 0x62, 0xbc, 0xed, 0x6e,
|
||||
0xf4, 0x79, 0x9f, 0x2b, 0x65, 0x30, 0x9f, 0xb4, 0xc9, 0xbd, 0xd9, 0xe7, 0xbc, 0x9f, 0x60, 0xa0,
|
||||
0x56, 0x9d, 0xd1, 0x51, 0x80, 0x83, 0x54, 0x4e, 0xcc, 0x61, 0xf5, 0xe2, 0xa1, 0x8c, 0x07, 0x28,
|
||||
0x64, 0x34, 0x48, 0xb5, 0xc0, 0xdf, 0x83, 0xb5, 0x57, 0xc3, 0x28, 0x15, 0xc7, 0x5c, 0xd2, 0x1a,
|
||||
0x38, 0xc2, 0xcc, 0x12, 0xb3, 0x0a, 0xa9, 0x91, 0x7a, 0x39, 0x5c, 0xdc, 0xa2, 0x37, 0xa0, 0xf8,
|
||||
0x0e, 0x27, 0x15, 0x4b, 0x9d, 0xcc, 0x47, 0xff, 0x07, 0x81, 0x52, 0x7b, 0x4e, 0x48, 0x37, 0xc1,
|
||||
0x8a, 0x7b, 0xda, 0xd4, 0xb4, 0x67, 0x27, 0x55, 0xeb, 0x79, 0x2b, 0xb4, 0xe2, 0x1e, 0xdd, 0x07,
|
||||
0xe8, 0x66, 0x18, 0x49, 0xec, 0x1d, 0x46, 0x52, 0x59, 0x9d, 0x86, 0xcb, 0x34, 0x17, 0xcb, 0xb9,
|
||||
0xd8, 0xeb, 0x9c, 0xab, 0xb9, 0x36, 0x3d, 0xa9, 0x16, 0x3e, 0x7e, 0xab, 0x92, 0xb0, 0x6c, 0x7c,
|
||||
0x4f, 0x25, 0x7d, 0x06, 0x76, 0x12, 0x75, 0x30, 0x11, 0x95, 0x62, 0xad, 0x58, 0x77, 0x1a, 0x0f,
|
||||
0xd8, 0x5f, 0xab, 0x62, 0x0a, 0x89, 0xb5, 0x95, 0xe5, 0x60, 0x28, 0xb3, 0x49, 0x68, 0xfc, 0xee,
|
||||
0x23, 0x70, 0x16, 0xb6, 0xf3, 0x44, 0xe4, 0x57, 0x22, 0xba, 0x01, 0xa5, 0x71, 0x94, 0x8c, 0xd0,
|
||||
0xa4, 0xd4, 0x8b, 0x5d, 0x6b, 0x87, 0xf8, 0x9f, 0x09, 0xac, 0xef, 0x2b, 0xa4, 0x10, 0xdf, 0x8f,
|
||||
0x50, 0xc8, 0x3f, 0x66, 0x7e, 0x79, 0x01, 0x77, 0x67, 0x09, 0xee, 0xb9, 0xaf, 0x5e, 0x36, 0x76,
|
||||
0x1b, 0xae, 0xe7, 0xdf, 0x17, 0x29, 0x1f, 0x0a, 0xa4, 0xbb, 0x50, 0x52, 0x77, 0x2b, 0xbf, 0xd3,
|
||||
0xb8, 0xbd, 0x4a, 0x99, 0xa1, 0xb6, 0xf8, 0x5b, 0xb0, 0xde, 0xc2, 0x04, 0x97, 0x76, 0xe0, 0x6f,
|
||||
0x81, 0xd3, 0x8e, 0x85, 0xcc, 0x65, 0x15, 0xb8, 0x7a, 0x14, 0x27, 0x12, 0x33, 0x51, 0x21, 0xb5,
|
||||
0x62, 0xbd, 0x1c, 0xe6, 0x4b, 0xbf, 0x0d, 0xd7, 0xb4, 0xd0, 0xd0, 0x3d, 0x01, 0x5b, 0xdf, 0xad,
|
||||
0x84, 0xab, 0xe2, 0x19, 0x4f, 0xe3, 0x93, 0x05, 0xb6, 0xda, 0x11, 0x14, 0xc1, 0xd6, 0xc1, 0xe9,
|
||||
0xbd, 0x7f, 0xe9, 0xdf, 0xbd, 0xbf, 0xa2, 0xda, 0xf0, 0xbe, 0x00, 0x5b, 0x37, 0xb2, 0xf4, 0x9a,
|
||||
0x73, 0xc5, 0xb9, 0x9b, 0xbf, 0x3d, 0x82, 0x83, 0xf9, 0xcb, 0xa5, 0x87, 0x70, 0x65, 0xde, 0x07,
|
||||
0xbd, 0xb3, 0x2c, 0xf7, 0x59, 0xbb, 0xee, 0xdd, 0x95, 0xb4, 0x1a, 0xb8, 0xf9, 0x66, 0x7a, 0xea,
|
||||
0x15, 0xbe, 0x9e, 0x7a, 0x85, 0x0f, 0x33, 0x8f, 0x4c, 0x67, 0x1e, 0xf9, 0x32, 0xf3, 0xc8, 0xf7,
|
||||
0x99, 0x47, 0xde, 0xee, 0xfd, 0xe7, 0x6f, 0xec, 0xb1, 0x9e, 0x3a, 0xb6, 0x8a, 0xf2, 0xf0, 0x67,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xaf, 0xd6, 0x7f, 0x24, 0x0f, 0x05, 0x00, 0x00,
|
||||
// 501 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xdf, 0x8a, 0xd3, 0x40,
|
||||
0x14, 0xc6, 0x3b, 0xa9, 0x8d, 0xf6, 0xd4, 0x15, 0x19, 0x96, 0x25, 0x44, 0x4c, 0x4b, 0x10, 0xb6,
|
||||
0xf8, 0x67, 0xe2, 0xd6, 0x9b, 0x75, 0x15, 0xc1, 0x6e, 0x17, 0x14, 0x82, 0x48, 0xf0, 0x42, 0xbc,
|
||||
0x59, 0xd2, 0xf6, 0x6c, 0x0c, 0xa6, 0x9d, 0x98, 0x99, 0x16, 0x7a, 0xe7, 0x23, 0xf8, 0x08, 0x3e,
|
||||
0x84, 0x0f, 0xd1, 0x4b, 0x2f, 0xbd, 0x5a, 0xdd, 0xdc, 0xf9, 0x16, 0x92, 0x99, 0x84, 0xfd, 0x23,
|
||||
0xda, 0x2a, 0xde, 0x9d, 0xc9, 0x7c, 0xdf, 0x39, 0xbf, 0xf3, 0xc1, 0x04, 0x06, 0x51, 0x2c, 0xdf,
|
||||
0xce, 0x86, 0x6c, 0xc4, 0x27, 0xde, 0x88, 0x4f, 0x65, 0x18, 0x4f, 0x31, 0x1b, 0x9f, 0x2d, 0xc3,
|
||||
0x34, 0xf6, 0x04, 0x66, 0xf3, 0x78, 0x84, 0xc2, 0x4b, 0x30, 0x14, 0x28, 0xbc, 0xf9, 0x4e, 0x59,
|
||||
0xb1, 0x34, 0xe3, 0x92, 0xd3, 0x9b, 0xa7, 0x7a, 0x56, 0x69, 0x59, 0xa9, 0x98, 0xef, 0xd8, 0x9b,
|
||||
0x11, 0x8f, 0xb8, 0x52, 0x7a, 0x45, 0xa5, 0x4d, 0xf6, 0x8d, 0x88, 0xf3, 0x28, 0x41, 0x4f, 0x9d,
|
||||
0x86, 0xb3, 0x23, 0x0f, 0x27, 0xa9, 0x5c, 0x94, 0x97, 0xed, 0x8b, 0x97, 0x32, 0x9e, 0xa0, 0x90,
|
||||
0xe1, 0x24, 0xd5, 0x02, 0xf7, 0x07, 0x81, 0x86, 0x5f, 0x4c, 0xa0, 0x5b, 0x60, 0xc4, 0x63, 0x8b,
|
||||
0x74, 0x48, 0xb7, 0xd9, 0x37, 0xf3, 0xe3, 0xb6, 0xf1, 0x7c, 0x10, 0x18, 0xf1, 0x98, 0xee, 0x03,
|
||||
0x8c, 0x32, 0x0c, 0x25, 0x8e, 0x0f, 0x43, 0x69, 0x19, 0x1d, 0xd2, 0x6d, 0xf5, 0x6c, 0xa6, 0xfb,
|
||||
0xb2, 0xaa, 0x2f, 0x7b, 0x55, 0xf5, 0xed, 0x5f, 0x59, 0x1e, 0xb7, 0x6b, 0x1f, 0xbf, 0xb5, 0x49,
|
||||
0xd0, 0x2c, 0x7d, 0x4f, 0x25, 0x7d, 0x06, 0x66, 0x12, 0x0e, 0x31, 0x11, 0x56, 0xbd, 0x53, 0xef,
|
||||
0xb6, 0x7a, 0xf7, 0xd9, 0x1f, 0x57, 0x65, 0x0a, 0x89, 0xf9, 0xca, 0x72, 0x30, 0x95, 0xd9, 0x22,
|
||||
0x28, 0xfd, 0xf6, 0x43, 0x68, 0x9d, 0xf9, 0x4c, 0xaf, 0x43, 0xfd, 0x1d, 0x2e, 0x34, 0x76, 0x50,
|
||||
0x94, 0x74, 0x13, 0x1a, 0xf3, 0x30, 0x99, 0xa1, 0x42, 0x6d, 0x06, 0xfa, 0xb0, 0x67, 0xec, 0x12,
|
||||
0xf7, 0x33, 0x81, 0x8d, 0x7d, 0x85, 0x14, 0xe0, 0xfb, 0x19, 0x0a, 0xf9, 0xdb, 0x9d, 0x5f, 0x5e,
|
||||
0xc0, 0xdd, 0x5d, 0x81, 0x7b, 0xae, 0xeb, 0xff, 0xc6, 0xf6, 0xe1, 0x5a, 0xd5, 0x5f, 0xa4, 0x7c,
|
||||
0x2a, 0x90, 0xee, 0x41, 0x43, 0xcd, 0x56, 0xfe, 0x56, 0xef, 0xd6, 0x3a, 0x61, 0x06, 0xda, 0xe2,
|
||||
0x6e, 0xc3, 0xc6, 0x00, 0x13, 0x5c, 0x99, 0x81, 0xbb, 0x0d, 0x2d, 0x3f, 0x16, 0xb2, 0x92, 0x59,
|
||||
0x70, 0xf9, 0x28, 0x4e, 0x24, 0x66, 0xc2, 0x22, 0x9d, 0x7a, 0xb7, 0x19, 0x54, 0x47, 0xd7, 0x87,
|
||||
0xab, 0x5a, 0x58, 0xd2, 0x3d, 0x06, 0x53, 0xcf, 0x56, 0xc2, 0x75, 0xf1, 0x4a, 0x4f, 0xef, 0x93,
|
||||
0x01, 0xa6, 0xfa, 0x22, 0x28, 0x82, 0xa9, 0x17, 0xa7, 0x77, 0xff, 0x26, 0x7f, 0xfb, 0xde, 0x9a,
|
||||
0xea, 0x92, 0xf7, 0x05, 0x98, 0x3a, 0x91, 0x95, 0x63, 0xce, 0x05, 0x67, 0x6f, 0xfd, 0xf2, 0x08,
|
||||
0x0e, 0x8a, 0x97, 0x47, 0x0f, 0xe1, 0x52, 0x91, 0x07, 0xbd, 0xbd, 0x6a, 0xef, 0xd3, 0x74, 0xed,
|
||||
0x3b, 0x6b, 0x69, 0x35, 0x70, 0xff, 0xf5, 0xf2, 0xc4, 0xa9, 0x7d, 0x3d, 0x71, 0x6a, 0x1f, 0x72,
|
||||
0x87, 0x2c, 0x73, 0x87, 0x7c, 0xc9, 0x1d, 0xf2, 0x3d, 0x77, 0xc8, 0x9b, 0x27, 0xff, 0xf8, 0x1b,
|
||||
0x7a, 0xa4, 0xab, 0xa1, 0xa9, 0x56, 0x79, 0xf0, 0x33, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xb9, 0xa6,
|
||||
0x63, 0xcf, 0x04, 0x00, 0x00,
|
||||
}
|
||||
|
@ -24,12 +24,6 @@ service Leases {
|
||||
rpc List(ListRequest) returns (ListResponse);
|
||||
}
|
||||
|
||||
// Snapshot is a snapshot resource reference.
|
||||
message Snapshot {
|
||||
string snapshotter = 1;
|
||||
string key = 2;
|
||||
}
|
||||
|
||||
// Lease is an object which retains resources while it exists.
|
||||
message Lease {
|
||||
string id = 1;
|
||||
|
@ -247,7 +247,7 @@ func (c *Client) Pull(ctx context.Context, ref string, opts ...RemoteOpt) (Image
|
||||
handler = images.Handlers(append(pullCtx.BaseHandlers, schema1Converter)...)
|
||||
} else {
|
||||
handler = images.Handlers(append(pullCtx.BaseHandlers,
|
||||
remotes.FetchHandler(store, fetcher, desc),
|
||||
remotes.FetchHandler(store, fetcher),
|
||||
images.ChildrenHandler(store, platforms.Default()))...,
|
||||
)
|
||||
}
|
||||
@ -284,11 +284,6 @@ func (c *Client) Pull(ctx context.Context, ref string, opts ...RemoteOpt) (Image
|
||||
imgrec = created
|
||||
}
|
||||
|
||||
// Remove root tag from manifest now that image refers to it
|
||||
if _, err := store.Update(ctx, content.Info{Digest: desc.Digest}, "labels.containerd.io/gc.root"); err != nil {
|
||||
return nil, errors.Wrap(err, "failed to remove manifest root tag")
|
||||
}
|
||||
|
||||
img := &image{
|
||||
client: c,
|
||||
i: imgrec,
|
||||
|
@ -2,12 +2,10 @@ package containerd
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd/containers"
|
||||
"github.com/containerd/containerd/errdefs"
|
||||
"github.com/containerd/containerd/platforms"
|
||||
"github.com/containerd/containerd/snapshot"
|
||||
"github.com/containerd/typeurl"
|
||||
"github.com/gogo/protobuf/types"
|
||||
"github.com/opencontainers/image-spec/identity"
|
||||
@ -93,11 +91,8 @@ func WithNewSnapshot(id string, i Image) NewContainerOpts {
|
||||
return err
|
||||
}
|
||||
setSnapshotterIfEmpty(c)
|
||||
labels := map[string]string{
|
||||
"containerd.io/gc.root": time.Now().String(),
|
||||
}
|
||||
parent := identity.ChainID(diffIDs).String()
|
||||
if _, err := client.SnapshotService(c.Snapshotter).Prepare(ctx, id, parent, snapshot.WithLabels(labels)); err != nil {
|
||||
if _, err := client.SnapshotService(c.Snapshotter).Prepare(ctx, id, parent); err != nil {
|
||||
return err
|
||||
}
|
||||
c.SnapshotKey = id
|
||||
@ -126,11 +121,8 @@ func WithNewSnapshotView(id string, i Image) NewContainerOpts {
|
||||
return err
|
||||
}
|
||||
setSnapshotterIfEmpty(c)
|
||||
labels := map[string]string{
|
||||
"containerd.io/gc.root": time.Now().String(),
|
||||
}
|
||||
parent := identity.ChainID(diffIDs).String()
|
||||
if _, err := client.SnapshotService(c.Snapshotter).View(ctx, id, parent, snapshot.WithLabels(labels)); err != nil {
|
||||
if _, err := client.SnapshotService(c.Snapshotter).View(ctx, id, parent); err != nil {
|
||||
return err
|
||||
}
|
||||
c.SnapshotKey = id
|
||||
|
23
image.go
23
image.go
@ -3,7 +3,6 @@ package containerd
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/containerd/containerd/content"
|
||||
"github.com/containerd/containerd/errdefs"
|
||||
@ -102,27 +101,14 @@ func (i *image) Unpack(ctx context.Context, snapshotterName string) error {
|
||||
)
|
||||
for _, layer := range layers {
|
||||
labels := map[string]string{
|
||||
"containerd.io/gc.root": time.Now().UTC().Format(time.RFC3339),
|
||||
"containerd.io/uncompressed": layer.Diff.Digest.String(),
|
||||
}
|
||||
lastUnpacked := unpacked
|
||||
|
||||
unpacked, err = rootfs.ApplyLayer(ctx, layer, chain, sn, a, snapshot.WithLabels(labels))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if lastUnpacked {
|
||||
info := snapshot.Info{
|
||||
Name: identity.ChainID(chain).String(),
|
||||
}
|
||||
|
||||
// Remove previously created gc.root label
|
||||
if _, err := sn.Update(ctx, info, "labels.containerd.io/gc.root"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
chain = append(chain, layer.Diff.Digest)
|
||||
}
|
||||
|
||||
@ -143,15 +129,6 @@ func (i *image) Unpack(ctx context.Context, snapshotterName string) error {
|
||||
if _, err := cs.Update(ctx, cinfo, fmt.Sprintf("labels.containerd.io/gc.ref.snapshot.%s", snapshotterName)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
sinfo := snapshot.Info{
|
||||
Name: rootfs,
|
||||
}
|
||||
|
||||
// Config now referenced snapshot, release root reference
|
||||
if _, err := sn.Update(ctx, sinfo, "labels.containerd.io/gc.root"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -160,7 +160,6 @@ func (c *Converter) Convert(ctx context.Context) (ocispec.Descriptor, error) {
|
||||
}
|
||||
|
||||
labels := map[string]string{}
|
||||
labels["containerd.io/gc.root"] = time.Now().UTC().Format(time.RFC3339)
|
||||
labels["containerd.io/gc.ref.content.0"] = manifest.Config.Digest.String()
|
||||
for i, ch := range manifest.Layers {
|
||||
labels[fmt.Sprintf("containerd.io/gc.ref.content.%d", i+1)] = ch.Digest.String()
|
||||
@ -176,12 +175,6 @@ func (c *Converter) Convert(ctx context.Context) (ocispec.Descriptor, error) {
|
||||
return ocispec.Descriptor{}, errors.Wrap(err, "failed to write config")
|
||||
}
|
||||
|
||||
for _, ch := range manifest.Layers {
|
||||
if _, err := c.contentStore.Update(ctx, content.Info{Digest: ch.Digest}, "labels.containerd.io/gc.root"); err != nil {
|
||||
return ocispec.Descriptor{}, errors.Wrap(err, "failed to remove blob root tag")
|
||||
}
|
||||
}
|
||||
|
||||
return desc, nil
|
||||
}
|
||||
|
||||
@ -284,10 +277,7 @@ tryit:
|
||||
|
||||
eg.Go(func() error {
|
||||
defer pw.Close()
|
||||
opt := content.WithLabels(map[string]string{
|
||||
"containerd.io/gc.root": time.Now().UTC().Format(time.RFC3339),
|
||||
})
|
||||
return content.Copy(ctx, cw, io.TeeReader(rc, pw), desc.Size, desc.Digest, opt)
|
||||
return content.Copy(ctx, cw, io.TeeReader(rc, pw), desc.Size, desc.Digest)
|
||||
})
|
||||
|
||||
if err := eg.Wait(); err != nil {
|
||||
|
@ -45,7 +45,7 @@ func MakeRefKey(ctx context.Context, desc ocispec.Descriptor) string {
|
||||
// FetchHandler returns a handler that will fetch all content into the ingester
|
||||
// discovered in a call to Dispatch. Use with ChildrenHandler to do a full
|
||||
// recursive fetch.
|
||||
func FetchHandler(ingester content.Ingester, fetcher Fetcher, root ocispec.Descriptor) images.HandlerFunc {
|
||||
func FetchHandler(ingester content.Ingester, fetcher Fetcher) images.HandlerFunc {
|
||||
return func(ctx context.Context, desc ocispec.Descriptor) (subdescs []ocispec.Descriptor, err error) {
|
||||
ctx = log.WithLogger(ctx, log.G(ctx).WithFields(logrus.Fields{
|
||||
"digest": desc.Digest,
|
||||
@ -57,13 +57,13 @@ func FetchHandler(ingester content.Ingester, fetcher Fetcher, root ocispec.Descr
|
||||
case images.MediaTypeDockerSchema1Manifest:
|
||||
return nil, fmt.Errorf("%v not supported", desc.MediaType)
|
||||
default:
|
||||
err := fetch(ctx, ingester, fetcher, desc, desc.Digest == root.Digest)
|
||||
err := fetch(ctx, ingester, fetcher, desc)
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func fetch(ctx context.Context, ingester content.Ingester, fetcher Fetcher, desc ocispec.Descriptor, root bool) error {
|
||||
func fetch(ctx context.Context, ingester content.Ingester, fetcher Fetcher, desc ocispec.Descriptor) error {
|
||||
log.G(ctx).Debug("fetch")
|
||||
|
||||
var (
|
||||
@ -105,13 +105,13 @@ func fetch(ctx context.Context, ingester content.Ingester, fetcher Fetcher, desc
|
||||
}
|
||||
defer rc.Close()
|
||||
|
||||
r, opts := commitOpts(desc, rc, root)
|
||||
r, opts := commitOpts(desc, rc)
|
||||
return content.Copy(ctx, cw, r, desc.Size, desc.Digest, opts...)
|
||||
}
|
||||
|
||||
// commitOpts gets the appropriate content options to alter
|
||||
// the content info on commit based on media type.
|
||||
func commitOpts(desc ocispec.Descriptor, r io.Reader, root bool) (io.Reader, []content.Opt) {
|
||||
func commitOpts(desc ocispec.Descriptor, r io.Reader) (io.Reader, []content.Opt) {
|
||||
var childrenF func(r io.Reader) ([]ocispec.Descriptor, error)
|
||||
|
||||
switch desc.MediaType {
|
||||
@ -163,13 +163,10 @@ func commitOpts(desc ocispec.Descriptor, r io.Reader, root bool) (io.Reader, []c
|
||||
return errors.Wrap(err, "unable to get commit labels")
|
||||
}
|
||||
|
||||
if len(children) > 0 || root {
|
||||
if len(children) > 0 {
|
||||
if info.Labels == nil {
|
||||
info.Labels = map[string]string{}
|
||||
}
|
||||
if root {
|
||||
info.Labels["containerd.io/gc.root"] = time.Now().UTC().Format(time.RFC3339)
|
||||
}
|
||||
for i, ch := range children {
|
||||
info.Labels[fmt.Sprintf("containerd.io/gc.ref.content.%d", i)] = ch.Digest.String()
|
||||
}
|
||||
|
@ -567,10 +567,7 @@ func (s *service) writeContent(ctx context.Context, mediaType, ref string, r io.
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
labels := map[string]string{
|
||||
"containerd.io/gc.root": time.Now().UTC().Format(time.RFC3339),
|
||||
}
|
||||
if err := writer.Commit(ctx, 0, "", content.WithLabels(labels)); err != nil {
|
||||
if err := writer.Commit(ctx, 0, ""); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &types.Descriptor{
|
||||
|
@ -11,7 +11,6 @@ import (
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
|
||||
@ -21,7 +20,6 @@ import (
|
||||
"github.com/containerd/containerd/images"
|
||||
"github.com/containerd/containerd/namespaces"
|
||||
"github.com/containerd/containerd/platforms"
|
||||
"github.com/containerd/containerd/snapshot"
|
||||
"github.com/opencontainers/image-spec/identity"
|
||||
"github.com/opencontainers/image-spec/specs-go/v1"
|
||||
"github.com/opencontainers/runc/libcontainer/user"
|
||||
@ -260,19 +258,16 @@ func withRemappedSnapshotBase(id string, i Image, uid, gid uint32, readonly bool
|
||||
snapshotter = client.SnapshotService(c.Snapshotter)
|
||||
parent = identity.ChainID(diffIDs).String()
|
||||
usernsID = fmt.Sprintf("%s-%d-%d", parent, uid, gid)
|
||||
opt = snapshot.WithLabels(map[string]string{
|
||||
"containerd.io/gc.root": time.Now().UTC().Format(time.RFC3339),
|
||||
})
|
||||
)
|
||||
if _, err := snapshotter.Stat(ctx, usernsID); err == nil {
|
||||
if _, err := snapshotter.Prepare(ctx, id, usernsID, opt); err != nil {
|
||||
if _, err := snapshotter.Prepare(ctx, id, usernsID); err != nil {
|
||||
return err
|
||||
}
|
||||
c.SnapshotKey = id
|
||||
c.Image = i.Name()
|
||||
return nil
|
||||
}
|
||||
mounts, err := snapshotter.Prepare(ctx, usernsID+"-remap", parent, opt)
|
||||
mounts, err := snapshotter.Prepare(ctx, usernsID+"-remap", parent)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -280,13 +275,13 @@ func withRemappedSnapshotBase(id string, i Image, uid, gid uint32, readonly bool
|
||||
snapshotter.Remove(ctx, usernsID)
|
||||
return err
|
||||
}
|
||||
if err := snapshotter.Commit(ctx, usernsID, usernsID+"-remap", opt); err != nil {
|
||||
if err := snapshotter.Commit(ctx, usernsID, usernsID+"-remap"); err != nil {
|
||||
return err
|
||||
}
|
||||
if readonly {
|
||||
_, err = snapshotter.View(ctx, id, usernsID, opt)
|
||||
_, err = snapshotter.View(ctx, id, usernsID)
|
||||
} else {
|
||||
_, err = snapshotter.Prepare(ctx, id, usernsID, opt)
|
||||
_, err = snapshotter.Prepare(ctx, id, usernsID)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
|
25
task.go
25
task.go
@ -19,7 +19,6 @@ import (
|
||||
"github.com/containerd/containerd/errdefs"
|
||||
"github.com/containerd/containerd/images"
|
||||
"github.com/containerd/containerd/leases"
|
||||
"github.com/containerd/containerd/log"
|
||||
"github.com/containerd/containerd/mount"
|
||||
"github.com/containerd/containerd/plugin"
|
||||
"github.com/containerd/containerd/rootfs"
|
||||
@ -27,7 +26,6 @@ import (
|
||||
google_protobuf "github.com/gogo/protobuf/types"
|
||||
digest "github.com/opencontainers/go-digest"
|
||||
"github.com/opencontainers/image-spec/specs-go/v1"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
@ -401,15 +399,6 @@ func (t *task) Checkpoint(ctx context.Context, opts ...CheckpointTaskOpts) (Imag
|
||||
index := v1.Index{
|
||||
Annotations: make(map[string]string),
|
||||
}
|
||||
// make sure we clear the gc root labels reguardless of success
|
||||
var clearRoots []ocispec.Descriptor
|
||||
defer func() {
|
||||
for _, r := range append(index.Manifests, clearRoots...) {
|
||||
if err := clearRootGCLabel(ctx, t.client, r); err != nil {
|
||||
log.G(ctx).WithError(err).WithField("dgst", r.Digest).Warnf("failed to remove root marker")
|
||||
}
|
||||
}
|
||||
}()
|
||||
if err := t.checkpointTask(ctx, &index, request); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -428,7 +417,6 @@ func (t *task) Checkpoint(ctx context.Context, opts ...CheckpointTaskOpts) (Imag
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
clearRoots = append(clearRoots, desc)
|
||||
im := images.Image{
|
||||
Name: i.Name,
|
||||
Target: desc,
|
||||
@ -544,9 +532,6 @@ func (t *task) checkpointTask(ctx context.Context, index *v1.Index, request *tas
|
||||
func (t *task) checkpointRWSnapshot(ctx context.Context, index *v1.Index, snapshotterName string, id string) error {
|
||||
opts := []diff.Opt{
|
||||
diff.WithReference(fmt.Sprintf("checkpoint-rw-%s", id)),
|
||||
diff.WithLabels(map[string]string{
|
||||
"containerd.io/gc.root": time.Now().UTC().Format(time.RFC3339),
|
||||
}),
|
||||
}
|
||||
rw, err := rootfs.Diff(ctx, id, t.client.SnapshotService(snapshotterName), t.client.DiffService(), opts...)
|
||||
if err != nil {
|
||||
@ -573,9 +558,7 @@ func (t *task) checkpointImage(ctx context.Context, index *v1.Index, image strin
|
||||
}
|
||||
|
||||
func (t *task) writeIndex(ctx context.Context, index *v1.Index) (d v1.Descriptor, err error) {
|
||||
labels := map[string]string{
|
||||
"containerd.io/gc.root": time.Now().UTC().Format(time.RFC3339),
|
||||
}
|
||||
labels := map[string]string{}
|
||||
for i, m := range index.Manifests {
|
||||
labels[fmt.Sprintf("containerd.io/gc.ref.content.%d", i)] = m.Digest.String()
|
||||
}
|
||||
@ -605,9 +588,3 @@ func writeContent(ctx context.Context, store content.Store, mediaType, ref strin
|
||||
Size: size,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func clearRootGCLabel(ctx context.Context, client *Client, desc ocispec.Descriptor) error {
|
||||
info := content.Info{Digest: desc.Digest}
|
||||
_, err := client.ContentStore().Update(ctx, info, "labels.containerd.io/gc.root")
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user