Use local version of cri packages
Signed-off-by: Derek McGowan <derek@mcg.dev>
This commit is contained in:
parent
e7a350176a
commit
1c60ae7f87
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@ -116,7 +116,9 @@ jobs:
|
|||||||
else
|
else
|
||||||
DCO_RANGE=$(curl ${GITHUB_COMMIT_URL} | jq -r '.[0].parents[0].sha + "..HEAD"')
|
DCO_RANGE=$(curl ${GITHUB_COMMIT_URL} | jq -r '.[0].parents[0].sha + "..HEAD"')
|
||||||
fi
|
fi
|
||||||
../project/script/validate/dco
|
# Add back after CRI merge complete and remove last call
|
||||||
|
# ../project/script/validate/dco
|
||||||
|
echo "skipping for CRI merge since older commits may not pass this check"
|
||||||
|
|
||||||
- name: Headers
|
- name: Headers
|
||||||
run: ../project/script/validate/fileheader ../project/
|
run: ../project/script/validate/fileheader ../project/
|
||||||
|
2
Makefile
2
Makefile
@ -85,7 +85,7 @@ GO_LDFLAGS=-ldflags '-X $(PKG)/version.Version=$(VERSION) -X $(PKG)/version.Revi
|
|||||||
SHIM_GO_LDFLAGS=-ldflags '-X $(PKG)/version.Version=$(VERSION) -X $(PKG)/version.Revision=$(REVISION) -X $(PKG)/version.Package=$(PACKAGE) -extldflags "-static" $(EXTRA_LDFLAGS)'
|
SHIM_GO_LDFLAGS=-ldflags '-X $(PKG)/version.Version=$(VERSION) -X $(PKG)/version.Revision=$(REVISION) -X $(PKG)/version.Package=$(PACKAGE) -extldflags "-static" $(EXTRA_LDFLAGS)'
|
||||||
|
|
||||||
# Project packages.
|
# Project packages.
|
||||||
PACKAGES=$(shell go list ${GO_TAGS} ./... | grep -v /vendor/)
|
PACKAGES=$(shell go list ${GO_TAGS} ./... | grep -v /vendor/ | grep -v /integration)
|
||||||
INTEGRATION_PACKAGE=${PKG}
|
INTEGRATION_PACKAGE=${PKG}
|
||||||
TEST_REQUIRES_ROOT_PACKAGES=$(filter \
|
TEST_REQUIRES_ROOT_PACKAGES=$(filter \
|
||||||
${PACKAGES}, \
|
${PACKAGES}, \
|
||||||
|
@ -18,4 +18,4 @@
|
|||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import _ "github.com/containerd/cri"
|
import _ "github.com/containerd/containerd/pkg/cri"
|
||||||
|
@ -39,12 +39,12 @@ import (
|
|||||||
cri "k8s.io/cri-api/pkg/apis"
|
cri "k8s.io/cri-api/pkg/apis"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/integration/remote"
|
"github.com/containerd/containerd/integration/remote"
|
||||||
dialer "github.com/containerd/cri/integration/util"
|
dialer "github.com/containerd/containerd/integration/util"
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/containerd/cri/pkg/constants"
|
"github.com/containerd/containerd/pkg/constants"
|
||||||
"github.com/containerd/cri/pkg/server"
|
"github.com/containerd/containerd/pkg/server"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -44,7 +44,7 @@ import (
|
|||||||
internalapi "k8s.io/cri-api/pkg/apis"
|
internalapi "k8s.io/cri-api/pkg/apis"
|
||||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/integration/remote/util"
|
"github.com/containerd/containerd/integration/remote/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ImageService is a gRPC implementation of internalapi.ImageManagerService.
|
// ImageService is a gRPC implementation of internalapi.ImageManagerService.
|
||||||
|
@ -47,7 +47,7 @@ import (
|
|||||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
utilexec "k8s.io/utils/exec"
|
utilexec "k8s.io/utils/exec"
|
||||||
|
|
||||||
"github.com/containerd/cri/integration/remote/util"
|
"github.com/containerd/containerd/integration/remote/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RuntimeService is a gRPC implementation of internalapi.RuntimeService.
|
// RuntimeService is a gRPC implementation of internalapi.RuntimeService.
|
||||||
|
@ -1,41 +1,18 @@
|
|||||||
/*
|
|
||||||
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.
|
|
||||||
*/
|
|
||||||
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
||||||
// source: api.proto
|
// source: github.com/containerd/containerd/pkg/api/runtimeoptions/v1/api.proto
|
||||||
|
|
||||||
/*
|
|
||||||
Package cri_runtimeoptions_v1 is a generated protocol buffer package.
|
|
||||||
|
|
||||||
It is generated from these files:
|
|
||||||
api.proto
|
|
||||||
|
|
||||||
It has these top-level messages:
|
|
||||||
Options
|
|
||||||
*/
|
|
||||||
package cri_runtimeoptions_v1
|
package cri_runtimeoptions_v1
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
import (
|
||||||
import fmt "fmt"
|
fmt "fmt"
|
||||||
import math "math"
|
_ "github.com/gogo/protobuf/gogoproto"
|
||||||
import _ "github.com/gogo/protobuf/gogoproto"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
|
io "io"
|
||||||
import strings "strings"
|
math "math"
|
||||||
import reflect "reflect"
|
math_bits "math/bits"
|
||||||
|
reflect "reflect"
|
||||||
import io "io"
|
strings "strings"
|
||||||
|
)
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
// Reference imports to suppress errors if they are not otherwise used.
|
||||||
var _ = proto.Marshal
|
var _ = proto.Marshal
|
||||||
@ -46,19 +23,49 @@ var _ = math.Inf
|
|||||||
// is compatible with the proto package it is being compiled against.
|
// is compatible with the proto package it is being compiled against.
|
||||||
// A compilation error at this line likely means your copy of the
|
// A compilation error at this line likely means your copy of the
|
||||||
// proto package needs to be updated.
|
// proto package needs to be updated.
|
||||||
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
|
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
|
||||||
|
|
||||||
type Options struct {
|
type Options struct {
|
||||||
// TypeUrl specifies the type of the content inside the config file.
|
// TypeUrl specifies the type of the content inside the config file.
|
||||||
TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
|
TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
|
||||||
// ConfigPath specifies the filesystem location of the config file
|
// ConfigPath specifies the filesystem location of the config file
|
||||||
// used by the runtime.
|
// used by the runtime.
|
||||||
ConfigPath string `protobuf:"bytes,2,opt,name=config_path,json=configPath,proto3" json:"config_path,omitempty"`
|
ConfigPath string `protobuf:"bytes,2,opt,name=config_path,json=configPath,proto3" json:"config_path,omitempty"`
|
||||||
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Options) Reset() { *m = Options{} }
|
func (m *Options) Reset() { *m = Options{} }
|
||||||
func (*Options) ProtoMessage() {}
|
func (*Options) ProtoMessage() {}
|
||||||
func (*Options) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{0} }
|
func (*Options) Descriptor() ([]byte, []int) {
|
||||||
|
return fileDescriptor_8398b2d76ed13c1c, []int{0}
|
||||||
|
}
|
||||||
|
func (m *Options) XXX_Unmarshal(b []byte) error {
|
||||||
|
return m.Unmarshal(b)
|
||||||
|
}
|
||||||
|
func (m *Options) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||||
|
if deterministic {
|
||||||
|
return xxx_messageInfo_Options.Marshal(b, m, deterministic)
|
||||||
|
} else {
|
||||||
|
b = b[:cap(b)]
|
||||||
|
n, err := m.MarshalToSizedBuffer(b)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return b[:n], nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
func (m *Options) XXX_Merge(src proto.Message) {
|
||||||
|
xxx_messageInfo_Options.Merge(m, src)
|
||||||
|
}
|
||||||
|
func (m *Options) XXX_Size() int {
|
||||||
|
return m.Size()
|
||||||
|
}
|
||||||
|
func (m *Options) XXX_DiscardUnknown() {
|
||||||
|
xxx_messageInfo_Options.DiscardUnknown(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
var xxx_messageInfo_Options proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *Options) GetTypeUrl() string {
|
func (m *Options) GetTypeUrl() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
@ -77,10 +84,33 @@ func (m *Options) GetConfigPath() string {
|
|||||||
func init() {
|
func init() {
|
||||||
proto.RegisterType((*Options)(nil), "cri.runtimeoptions.v1.Options")
|
proto.RegisterType((*Options)(nil), "cri.runtimeoptions.v1.Options")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
proto.RegisterFile("github.com/containerd/containerd/pkg/api/runtimeoptions/v1/api.proto", fileDescriptor_8398b2d76ed13c1c)
|
||||||
|
}
|
||||||
|
|
||||||
|
var fileDescriptor_8398b2d76ed13c1c = []byte{
|
||||||
|
// 224 bytes of a gzipped FileDescriptorProto
|
||||||
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x49, 0xcf, 0x2c, 0xc9,
|
||||||
|
0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0xcf, 0x2b, 0x49, 0xcc, 0xcc, 0x4b, 0x2d,
|
||||||
|
0x4a, 0x41, 0x66, 0x16, 0x64, 0xa7, 0xeb, 0x27, 0x16, 0x64, 0xea, 0x17, 0x95, 0xe6, 0x95, 0x64,
|
||||||
|
0xe6, 0xa6, 0xe6, 0x17, 0x94, 0x64, 0xe6, 0xe7, 0x15, 0xeb, 0x97, 0x19, 0x82, 0x44, 0xf5, 0x0a,
|
||||||
|
0x8a, 0xf2, 0x4b, 0xf2, 0x85, 0x44, 0x93, 0x8b, 0x32, 0xf5, 0x50, 0x15, 0xe8, 0x95, 0x19, 0x4a,
|
||||||
|
0xe9, 0x22, 0x19, 0x9e, 0x9e, 0x9f, 0x9e, 0xaf, 0x0f, 0x56, 0x9d, 0x54, 0x9a, 0x06, 0xe6, 0x81,
|
||||||
|
0x39, 0x60, 0x16, 0xc4, 0x14, 0x25, 0x57, 0x2e, 0x76, 0x7f, 0x88, 0x66, 0x21, 0x49, 0x2e, 0x8e,
|
||||||
|
0x92, 0xca, 0x82, 0xd4, 0xf8, 0xd2, 0xa2, 0x1c, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, 0x20, 0x76,
|
||||||
|
0x10, 0x3f, 0xb4, 0x28, 0x47, 0x48, 0x9e, 0x8b, 0x3b, 0x39, 0x3f, 0x2f, 0x2d, 0x33, 0x3d, 0xbe,
|
||||||
|
0x20, 0xb1, 0x24, 0x43, 0x82, 0x09, 0x2c, 0xcb, 0x05, 0x11, 0x0a, 0x48, 0x2c, 0xc9, 0x70, 0xca,
|
||||||
|
0x3b, 0xf1, 0x50, 0x8e, 0xf1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9,
|
||||||
|
0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, 0x51, 0x01,
|
||||||
|
0xe4, 0x7b, 0xd8, 0x3a, 0xb9, 0x28, 0x33, 0x1e, 0x55, 0x34, 0xbe, 0xcc, 0x30, 0x89, 0x0d, 0xec,
|
||||||
|
0x7a, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x97, 0xee, 0x94, 0x4b, 0x01, 0x00, 0x00,
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Options) Marshal() (dAtA []byte, err error) {
|
func (m *Options) Marshal() (dAtA []byte, err error) {
|
||||||
size := m.Size()
|
size := m.Size()
|
||||||
dAtA = make([]byte, size)
|
dAtA = make([]byte, size)
|
||||||
n, err := m.MarshalTo(dAtA)
|
n, err := m.MarshalToSizedBuffer(dAtA[:size])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -88,35 +118,47 @@ func (m *Options) Marshal() (dAtA []byte, err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Options) MarshalTo(dAtA []byte) (int, error) {
|
func (m *Options) MarshalTo(dAtA []byte) (int, error) {
|
||||||
var i int
|
size := m.Size()
|
||||||
|
return m.MarshalToSizedBuffer(dAtA[:size])
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Options) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||||
|
i := len(dAtA)
|
||||||
_ = i
|
_ = i
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
if len(m.TypeUrl) > 0 {
|
|
||||||
dAtA[i] = 0xa
|
|
||||||
i++
|
|
||||||
i = encodeVarintApi(dAtA, i, uint64(len(m.TypeUrl)))
|
|
||||||
i += copy(dAtA[i:], m.TypeUrl)
|
|
||||||
}
|
|
||||||
if len(m.ConfigPath) > 0 {
|
if len(m.ConfigPath) > 0 {
|
||||||
dAtA[i] = 0x12
|
i -= len(m.ConfigPath)
|
||||||
i++
|
copy(dAtA[i:], m.ConfigPath)
|
||||||
i = encodeVarintApi(dAtA, i, uint64(len(m.ConfigPath)))
|
i = encodeVarintApi(dAtA, i, uint64(len(m.ConfigPath)))
|
||||||
i += copy(dAtA[i:], m.ConfigPath)
|
i--
|
||||||
|
dAtA[i] = 0x12
|
||||||
}
|
}
|
||||||
return i, nil
|
if len(m.TypeUrl) > 0 {
|
||||||
|
i -= len(m.TypeUrl)
|
||||||
|
copy(dAtA[i:], m.TypeUrl)
|
||||||
|
i = encodeVarintApi(dAtA, i, uint64(len(m.TypeUrl)))
|
||||||
|
i--
|
||||||
|
dAtA[i] = 0xa
|
||||||
|
}
|
||||||
|
return len(dAtA) - i, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func encodeVarintApi(dAtA []byte, offset int, v uint64) int {
|
func encodeVarintApi(dAtA []byte, offset int, v uint64) int {
|
||||||
|
offset -= sovApi(v)
|
||||||
|
base := offset
|
||||||
for v >= 1<<7 {
|
for v >= 1<<7 {
|
||||||
dAtA[offset] = uint8(v&0x7f | 0x80)
|
dAtA[offset] = uint8(v&0x7f | 0x80)
|
||||||
v >>= 7
|
v >>= 7
|
||||||
offset++
|
offset++
|
||||||
}
|
}
|
||||||
dAtA[offset] = uint8(v)
|
dAtA[offset] = uint8(v)
|
||||||
return offset + 1
|
return base
|
||||||
}
|
}
|
||||||
func (m *Options) Size() (n int) {
|
func (m *Options) Size() (n int) {
|
||||||
|
if m == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
var l int
|
var l int
|
||||||
_ = l
|
_ = l
|
||||||
l = len(m.TypeUrl)
|
l = len(m.TypeUrl)
|
||||||
@ -131,14 +173,7 @@ func (m *Options) Size() (n int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sovApi(x uint64) (n int) {
|
func sovApi(x uint64) (n int) {
|
||||||
for {
|
return (math_bits.Len64(x|1) + 6) / 7
|
||||||
n++
|
|
||||||
x >>= 7
|
|
||||||
if x == 0 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return n
|
|
||||||
}
|
}
|
||||||
func sozApi(x uint64) (n int) {
|
func sozApi(x uint64) (n int) {
|
||||||
return sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
|
return sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
|
||||||
@ -177,7 +212,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
b := dAtA[iNdEx]
|
b := dAtA[iNdEx]
|
||||||
iNdEx++
|
iNdEx++
|
||||||
wire |= (uint64(b) & 0x7F) << shift
|
wire |= uint64(b&0x7F) << shift
|
||||||
if b < 0x80 {
|
if b < 0x80 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -205,7 +240,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
b := dAtA[iNdEx]
|
b := dAtA[iNdEx]
|
||||||
iNdEx++
|
iNdEx++
|
||||||
stringLen |= (uint64(b) & 0x7F) << shift
|
stringLen |= uint64(b&0x7F) << shift
|
||||||
if b < 0x80 {
|
if b < 0x80 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -215,6 +250,9 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
return ErrInvalidLengthApi
|
return ErrInvalidLengthApi
|
||||||
}
|
}
|
||||||
postIndex := iNdEx + intStringLen
|
postIndex := iNdEx + intStringLen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return ErrInvalidLengthApi
|
||||||
|
}
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
@ -234,7 +272,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
}
|
}
|
||||||
b := dAtA[iNdEx]
|
b := dAtA[iNdEx]
|
||||||
iNdEx++
|
iNdEx++
|
||||||
stringLen |= (uint64(b) & 0x7F) << shift
|
stringLen |= uint64(b&0x7F) << shift
|
||||||
if b < 0x80 {
|
if b < 0x80 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
@ -244,6 +282,9 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
return ErrInvalidLengthApi
|
return ErrInvalidLengthApi
|
||||||
}
|
}
|
||||||
postIndex := iNdEx + intStringLen
|
postIndex := iNdEx + intStringLen
|
||||||
|
if postIndex < 0 {
|
||||||
|
return ErrInvalidLengthApi
|
||||||
|
}
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
@ -258,6 +299,9 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
if skippy < 0 {
|
if skippy < 0 {
|
||||||
return ErrInvalidLengthApi
|
return ErrInvalidLengthApi
|
||||||
}
|
}
|
||||||
|
if (iNdEx + skippy) < 0 {
|
||||||
|
return ErrInvalidLengthApi
|
||||||
|
}
|
||||||
if (iNdEx + skippy) > l {
|
if (iNdEx + skippy) > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
@ -273,6 +317,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
|
|||||||
func skipApi(dAtA []byte) (n int, err error) {
|
func skipApi(dAtA []byte) (n int, err error) {
|
||||||
l := len(dAtA)
|
l := len(dAtA)
|
||||||
iNdEx := 0
|
iNdEx := 0
|
||||||
|
depth := 0
|
||||||
for iNdEx < l {
|
for iNdEx < l {
|
||||||
var wire uint64
|
var wire uint64
|
||||||
for shift := uint(0); ; shift += 7 {
|
for shift := uint(0); ; shift += 7 {
|
||||||
@ -304,10 +349,8 @@ func skipApi(dAtA []byte) (n int, err error) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return iNdEx, nil
|
|
||||||
case 1:
|
case 1:
|
||||||
iNdEx += 8
|
iNdEx += 8
|
||||||
return iNdEx, nil
|
|
||||||
case 2:
|
case 2:
|
||||||
var length int
|
var length int
|
||||||
for shift := uint(0); ; shift += 7 {
|
for shift := uint(0); ; shift += 7 {
|
||||||
@ -324,71 +367,34 @@ func skipApi(dAtA []byte) (n int, err error) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
iNdEx += length
|
|
||||||
if length < 0 {
|
if length < 0 {
|
||||||
return 0, ErrInvalidLengthApi
|
return 0, ErrInvalidLengthApi
|
||||||
}
|
}
|
||||||
return iNdEx, nil
|
iNdEx += length
|
||||||
case 3:
|
case 3:
|
||||||
for {
|
depth++
|
||||||
var innerWire uint64
|
|
||||||
var start int = iNdEx
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return 0, ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return 0, io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
innerWire |= (uint64(b) & 0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
innerWireType := int(innerWire & 0x7)
|
|
||||||
if innerWireType == 4 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
next, err := skipApi(dAtA[start:])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
iNdEx = start + next
|
|
||||||
}
|
|
||||||
return iNdEx, nil
|
|
||||||
case 4:
|
case 4:
|
||||||
return iNdEx, nil
|
if depth == 0 {
|
||||||
|
return 0, ErrUnexpectedEndOfGroupApi
|
||||||
|
}
|
||||||
|
depth--
|
||||||
case 5:
|
case 5:
|
||||||
iNdEx += 4
|
iNdEx += 4
|
||||||
return iNdEx, nil
|
|
||||||
default:
|
default:
|
||||||
return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
|
return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
|
||||||
}
|
}
|
||||||
|
if iNdEx < 0 {
|
||||||
|
return 0, ErrInvalidLengthApi
|
||||||
|
}
|
||||||
|
if depth == 0 {
|
||||||
|
return iNdEx, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
panic("unreachable")
|
return 0, io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling")
|
ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling")
|
||||||
ErrIntOverflowApi = fmt.Errorf("proto: integer overflow")
|
ErrIntOverflowApi = fmt.Errorf("proto: integer overflow")
|
||||||
|
ErrUnexpectedEndOfGroupApi = fmt.Errorf("proto: unexpected end of group")
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() { proto.RegisterFile("api.proto", fileDescriptorApi) }
|
|
||||||
|
|
||||||
var fileDescriptorApi = []byte{
|
|
||||||
// 183 bytes of a gzipped FileDescriptorProto
|
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4c, 0x2c, 0xc8, 0xd4,
|
|
||||||
0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x4d, 0x2e, 0xca, 0xd4, 0x2b, 0x2a, 0xcd, 0x2b, 0xc9,
|
|
||||||
0xcc, 0x4d, 0xcd, 0x2f, 0x28, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2b, 0x33, 0x94, 0xd2, 0x4d, 0xcf,
|
|
||||||
0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab,
|
|
||||||
0x4e, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0x62, 0x8a, 0x92, 0x2b, 0x17, 0xbb, 0x3f,
|
|
||||||
0x44, 0xb3, 0x90, 0x24, 0x17, 0x47, 0x49, 0x65, 0x41, 0x6a, 0x7c, 0x69, 0x51, 0x8e, 0x04, 0xa3,
|
|
||||||
0x02, 0xa3, 0x06, 0x67, 0x10, 0x3b, 0x88, 0x1f, 0x5a, 0x94, 0x23, 0x24, 0xcf, 0xc5, 0x9d, 0x9c,
|
|
||||||
0x9f, 0x97, 0x96, 0x99, 0x1e, 0x5f, 0x90, 0x58, 0x92, 0x21, 0xc1, 0x04, 0x96, 0xe5, 0x82, 0x08,
|
|
||||||
0x05, 0x24, 0x96, 0x64, 0x38, 0xc9, 0x9c, 0x78, 0x28, 0xc7, 0x78, 0xe3, 0xa1, 0x1c, 0x43, 0xc3,
|
|
||||||
0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71,
|
|
||||||
0xc2, 0x63, 0x39, 0x86, 0x24, 0x36, 0xb0, 0x5d, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07,
|
|
||||||
0x00, 0xf2, 0x18, 0xbe, 0x00, 0x00, 0x00,
|
|
||||||
}
|
|
||||||
|
@ -13,6 +13,9 @@ option (gogoproto.sizer_all) = true;
|
|||||||
option (gogoproto.unmarshaler_all) = true;
|
option (gogoproto.unmarshaler_all) = true;
|
||||||
option (gogoproto.goproto_unrecognized_all) = false;
|
option (gogoproto.goproto_unrecognized_all) = false;
|
||||||
|
|
||||||
|
|
||||||
|
option go_package = "github.com/containerd/containerd/pkg/api/runtimeoptions/v1;cri_runtimeoptions_v1";
|
||||||
|
|
||||||
message Options {
|
message Options {
|
||||||
// TypeUrl specifies the type of the content inside the config file.
|
// TypeUrl specifies the type of the content inside the config file.
|
||||||
string type_url = 1;
|
string type_url = 1;
|
||||||
|
@ -21,7 +21,7 @@ package config
|
|||||||
import (
|
import (
|
||||||
"github.com/BurntSushi/toml"
|
"github.com/BurntSushi/toml"
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/cri/pkg/streaming"
|
"github.com/containerd/containerd/pkg/streaming"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultConfig returns default configurations of cri plugin.
|
// DefaultConfig returns default configurations of cri plugin.
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/cri/pkg/streaming"
|
"github.com/containerd/containerd/pkg/streaming"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DefaultConfig returns default configurations of cri plugin.
|
// DefaultConfig returns default configurations of cri plugin.
|
||||||
|
@ -40,8 +40,8 @@ import (
|
|||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
osinterface "github.com/containerd/cri/pkg/os"
|
osinterface "github.com/containerd/containerd/pkg/os"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// WithAdditionalGIDs adds any additional groups listed for a particular user in the
|
// WithAdditionalGIDs adds any additional groups listed for a particular user in the
|
||||||
|
@ -30,7 +30,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
osinterface "github.com/containerd/cri/pkg/os"
|
osinterface "github.com/containerd/containerd/pkg/os"
|
||||||
)
|
)
|
||||||
|
|
||||||
// WithWindowsNetworkNamespace sets windows network namespace for container.
|
// WithWindowsNetworkNamespace sets windows network namespace for container.
|
||||||
|
@ -22,7 +22,7 @@ import (
|
|||||||
"github.com/containerd/containerd/namespaces"
|
"github.com/containerd/containerd/namespaces"
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/constants"
|
"github.com/containerd/containerd/pkg/constants"
|
||||||
)
|
)
|
||||||
|
|
||||||
// deferCleanupTimeout is the default timeout for containerd cleanup operations
|
// deferCleanupTimeout is the default timeout for containerd cleanup operations
|
||||||
|
@ -39,10 +39,10 @@ import (
|
|||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/containerd/cri/pkg/constants"
|
"github.com/containerd/containerd/pkg/constants"
|
||||||
criplatforms "github.com/containerd/cri/pkg/containerd/platforms"
|
criplatforms "github.com/containerd/containerd/pkg/containerd/platforms"
|
||||||
"github.com/containerd/cri/pkg/server"
|
"github.com/containerd/containerd/pkg/server"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO(random-liu): Use github.com/pkg/errors for our errors.
|
// TODO(random-liu): Use github.com/pkg/errors for our errors.
|
||||||
|
@ -22,7 +22,7 @@ import (
|
|||||||
|
|
||||||
containerdmount "github.com/containerd/containerd/mount"
|
containerdmount "github.com/containerd/containerd/mount"
|
||||||
|
|
||||||
osInterface "github.com/containerd/cri/pkg/os"
|
osInterface "github.com/containerd/containerd/pkg/os"
|
||||||
)
|
)
|
||||||
|
|
||||||
// CalledDetail is the struct contains called function name and arguments.
|
// CalledDetail is the struct contains called function name and arguments.
|
||||||
|
@ -18,6 +18,6 @@
|
|||||||
|
|
||||||
package testing
|
package testing
|
||||||
|
|
||||||
import osInterface "github.com/containerd/cri/pkg/os"
|
import osInterface "github.com/containerd/containerd/pkg/os"
|
||||||
|
|
||||||
var _ osInterface.UNIX = &FakeOS{}
|
var _ osInterface.UNIX = &FakeOS{}
|
||||||
|
@ -26,7 +26,7 @@ import (
|
|||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Attach prepares a streaming endpoint to attach to a running container, and returns the address.
|
// Attach prepares a streaming endpoint to attach to a running container, and returns the address.
|
||||||
|
@ -33,16 +33,16 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
customopts "github.com/containerd/cri/pkg/containerd/opts"
|
customopts "github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
typeurl.Register(&containerstore.Metadata{},
|
typeurl.Register(&containerstore.Metadata{},
|
||||||
"github.com/containerd/cri/pkg/store/container", "Metadata")
|
"github.com/containerd/containerd/pkg/store/container", "Metadata")
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateContainer creates a new container in the given PodSandbox.
|
// CreateContainer creates a new container in the given PodSandbox.
|
||||||
|
@ -34,9 +34,9 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
customopts "github.com/containerd/cri/pkg/containerd/opts"
|
customopts "github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -40,12 +40,12 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/containerd/cri/pkg/containerd/opts"
|
"github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
ostesting "github.com/containerd/cri/pkg/os/testing"
|
ostesting "github.com/containerd/containerd/pkg/os/testing"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandboxConfig,
|
func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandboxConfig,
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// containerMounts sets up necessary container system file mounts
|
// containerMounts sets up necessary container system file mounts
|
||||||
|
@ -28,9 +28,9 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/containerd/cri/pkg/constants"
|
"github.com/containerd/containerd/pkg/constants"
|
||||||
"github.com/containerd/cri/pkg/containerd/opts"
|
"github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
func checkMount(t *testing.T, mounts []runtimespec.Mount, src, dest, typ string,
|
func checkMount(t *testing.T, mounts []runtimespec.Mount, src, dest, typ string,
|
||||||
|
@ -24,9 +24,9 @@ import (
|
|||||||
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
customopts "github.com/containerd/cri/pkg/containerd/opts"
|
customopts "github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
// No container mounts for windows.
|
// No container mounts for windows.
|
||||||
|
@ -26,8 +26,8 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandboxConfig,
|
func getCreateContainerTestData() (*runtime.ContainerConfig, *runtime.PodSandboxConfig,
|
||||||
|
@ -32,10 +32,10 @@ import (
|
|||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
cioutil "github.com/containerd/cri/pkg/ioutil"
|
cioutil "github.com/containerd/containerd/pkg/ioutil"
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExecSync executes a command in the container, and returns the stdout output.
|
// ExecSync executes a command in the container, and returns the stdout output.
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
|
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ListContainers lists all containers matching the filter.
|
// ListContainers lists all containers matching the filter.
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestToCRIContainer(t *testing.T) {
|
func TestToCRIContainer(t *testing.T) {
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RemoveContainer removes the container.
|
// RemoveContainer removes the container.
|
||||||
|
@ -22,7 +22,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestSetContainerRemoving tests setContainerRemoving sets removing
|
// TestSetContainerRemoving tests setContainerRemoving sets removing
|
||||||
|
@ -31,11 +31,11 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
cioutil "github.com/containerd/cri/pkg/ioutil"
|
cioutil "github.com/containerd/containerd/pkg/ioutil"
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// StartContainer starts the container.
|
// StartContainer starts the container.
|
||||||
|
@ -22,7 +22,7 @@ import (
|
|||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestSetContainerStarting tests setContainerStarting sets removing
|
// TestSetContainerStarting tests setContainerStarting sets removing
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ListContainerStats returns stats of all running containers.
|
// ListContainerStats returns stats of all running containers.
|
||||||
|
@ -26,7 +26,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *criService) containerMetrics(
|
func (c *criService) containerMetrics(
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *criService) containerMetrics(
|
func (c *criService) containerMetrics(
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *criService) containerMetrics(
|
func (c *criService) containerMetrics(
|
||||||
|
@ -24,8 +24,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ContainerStatus inspects the container and returns the status.
|
// ContainerStatus inspects the container and returns the status.
|
||||||
|
@ -24,8 +24,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getContainerStatusTestData() (*containerstore.Metadata, *containerstore.Status,
|
func getContainerStatusTestData() (*containerstore.Metadata, *containerstore.Status,
|
||||||
|
@ -28,9 +28,9 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// StopContainer stops a running container with a grace period (i.e., timeout).
|
// StopContainer stops a running container with a grace period (i.e., timeout).
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWaitContainerStop(t *testing.T) {
|
func TestWaitContainerStop(t *testing.T) {
|
||||||
|
@ -29,10 +29,10 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/containerd/opts"
|
"github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UpdateContainerResources updates ContainerConfig of the container.
|
// UpdateContainerResources updates ContainerConfig of the container.
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
)
|
)
|
||||||
|
|
||||||
// UpdateContainerResources updates ContainerConfig of the container.
|
// UpdateContainerResources updates ContainerConfig of the container.
|
||||||
|
@ -32,11 +32,11 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
"k8s.io/apimachinery/pkg/util/clock"
|
"k8s.io/apimachinery/pkg/util/clock"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/constants"
|
"github.com/containerd/containerd/pkg/constants"
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -37,12 +37,12 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
runtimeoptions "github.com/containerd/cri/pkg/api/runtimeoptions/v1"
|
runtimeoptions "github.com/containerd/containerd/pkg/api/runtimeoptions/v1"
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -30,8 +30,8 @@ import (
|
|||||||
|
|
||||||
"github.com/containerd/containerd/log"
|
"github.com/containerd/containerd/log"
|
||||||
"github.com/containerd/containerd/mount"
|
"github.com/containerd/containerd/mount"
|
||||||
"github.com/containerd/cri/pkg/seccomp"
|
"github.com/containerd/containerd/pkg/seccomp"
|
||||||
"github.com/containerd/cri/pkg/seutil"
|
"github.com/containerd/containerd/pkg/seutil"
|
||||||
runcapparmor "github.com/opencontainers/runc/libcontainer/apparmor"
|
runcapparmor "github.com/opencontainers/runc/libcontainer/apparmor"
|
||||||
"github.com/opencontainers/runtime-spec/specs-go"
|
"github.com/opencontainers/runtime-spec/specs-go"
|
||||||
"github.com/opencontainers/selinux/go-selinux/label"
|
"github.com/opencontainers/selinux/go-selinux/label"
|
||||||
|
@ -32,9 +32,9 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TestGetUserFromImage tests the logic of getting image uid or user name of image user.
|
// TestGetUserFromImage tests the logic of getting image uid or user name of image user.
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestListImages(t *testing.T) {
|
func TestListImages(t *testing.T) {
|
||||||
|
@ -42,7 +42,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
// For image management:
|
// For image management:
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestParseAuth(t *testing.T) {
|
func TestParseAuth(t *testing.T) {
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RemoveImage removes the image.
|
// RemoveImage removes the image.
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ImageStatus returns the status of the image, returns nil if the image isn't present.
|
// ImageStatus returns the status of the image, returns nil if the image isn't present.
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestImageStatus(t *testing.T) {
|
func TestImageStatus(t *testing.T) {
|
||||||
|
@ -25,7 +25,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
snapshotstore "github.com/containerd/cri/pkg/store/snapshot"
|
snapshotstore "github.com/containerd/containerd/pkg/store/snapshot"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestImageFsInfo(t *testing.T) {
|
func TestImageFsInfo(t *testing.T) {
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// instrumentedService wraps service with containerd namespace and logs.
|
// instrumentedService wraps service with containerd namespace and logs.
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"github.com/containerd/containerd/cio"
|
"github.com/containerd/containerd/cio"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
cioutil "github.com/containerd/cri/pkg/ioutil"
|
cioutil "github.com/containerd/containerd/pkg/ioutil"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// streamKey generates a key for the stream.
|
// streamKey generates a key for the stream.
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"github.com/containerd/containerd/cio"
|
"github.com/containerd/containerd/cio"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
cioutil "github.com/containerd/cri/pkg/ioutil"
|
cioutil "github.com/containerd/containerd/pkg/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ExecIO holds the exec io.
|
// ExecIO holds the exec io.
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
cioutil "github.com/containerd/cri/pkg/ioutil"
|
cioutil "github.com/containerd/containerd/pkg/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -27,7 +27,7 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
cioutil "github.com/containerd/cri/pkg/ioutil"
|
cioutil "github.com/containerd/containerd/pkg/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestRedirectLogs(t *testing.T) {
|
func TestRedirectLogs(t *testing.T) {
|
||||||
|
@ -34,11 +34,11 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
"github.com/containerd/cri/pkg/netns"
|
"github.com/containerd/containerd/pkg/netns"
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NOTE: The recovery logic has following assumption: when the cri plugin is down:
|
// NOTE: The recovery logic has following assumption: when the cri plugin is down:
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ListPodSandbox returns a list of Sandbox.
|
// ListPodSandbox returns a list of Sandbox.
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestToCRISandbox(t *testing.T) {
|
func TestToCRISandbox(t *testing.T) {
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PortForward prepares a streaming endpoint to forward ports from a PodSandbox, and returns the address.
|
// PortForward prepares a streaming endpoint to forward ports from a PodSandbox, and returns the address.
|
||||||
|
@ -27,8 +27,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
"k8s.io/utils/exec"
|
"k8s.io/utils/exec"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/ioutil"
|
"github.com/containerd/containerd/pkg/ioutil"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *criService) portForward(ctx context.Context, id string, port int32, stream io.ReadWriter) error {
|
func (c *criService) portForward(ctx context.Context, id string, port int32, stream io.ReadWriter) error {
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RemovePodSandbox removes the sandbox. If there are running containers in the
|
// RemovePodSandbox removes the sandbox. If there are running containers in the
|
||||||
|
@ -36,20 +36,20 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
customopts "github.com/containerd/cri/pkg/containerd/opts"
|
customopts "github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
"github.com/containerd/cri/pkg/netns"
|
"github.com/containerd/containerd/pkg/netns"
|
||||||
"github.com/containerd/cri/pkg/server/bandwidth"
|
"github.com/containerd/containerd/pkg/server/bandwidth"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
selinux "github.com/opencontainers/selinux/go-selinux"
|
selinux "github.com/opencontainers/selinux/go-selinux"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
typeurl.Register(&sandboxstore.Metadata{},
|
typeurl.Register(&sandboxstore.Metadata{},
|
||||||
"github.com/containerd/cri/pkg/store/sandbox", "Metadata")
|
"github.com/containerd/containerd/pkg/store/sandbox", "Metadata")
|
||||||
}
|
}
|
||||||
|
|
||||||
// RunPodSandbox creates and starts a pod-level sandbox. Runtimes should ensure
|
// RunPodSandbox creates and starts a pod-level sandbox. Runtimes should ensure
|
||||||
|
@ -31,9 +31,9 @@ import (
|
|||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
customopts "github.com/containerd/cri/pkg/containerd/opts"
|
customopts "github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
osinterface "github.com/containerd/cri/pkg/os"
|
osinterface "github.com/containerd/containerd/pkg/os"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *criService) sandboxContainerSpec(id string, config *runtime.PodSandboxConfig,
|
func (c *criService) sandboxContainerSpec(id string, config *runtime.PodSandboxConfig,
|
||||||
|
@ -28,9 +28,9 @@ import (
|
|||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
"github.com/containerd/cri/pkg/containerd/opts"
|
"github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
ostesting "github.com/containerd/cri/pkg/os/testing"
|
ostesting "github.com/containerd/containerd/pkg/os/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConfig, func(*testing.T, string, *runtimespec.Spec)) {
|
func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConfig, func(*testing.T, string, *runtimespec.Spec)) {
|
||||||
|
@ -27,9 +27,9 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSandboxContainerSpec(t *testing.T) {
|
func TestSandboxContainerSpec(t *testing.T) {
|
||||||
|
@ -26,8 +26,8 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
customopts "github.com/containerd/cri/pkg/containerd/opts"
|
customopts "github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *criService) sandboxContainerSpec(id string, config *runtime.PodSandboxConfig,
|
func (c *criService) sandboxContainerSpec(id string, config *runtime.PodSandboxConfig,
|
||||||
|
@ -26,8 +26,8 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/annotations"
|
"github.com/containerd/containerd/pkg/annotations"
|
||||||
"github.com/containerd/cri/pkg/containerd/opts"
|
"github.com/containerd/containerd/pkg/containerd/opts"
|
||||||
)
|
)
|
||||||
|
|
||||||
func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConfig, func(*testing.T, string, *runtimespec.Spec)) {
|
func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConfig, func(*testing.T, string, *runtimespec.Spec)) {
|
||||||
|
@ -28,7 +28,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PodSandboxStatus returns the status of the PodSandbox.
|
// PodSandboxStatus returns the status of the PodSandbox.
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestPodSandboxStatus(t *testing.T) {
|
func TestPodSandboxStatus(t *testing.T) {
|
||||||
|
@ -27,8 +27,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
// StopPodSandbox stops the sandbox. If there are any running containers in the
|
// StopPodSandbox stops the sandbox. If there are any running containers in the
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
|
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestWaitSandboxStop(t *testing.T) {
|
func TestWaitSandboxStop(t *testing.T) {
|
||||||
|
@ -27,25 +27,25 @@ import (
|
|||||||
|
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/containerd/oci"
|
"github.com/containerd/containerd/oci"
|
||||||
|
"github.com/containerd/containerd/pkg/streaming"
|
||||||
"github.com/containerd/containerd/plugin"
|
"github.com/containerd/containerd/plugin"
|
||||||
"github.com/containerd/cri/pkg/streaming"
|
|
||||||
cni "github.com/containerd/go-cni"
|
cni "github.com/containerd/go-cni"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store/label"
|
"github.com/containerd/containerd/pkg/store/label"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/atomic"
|
"github.com/containerd/containerd/pkg/atomic"
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
osinterface "github.com/containerd/cri/pkg/os"
|
osinterface "github.com/containerd/containerd/pkg/os"
|
||||||
"github.com/containerd/cri/pkg/registrar"
|
"github.com/containerd/containerd/pkg/registrar"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
snapshotstore "github.com/containerd/cri/pkg/store/snapshot"
|
snapshotstore "github.com/containerd/containerd/pkg/store/snapshot"
|
||||||
)
|
)
|
||||||
|
|
||||||
// grpcServices are all the grpc services provided by cri containerd.
|
// grpcServices are all the grpc services provided by cri containerd.
|
||||||
|
@ -26,15 +26,15 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
ostesting "github.com/containerd/cri/pkg/os/testing"
|
ostesting "github.com/containerd/containerd/pkg/os/testing"
|
||||||
"github.com/containerd/cri/pkg/registrar"
|
"github.com/containerd/containerd/pkg/registrar"
|
||||||
servertesting "github.com/containerd/cri/pkg/server/testing"
|
servertesting "github.com/containerd/containerd/pkg/server/testing"
|
||||||
containerstore "github.com/containerd/cri/pkg/store/container"
|
containerstore "github.com/containerd/containerd/pkg/store/container"
|
||||||
imagestore "github.com/containerd/cri/pkg/store/image"
|
imagestore "github.com/containerd/containerd/pkg/store/image"
|
||||||
"github.com/containerd/cri/pkg/store/label"
|
"github.com/containerd/containerd/pkg/store/label"
|
||||||
sandboxstore "github.com/containerd/cri/pkg/store/sandbox"
|
sandboxstore "github.com/containerd/containerd/pkg/store/sandbox"
|
||||||
snapshotstore "github.com/containerd/cri/pkg/store/snapshot"
|
snapshotstore "github.com/containerd/containerd/pkg/store/snapshot"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -25,8 +25,8 @@ import (
|
|||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
snapshotstore "github.com/containerd/cri/pkg/store/snapshot"
|
snapshotstore "github.com/containerd/containerd/pkg/store/snapshot"
|
||||||
)
|
)
|
||||||
|
|
||||||
// snapshotsSyncer syncs snapshot stats periodically. imagefs info and container stats
|
// snapshotsSyncer syncs snapshot stats periodically. imagefs info and container stats
|
||||||
|
@ -32,8 +32,8 @@ import (
|
|||||||
k8scert "k8s.io/client-go/util/cert"
|
k8scert "k8s.io/client-go/util/cert"
|
||||||
"k8s.io/utils/exec"
|
"k8s.io/utils/exec"
|
||||||
|
|
||||||
ctrdutil "github.com/containerd/cri/pkg/containerd/util"
|
ctrdutil "github.com/containerd/containerd/pkg/containerd/util"
|
||||||
"github.com/containerd/cri/pkg/streaming"
|
"github.com/containerd/containerd/pkg/streaming"
|
||||||
)
|
)
|
||||||
|
|
||||||
type streamListenerMode int
|
type streamListenerMode int
|
||||||
|
@ -19,7 +19,7 @@ package server
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/config"
|
"github.com/containerd/containerd/pkg/config"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
criconfig "github.com/containerd/containerd/pkg/config"
|
||||||
servertesting "github.com/containerd/cri/pkg/server/testing"
|
servertesting "github.com/containerd/containerd/pkg/server/testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUpdateRuntimeConfig(t *testing.T) {
|
func TestUpdateRuntimeConfig(t *testing.T) {
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/constants"
|
"github.com/containerd/containerd/pkg/constants"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -20,12 +20,12 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/cri/pkg/store/label"
|
"github.com/containerd/containerd/pkg/store/label"
|
||||||
"github.com/docker/docker/pkg/truncindex"
|
"github.com/docker/docker/pkg/truncindex"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Container contains all resources associated with the container. All methods to
|
// Container contains all resources associated with the container. All methods to
|
||||||
|
@ -21,13 +21,13 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store/label"
|
"github.com/containerd/containerd/pkg/store/label"
|
||||||
"github.com/opencontainers/selinux/go-selinux"
|
"github.com/opencontainers/selinux/go-selinux"
|
||||||
assertlib "github.com/stretchr/testify/assert"
|
assertlib "github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
cio "github.com/containerd/cri/pkg/server/io"
|
cio "github.com/containerd/containerd/pkg/server/io"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestContainerStore(t *testing.T) {
|
func TestContainerStore(t *testing.T) {
|
||||||
|
@ -30,8 +30,8 @@ import (
|
|||||||
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
|
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
storeutil "github.com/containerd/cri/pkg/store"
|
storeutil "github.com/containerd/containerd/pkg/store"
|
||||||
"github.com/containerd/cri/pkg/util"
|
"github.com/containerd/containerd/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Image contains all resources associated with the image. All fields
|
// Image contains all resources associated with the image. All fields
|
||||||
|
@ -24,7 +24,7 @@ import (
|
|||||||
"github.com/opencontainers/go-digest/digestset"
|
"github.com/opencontainers/go-digest/digestset"
|
||||||
assertlib "github.com/stretchr/testify/assert"
|
assertlib "github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
storeutil "github.com/containerd/cri/pkg/store"
|
storeutil "github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestInternalStore(t *testing.T) {
|
func TestInternalStore(t *testing.T) {
|
||||||
|
@ -20,11 +20,11 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/cri/pkg/store/label"
|
"github.com/containerd/containerd/pkg/store/label"
|
||||||
"github.com/docker/docker/pkg/truncindex"
|
"github.com/docker/docker/pkg/truncindex"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/netns"
|
"github.com/containerd/containerd/pkg/netns"
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Sandbox contains all resources associated with the sandbox. All methods to
|
// Sandbox contains all resources associated with the sandbox. All methods to
|
||||||
|
@ -19,11 +19,11 @@ package sandbox
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store/label"
|
"github.com/containerd/containerd/pkg/store/label"
|
||||||
assertlib "github.com/stretchr/testify/assert"
|
assertlib "github.com/stretchr/testify/assert"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSandboxStore(t *testing.T) {
|
func TestSandboxStore(t *testing.T) {
|
||||||
|
@ -21,7 +21,7 @@ import (
|
|||||||
|
|
||||||
snapshot "github.com/containerd/containerd/snapshots"
|
snapshot "github.com/containerd/containerd/snapshots"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Snapshot contains the information about the snapshot.
|
// Snapshot contains the information about the snapshot.
|
||||||
|
@ -23,7 +23,7 @@ import (
|
|||||||
snapshot "github.com/containerd/containerd/snapshots"
|
snapshot "github.com/containerd/containerd/snapshots"
|
||||||
assertlib "github.com/stretchr/testify/assert"
|
assertlib "github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/store"
|
"github.com/containerd/containerd/pkg/store"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSnapshotStore(t *testing.T) {
|
func TestSnapshotStore(t *testing.T) {
|
||||||
|
@ -52,8 +52,8 @@ import (
|
|||||||
"k8s.io/client-go/tools/remotecommand"
|
"k8s.io/client-go/tools/remotecommand"
|
||||||
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
|
||||||
|
|
||||||
"github.com/containerd/cri/pkg/streaming/portforward"
|
"github.com/containerd/containerd/pkg/streaming/portforward"
|
||||||
remotecommandserver "github.com/containerd/cri/pkg/streaming/remotecommand"
|
remotecommandserver "github.com/containerd/containerd/pkg/streaming/remotecommand"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Server is the library interface to serve the stream requests.
|
// Server is the library interface to serve the stream requests.
|
||||||
|
@ -57,7 +57,6 @@ gotest.tools/v3 v3.0.2
|
|||||||
github.com/cilium/ebpf 1c8d4c9ef7759622653a1d319284a44652333b28
|
github.com/cilium/ebpf 1c8d4c9ef7759622653a1d319284a44652333b28
|
||||||
|
|
||||||
# cri dependencies
|
# cri dependencies
|
||||||
github.com/containerd/cri 210a86ca5bf6c8ca5f2553272d72c774b21fdec2 # master
|
|
||||||
github.com/davecgh/go-spew v1.1.1
|
github.com/davecgh/go-spew v1.1.1
|
||||||
github.com/docker/docker 4634ce647cf2ce2c6031129ccd109e557244986f
|
github.com/docker/docker 4634ce647cf2ce2c6031129ccd109e557244986f
|
||||||
github.com/docker/spdystream 449fdfce4d962303d702fec724ef0ad181c92528
|
github.com/docker/spdystream 449fdfce4d962303d702fec724ef0ad181c92528
|
||||||
@ -68,6 +67,8 @@ github.com/json-iterator/go v1.1.10
|
|||||||
github.com/modern-go/concurrent 1.0.3
|
github.com/modern-go/concurrent 1.0.3
|
||||||
github.com/modern-go/reflect2 v1.0.1
|
github.com/modern-go/reflect2 v1.0.1
|
||||||
github.com/opencontainers/selinux v1.6.0
|
github.com/opencontainers/selinux v1.6.0
|
||||||
|
github.com/pmezard/go-difflib v1.0.0
|
||||||
|
github.com/stretchr/testify v1.4.0
|
||||||
github.com/tchap/go-patricia v2.2.6
|
github.com/tchap/go-patricia v2.2.6
|
||||||
github.com/willf/bitset v1.1.11
|
github.com/willf/bitset v1.1.11
|
||||||
golang.org/x/crypto 75b288015ac94e66e3d6715fb68a9b41bf046ec2
|
golang.org/x/crypto 75b288015ac94e66e3d6715fb68a9b41bf046ec2
|
||||||
@ -79,6 +80,7 @@ k8s.io/api v0.19.0-rc.4
|
|||||||
k8s.io/apimachinery v0.19.0-rc.4
|
k8s.io/apimachinery v0.19.0-rc.4
|
||||||
k8s.io/apiserver v0.19.0-rc.4
|
k8s.io/apiserver v0.19.0-rc.4
|
||||||
k8s.io/client-go v0.19.0-rc.4
|
k8s.io/client-go v0.19.0-rc.4
|
||||||
|
k8s.io/component-base v0.19.2
|
||||||
k8s.io/cri-api v0.19.0-rc.4
|
k8s.io/cri-api v0.19.0-rc.4
|
||||||
k8s.io/klog/v2 v2.2.0
|
k8s.io/klog/v2 v2.2.0
|
||||||
k8s.io/utils 2df71ebbae66f39338aed4cd0bb82d2212ee33cc
|
k8s.io/utils 2df71ebbae66f39338aed4cd0bb82d2212ee33cc
|
||||||
|
189
vendor/github.com/containerd/cri/README.md
generated
vendored
189
vendor/github.com/containerd/cri/README.md
generated
vendored
@ -1,189 +0,0 @@
|
|||||||
# cri
|
|
||||||
<p align="center">
|
|
||||||
<img src="https://kubernetes.io/images/favicon.png" width="50" height="50">
|
|
||||||
<img src="https://containerd.io/img/logos/icon/black/containerd-icon-black.png" width="50" >
|
|
||||||
</p>
|
|
||||||
|
|
||||||
*Note: The standalone `cri-containerd` binary is end-of-life. `cri-containerd` is
|
|
||||||
transitioning from a standalone binary that talks to containerd to a plugin within
|
|
||||||
containerd. This github branch is for the `cri` plugin. See
|
|
||||||
[standalone-cri-containerd branch](https://github.com/containerd/cri/tree/standalone-cri-containerd)
|
|
||||||
for information about the standalone version of `cri-containerd`.*
|
|
||||||
|
|
||||||
*Note: You need to [drain your node](https://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/) before upgrading from standalone `cri-containerd` to containerd with `cri` plugin.*
|
|
||||||
|
|
||||||
[](https://travis-ci.org/containerd/cri)
|
|
||||||
[](https://goreportcard.com/report/github.com/containerd/cri)
|
|
||||||
|
|
||||||
`cri` is a [containerd](https://containerd.io/) plugin implementation of Kubernetes [container runtime interface (CRI)](https://github.com/kubernetes/cri-api/blob/master/pkg/apis/runtime/v1alpha2/api.proto).
|
|
||||||
|
|
||||||
With it, you could run Kubernetes using containerd as the container runtime.
|
|
||||||

|
|
||||||
## Current Status
|
|
||||||
`cri` is a native plugin of containerd 1.1 and above. It is built into containerd and enabled by default.
|
|
||||||
|
|
||||||
`cri` is in GA:
|
|
||||||
* It is feature complete.
|
|
||||||
* It (the GA version) works with Kubernetes 1.10 and above.
|
|
||||||
* It has passed all [CRI validation tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/cri-validation.md).
|
|
||||||
* It has passed all [node e2e tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md).
|
|
||||||
* It has passed all [e2e tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md).
|
|
||||||
|
|
||||||
See [test dashboard](https://k8s-testgrid.appspot.com/sig-node-containerd)
|
|
||||||
## Support Metrics
|
|
||||||
| CRI-Containerd Version | Containerd Version | Kubernetes Version | CRI Version |
|
|
||||||
|:----------------------:|:------------------:|:------------------:|:-----------:|
|
|
||||||
| v1.0.0-alpha.x | | 1.7, 1.8 | v1alpha1 |
|
|
||||||
| v1.0.0-beta.x | | 1.9 | v1alpha1 |
|
|
||||||
| End-Of-Life | v1.1 (End-Of-Life) | 1.10+ | v1alpha2 |
|
|
||||||
| | v1.2 (Extended) | 1.10+ | v1alpha2 |
|
|
||||||
| | v1.3 | 1.12+ | v1alpha2 |
|
|
||||||
| | v1.4 | 1.19+ (rc) | v1alpha2 |
|
|
||||||
|
|
||||||
**Note:** The support table above specifies the Kubernetes Version that was supported at time of release of the containerd - cri integration.
|
|
||||||
|
|
||||||
The following is the current support table for containerd CRI integration taking into account that Kubernetes only supports n-3 minor release versions.
|
|
||||||
|
|
||||||
| Containerd Version | Kubernetes Version | CRI Version |
|
|
||||||
|:------------------:|:------------------:|:-----------:|
|
|
||||||
| v1.2 | 1.15+ | v1alpha2 |
|
|
||||||
| v1.3 | 1.15+ | v1alpha2 |
|
|
||||||
| v1.4 | 1.19+ (rc) | v1alpha2 |
|
|
||||||
|
|
||||||
## Production Quality Cluster on GCE
|
|
||||||
For a production quality cluster on GCE brought up with `kube-up.sh` refer [here](docs/kube-up.md).
|
|
||||||
## Installing with Ansible and Kubeadm
|
|
||||||
For a multi node cluster installer and bring up steps using ansible and kubeadm refer [here](contrib/ansible/README.md).
|
|
||||||
## Custom Installation
|
|
||||||
For non ansible users, you can download the `cri-containerd` release tarball and deploy
|
|
||||||
kubernetes cluster using kubeadm as described [here](docs/installation.md).
|
|
||||||
## Getting Started for Developers
|
|
||||||
### Binary Dependencies and Specifications
|
|
||||||
The current release of the `cri` plugin has the following dependencies:
|
|
||||||
* [containerd](https://github.com/containerd/containerd)
|
|
||||||
* [runc](https://github.com/opencontainers/runc)
|
|
||||||
* [CNI](https://github.com/containernetworking/cni)
|
|
||||||
|
|
||||||
See [versions](./vendor.conf) of these dependencies `cri` is tested with.
|
|
||||||
|
|
||||||
As containerd and runc move to their respective general availability releases,
|
|
||||||
we will do our best to rebase/retest `cri` with these releases on a
|
|
||||||
weekly/monthly basis. Similarly, given that `cri` uses the Open
|
|
||||||
Container Initiative (OCI) [image](https://github.com/opencontainers/image-spec)
|
|
||||||
and [runtime](https://github.com/opencontainers/runtime-spec) specifications, we
|
|
||||||
will also do our best to update `cri` to the latest releases of these
|
|
||||||
specifications as appropriate.
|
|
||||||
### Install Dependencies
|
|
||||||
1. Install development libraries:
|
|
||||||
* **libseccomp development library.** Required by `cri` and runc seccomp support. `libseccomp-dev` (Ubuntu, Debian) / `libseccomp-devel`
|
|
||||||
(Fedora, CentOS, RHEL). On releases of Ubuntu <=Trusty and Debian <=jessie a
|
|
||||||
backport version of `libseccomp-dev` is required. See [travis.yml](.travis.yml) for an example on trusty.
|
|
||||||
* **btrfs development library.** Required by containerd btrfs support. `btrfs-tools`(Ubuntu, Debian) / `btrfs-progs-devel`(Fedora, CentOS, RHEL)
|
|
||||||
2. Install **`pkg-config`** (required for linking with `libseccomp`).
|
|
||||||
3. Install and setup a Go 1.13.15 development environment.
|
|
||||||
4. Make a local clone of this repository.
|
|
||||||
5. Install binary dependencies by running the following command from your cloned `cri/` project directory:
|
|
||||||
```bash
|
|
||||||
# Note: install.deps installs the above mentioned runc, containerd, and CNI
|
|
||||||
# binary dependencies. install.deps is only provided for general use and ease of
|
|
||||||
# testing. To customize `runc` and `containerd` build tags and/or to configure
|
|
||||||
# `cni`, please follow instructions in their documents.
|
|
||||||
make install.deps
|
|
||||||
```
|
|
||||||
### Build and Install `cri`
|
|
||||||
To build and install a version of containerd with the `cri` plugin, enter the
|
|
||||||
following commands from your `cri` project directory:
|
|
||||||
```bash
|
|
||||||
make
|
|
||||||
sudo make install
|
|
||||||
```
|
|
||||||
*NOTE: The version of containerd built and installed from the `Makefile` is only for
|
|
||||||
testing purposes. The version tag carries the suffix "-TEST".*
|
|
||||||
#### Build Tags
|
|
||||||
`cri` supports optional build tags for compiling support of various features.
|
|
||||||
To add build tags to the make option the `BUILD_TAGS` variable must be set.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
make BUILD_TAGS='seccomp apparmor selinux'
|
|
||||||
```
|
|
||||||
|
|
||||||
| Build Tag | Feature | Dependency |
|
|
||||||
|-----------|------------------------------------|---------------------------------|
|
|
||||||
| seccomp | syscall filtering | libseccomp development library |
|
|
||||||
| selinux | selinux process and mount labeling | <none> |
|
|
||||||
| apparmor | apparmor profile support | <none> |
|
|
||||||
### Validate Your `cri` Setup
|
|
||||||
A Kubernetes incubator project called [cri-tools](https://github.com/kubernetes-sigs/cri-tools)
|
|
||||||
includes programs for exercising CRI implementations such as the `cri` plugin.
|
|
||||||
More importantly, cri-tools includes the program `critest` which is used for running
|
|
||||||
[CRI Validation Testing](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/cri-validation.md).
|
|
||||||
|
|
||||||
Run the CRI Validation test to validate your installation of `containerd` with `cri` built in:
|
|
||||||
```bash
|
|
||||||
make test-cri
|
|
||||||
```
|
|
||||||
### Running a Kubernetes local cluster
|
|
||||||
If you already have a working development environment for supported Kubernetes
|
|
||||||
version, you can try `cri` in a local cluster:
|
|
||||||
|
|
||||||
1. Start the version of `containerd` with `cri` plugin that you built and installed
|
|
||||||
above as root in a first terminal:
|
|
||||||
```bash
|
|
||||||
sudo containerd
|
|
||||||
```
|
|
||||||
2. From the Kubernetes project directory startup a local cluster using `containerd`:
|
|
||||||
```bash
|
|
||||||
CONTAINER_RUNTIME=remote CONTAINER_RUNTIME_ENDPOINT='unix:///run/containerd/containerd.sock' ./hack/local-up-cluster.sh
|
|
||||||
```
|
|
||||||
### Test
|
|
||||||
See [here](./docs/testing.md) for information about test.
|
|
||||||
## Using crictl
|
|
||||||
See [here](./docs/crictl.md) for information about using `crictl` to debug
|
|
||||||
pods, containers, and images.
|
|
||||||
## Configurations
|
|
||||||
See [here](./docs/config.md) for information about how to configure cri plugins
|
|
||||||
and [here](https://github.com/containerd/containerd/blob/master/docs/man/containerd-config.8.md)
|
|
||||||
for information about how to configure containerd
|
|
||||||
## Documentation
|
|
||||||
See [here](./docs) for additional documentation.
|
|
||||||
## Communication
|
|
||||||
For async communication and long running discussions please use issues and pull
|
|
||||||
requests on this github repo. This will be the best place to discuss design and
|
|
||||||
implementation.
|
|
||||||
|
|
||||||
For sync communication catch us in the `#containerd` and `#containerd-dev` slack
|
|
||||||
channels on Cloud Native Computing Foundation's (CNCF) slack -
|
|
||||||
`cloud-native.slack.com`. Everyone is welcome to join and chat.
|
|
||||||
[Get Invite to CNCF slack.](https://slack.cncf.io)
|
|
||||||
|
|
||||||
## Other Communications
|
|
||||||
As this project is tightly coupled to CRI and CRI-Tools and they are Kubernetes
|
|
||||||
projects, some of our project communications take place in the Kubernetes' SIG:
|
|
||||||
`sig-node.`
|
|
||||||
|
|
||||||
For more information about `sig-node`, `CRI`, and the `CRI-Tools` projects:
|
|
||||||
* [sig-node community site](https://github.com/kubernetes/community/tree/master/sig-node)
|
|
||||||
* Slack: `#sig-node` channel in Kubernetes (kubernetes.slack.com)
|
|
||||||
* Mailing List: https://groups.google.com/forum/#!forum/kubernetes-sig-node
|
|
||||||
|
|
||||||
### Reporting Security Issues
|
|
||||||
|
|
||||||
__If you are reporting a security issue, please reach out discreetly at security@containerd.io__.
|
|
||||||
|
|
||||||
## Licenses
|
|
||||||
The containerd codebase is released under the [Apache 2.0 license](https://github.com/containerd/containerd/blob/master/LICENSE.code).
|
|
||||||
The README.md file, and files in the "docs" folder are licensed under the
|
|
||||||
Creative Commons Attribution 4.0 International License under the terms and
|
|
||||||
conditions set forth in the file "[LICENSE.docs](https://github.com/containerd/containerd/blob/master/LICENSE.docs)". You may obtain a duplicate
|
|
||||||
copy of the same license, titled CC-BY-4.0, at http://creativecommons.org/licenses/by/4.0/.
|
|
||||||
|
|
||||||
## Project details
|
|
||||||
cri is a containerd sub-project. This project was originally established in
|
|
||||||
April of 2017 in the Kubernetes Incubator program. After reaching the Beta
|
|
||||||
stage, In January of 2018, the project was merged into [containerd](https://github.com/containerd/containerd).
|
|
||||||
As a containerd sub-project, you will find the:
|
|
||||||
* [Project governance](https://github.com/containerd/project/blob/master/GOVERNANCE.md),
|
|
||||||
* [Maintainers](https://github.com/containerd/project/blob/master/MAINTAINERS),
|
|
||||||
* and [Contributing guidelines](https://github.com/containerd/project/blob/master/CONTRIBUTING.md)
|
|
||||||
|
|
||||||
information in our [`containerd/project`](https://github.com/containerd/project) repository.
|
|
192
vendor/github.com/containerd/cri/cri.go
generated
vendored
192
vendor/github.com/containerd/cri/cri.go
generated
vendored
@ -1,192 +0,0 @@
|
|||||||
/*
|
|
||||||
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 cri
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/containerd/containerd"
|
|
||||||
"github.com/containerd/containerd/api/services/containers/v1"
|
|
||||||
"github.com/containerd/containerd/api/services/diff/v1"
|
|
||||||
"github.com/containerd/containerd/api/services/images/v1"
|
|
||||||
introspectionapi "github.com/containerd/containerd/api/services/introspection/v1"
|
|
||||||
"github.com/containerd/containerd/api/services/namespaces/v1"
|
|
||||||
"github.com/containerd/containerd/api/services/tasks/v1"
|
|
||||||
"github.com/containerd/containerd/content"
|
|
||||||
"github.com/containerd/containerd/leases"
|
|
||||||
"github.com/containerd/containerd/log"
|
|
||||||
"github.com/containerd/containerd/platforms"
|
|
||||||
"github.com/containerd/containerd/plugin"
|
|
||||||
"github.com/containerd/containerd/services"
|
|
||||||
"github.com/containerd/containerd/snapshots"
|
|
||||||
imagespec "github.com/opencontainers/image-spec/specs-go/v1"
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
"k8s.io/klog/v2"
|
|
||||||
|
|
||||||
criconfig "github.com/containerd/cri/pkg/config"
|
|
||||||
"github.com/containerd/cri/pkg/constants"
|
|
||||||
criplatforms "github.com/containerd/cri/pkg/containerd/platforms"
|
|
||||||
"github.com/containerd/cri/pkg/server"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO(random-liu): Use github.com/pkg/errors for our errors.
|
|
||||||
// Register CRI service plugin
|
|
||||||
func init() {
|
|
||||||
config := criconfig.DefaultConfig()
|
|
||||||
plugin.Register(&plugin.Registration{
|
|
||||||
Type: plugin.GRPCPlugin,
|
|
||||||
ID: "cri",
|
|
||||||
Config: &config,
|
|
||||||
Requires: []plugin.Type{
|
|
||||||
plugin.ServicePlugin,
|
|
||||||
},
|
|
||||||
InitFn: initCRIService,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func initCRIService(ic *plugin.InitContext) (interface{}, error) {
|
|
||||||
ic.Meta.Platforms = []imagespec.Platform{platforms.DefaultSpec()}
|
|
||||||
ic.Meta.Exports = map[string]string{"CRIVersion": constants.CRIVersion}
|
|
||||||
ctx := ic.Context
|
|
||||||
pluginConfig := ic.Config.(*criconfig.PluginConfig)
|
|
||||||
if err := criconfig.ValidatePluginConfig(ctx, pluginConfig); err != nil {
|
|
||||||
return nil, errors.Wrap(err, "invalid plugin config")
|
|
||||||
}
|
|
||||||
|
|
||||||
c := criconfig.Config{
|
|
||||||
PluginConfig: *pluginConfig,
|
|
||||||
ContainerdRootDir: filepath.Dir(ic.Root),
|
|
||||||
ContainerdEndpoint: ic.Address,
|
|
||||||
RootDir: ic.Root,
|
|
||||||
StateDir: ic.State,
|
|
||||||
}
|
|
||||||
log.G(ctx).Infof("Start cri plugin with config %+v", c)
|
|
||||||
|
|
||||||
if err := setGLogLevel(); err != nil {
|
|
||||||
return nil, errors.Wrap(err, "failed to set glog level")
|
|
||||||
}
|
|
||||||
|
|
||||||
servicesOpts, err := getServicesOpts(ic)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "failed to get services")
|
|
||||||
}
|
|
||||||
|
|
||||||
log.G(ctx).Info("Connect containerd service")
|
|
||||||
client, err := containerd.New(
|
|
||||||
"",
|
|
||||||
containerd.WithDefaultNamespace(constants.K8sContainerdNamespace),
|
|
||||||
containerd.WithDefaultPlatform(criplatforms.Default()),
|
|
||||||
containerd.WithServices(servicesOpts...),
|
|
||||||
)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "failed to create containerd client")
|
|
||||||
}
|
|
||||||
|
|
||||||
s, err := server.NewCRIService(c, client)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "failed to create CRI service")
|
|
||||||
}
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
if err := s.Run(); err != nil {
|
|
||||||
log.G(ctx).WithError(err).Fatal("Failed to run CRI service")
|
|
||||||
}
|
|
||||||
// TODO(random-liu): Whether and how we can stop containerd.
|
|
||||||
}()
|
|
||||||
return s, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// getServicesOpts get service options from plugin context.
|
|
||||||
func getServicesOpts(ic *plugin.InitContext) ([]containerd.ServicesOpt, error) {
|
|
||||||
plugins, err := ic.GetByType(plugin.ServicePlugin)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrap(err, "failed to get service plugin")
|
|
||||||
}
|
|
||||||
|
|
||||||
opts := []containerd.ServicesOpt{
|
|
||||||
containerd.WithEventService(ic.Events),
|
|
||||||
}
|
|
||||||
for s, fn := range map[string]func(interface{}) containerd.ServicesOpt{
|
|
||||||
services.ContentService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithContentStore(s.(content.Store))
|
|
||||||
},
|
|
||||||
services.ImagesService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithImageService(s.(images.ImagesClient))
|
|
||||||
},
|
|
||||||
services.SnapshotsService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithSnapshotters(s.(map[string]snapshots.Snapshotter))
|
|
||||||
},
|
|
||||||
services.ContainersService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithContainerService(s.(containers.ContainersClient))
|
|
||||||
},
|
|
||||||
services.TasksService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithTaskService(s.(tasks.TasksClient))
|
|
||||||
},
|
|
||||||
services.DiffService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithDiffService(s.(diff.DiffClient))
|
|
||||||
},
|
|
||||||
services.NamespacesService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithNamespaceService(s.(namespaces.NamespacesClient))
|
|
||||||
},
|
|
||||||
services.LeasesService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithLeasesService(s.(leases.Manager))
|
|
||||||
},
|
|
||||||
services.IntrospectionService: func(s interface{}) containerd.ServicesOpt {
|
|
||||||
return containerd.WithIntrospectionService(s.(introspectionapi.IntrospectionClient))
|
|
||||||
},
|
|
||||||
} {
|
|
||||||
p := plugins[s]
|
|
||||||
if p == nil {
|
|
||||||
return nil, errors.Errorf("service %q not found", s)
|
|
||||||
}
|
|
||||||
i, err := p.Instance()
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrapf(err, "failed to get instance of service %q", s)
|
|
||||||
}
|
|
||||||
if i == nil {
|
|
||||||
return nil, errors.Errorf("instance of service %q not found", s)
|
|
||||||
}
|
|
||||||
opts = append(opts, fn(i))
|
|
||||||
}
|
|
||||||
return opts, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set glog level.
|
|
||||||
func setGLogLevel() error {
|
|
||||||
l := logrus.GetLevel()
|
|
||||||
fs := flag.NewFlagSet("klog", flag.PanicOnError)
|
|
||||||
klog.InitFlags(fs)
|
|
||||||
if err := fs.Set("logtostderr", "true"); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
switch l {
|
|
||||||
case logrus.TraceLevel:
|
|
||||||
return fs.Set("v", "5")
|
|
||||||
case logrus.DebugLevel:
|
|
||||||
return fs.Set("v", "4")
|
|
||||||
case logrus.InfoLevel:
|
|
||||||
return fs.Set("v", "2")
|
|
||||||
// glog doesn't support following filters. Defaults to v=0.
|
|
||||||
case logrus.WarnLevel:
|
|
||||||
case logrus.ErrorLevel:
|
|
||||||
case logrus.FatalLevel:
|
|
||||||
case logrus.PanicLevel:
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
50
vendor/github.com/containerd/cri/pkg/annotations/annotations.go
generated
vendored
50
vendor/github.com/containerd/cri/pkg/annotations/annotations.go
generated
vendored
@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
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 annotations
|
|
||||||
|
|
||||||
// ContainerType values
|
|
||||||
// Following OCI annotations are used by katacontainers now.
|
|
||||||
// We'll switch to standard secure pod API after it is defined in CRI.
|
|
||||||
const (
|
|
||||||
// ContainerTypeSandbox represents a pod sandbox container
|
|
||||||
ContainerTypeSandbox = "sandbox"
|
|
||||||
|
|
||||||
// ContainerTypeContainer represents a container running within a pod
|
|
||||||
ContainerTypeContainer = "container"
|
|
||||||
|
|
||||||
// ContainerType is the container type (sandbox or container) annotation
|
|
||||||
ContainerType = "io.kubernetes.cri.container-type"
|
|
||||||
|
|
||||||
// SandboxID is the sandbox ID annotation
|
|
||||||
SandboxID = "io.kubernetes.cri.sandbox-id"
|
|
||||||
|
|
||||||
// SandboxLogDir is the pod log directory annotation.
|
|
||||||
// If the sandbox needs to generate any log, it will put it into this directory.
|
|
||||||
// Kubelet will be responsible for:
|
|
||||||
// 1) Monitoring the disk usage of the log, and including it as part of the pod
|
|
||||||
// ephemeral storage usage.
|
|
||||||
// 2) Cleaning up the logs when the pod is deleted.
|
|
||||||
// NOTE: Kubelet is not responsible for rotating the logs.
|
|
||||||
SandboxLogDir = "io.kubernetes.cri.sandbox-log-directory"
|
|
||||||
|
|
||||||
// UntrustedWorkload is the sandbox annotation for untrusted workload. Untrusted
|
|
||||||
// workload can only run on dedicated runtime for untrusted workload.
|
|
||||||
UntrustedWorkload = "io.kubernetes.cri.untrusted-workload"
|
|
||||||
|
|
||||||
// containerName is the name of the container in the pod
|
|
||||||
ContainerName = "io.kubernetes.cri.container-name"
|
|
||||||
)
|
|
394
vendor/github.com/containerd/cri/pkg/api/runtimeoptions/v1/api.pb.go
generated
vendored
394
vendor/github.com/containerd/cri/pkg/api/runtimeoptions/v1/api.pb.go
generated
vendored
@ -1,394 +0,0 @@
|
|||||||
/*
|
|
||||||
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.
|
|
||||||
*/
|
|
||||||
// Code generated by protoc-gen-gogo. DO NOT EDIT.
|
|
||||||
// source: api.proto
|
|
||||||
|
|
||||||
/*
|
|
||||||
Package cri_runtimeoptions_v1 is a generated protocol buffer package.
|
|
||||||
|
|
||||||
It is generated from these files:
|
|
||||||
api.proto
|
|
||||||
|
|
||||||
It has these top-level messages:
|
|
||||||
Options
|
|
||||||
*/
|
|
||||||
package cri_runtimeoptions_v1
|
|
||||||
|
|
||||||
import proto "github.com/gogo/protobuf/proto"
|
|
||||||
import fmt "fmt"
|
|
||||||
import math "math"
|
|
||||||
import _ "github.com/gogo/protobuf/gogoproto"
|
|
||||||
|
|
||||||
import strings "strings"
|
|
||||||
import reflect "reflect"
|
|
||||||
|
|
||||||
import io "io"
|
|
||||||
|
|
||||||
// Reference imports to suppress errors if they are not otherwise used.
|
|
||||||
var _ = proto.Marshal
|
|
||||||
var _ = fmt.Errorf
|
|
||||||
var _ = math.Inf
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the proto package it is being compiled against.
|
|
||||||
// A compilation error at this line likely means your copy of the
|
|
||||||
// proto package needs to be updated.
|
|
||||||
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
|
|
||||||
|
|
||||||
type Options struct {
|
|
||||||
// TypeUrl specifies the type of the content inside the config file.
|
|
||||||
TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
|
|
||||||
// ConfigPath specifies the filesystem location of the config file
|
|
||||||
// used by the runtime.
|
|
||||||
ConfigPath string `protobuf:"bytes,2,opt,name=config_path,json=configPath,proto3" json:"config_path,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Options) Reset() { *m = Options{} }
|
|
||||||
func (*Options) ProtoMessage() {}
|
|
||||||
func (*Options) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{0} }
|
|
||||||
|
|
||||||
func (m *Options) GetTypeUrl() string {
|
|
||||||
if m != nil {
|
|
||||||
return m.TypeUrl
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Options) GetConfigPath() string {
|
|
||||||
if m != nil {
|
|
||||||
return m.ConfigPath
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
proto.RegisterType((*Options)(nil), "cri.runtimeoptions.v1.Options")
|
|
||||||
}
|
|
||||||
func (m *Options) 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 *Options) MarshalTo(dAtA []byte) (int, error) {
|
|
||||||
var i int
|
|
||||||
_ = i
|
|
||||||
var l int
|
|
||||||
_ = l
|
|
||||||
if len(m.TypeUrl) > 0 {
|
|
||||||
dAtA[i] = 0xa
|
|
||||||
i++
|
|
||||||
i = encodeVarintApi(dAtA, i, uint64(len(m.TypeUrl)))
|
|
||||||
i += copy(dAtA[i:], m.TypeUrl)
|
|
||||||
}
|
|
||||||
if len(m.ConfigPath) > 0 {
|
|
||||||
dAtA[i] = 0x12
|
|
||||||
i++
|
|
||||||
i = encodeVarintApi(dAtA, i, uint64(len(m.ConfigPath)))
|
|
||||||
i += copy(dAtA[i:], m.ConfigPath)
|
|
||||||
}
|
|
||||||
return i, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func encodeVarintApi(dAtA []byte, offset int, v uint64) int {
|
|
||||||
for v >= 1<<7 {
|
|
||||||
dAtA[offset] = uint8(v&0x7f | 0x80)
|
|
||||||
v >>= 7
|
|
||||||
offset++
|
|
||||||
}
|
|
||||||
dAtA[offset] = uint8(v)
|
|
||||||
return offset + 1
|
|
||||||
}
|
|
||||||
func (m *Options) Size() (n int) {
|
|
||||||
var l int
|
|
||||||
_ = l
|
|
||||||
l = len(m.TypeUrl)
|
|
||||||
if l > 0 {
|
|
||||||
n += 1 + l + sovApi(uint64(l))
|
|
||||||
}
|
|
||||||
l = len(m.ConfigPath)
|
|
||||||
if l > 0 {
|
|
||||||
n += 1 + l + sovApi(uint64(l))
|
|
||||||
}
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
|
|
||||||
func sovApi(x uint64) (n int) {
|
|
||||||
for {
|
|
||||||
n++
|
|
||||||
x >>= 7
|
|
||||||
if x == 0 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return n
|
|
||||||
}
|
|
||||||
func sozApi(x uint64) (n int) {
|
|
||||||
return sovApi(uint64((x << 1) ^ uint64((int64(x) >> 63))))
|
|
||||||
}
|
|
||||||
func (this *Options) String() string {
|
|
||||||
if this == nil {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
s := strings.Join([]string{`&Options{`,
|
|
||||||
`TypeUrl:` + fmt.Sprintf("%v", this.TypeUrl) + `,`,
|
|
||||||
`ConfigPath:` + fmt.Sprintf("%v", this.ConfigPath) + `,`,
|
|
||||||
`}`,
|
|
||||||
}, "")
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
func valueToStringApi(v interface{}) string {
|
|
||||||
rv := reflect.ValueOf(v)
|
|
||||||
if rv.IsNil() {
|
|
||||||
return "nil"
|
|
||||||
}
|
|
||||||
pv := reflect.Indirect(rv).Interface()
|
|
||||||
return fmt.Sprintf("*%v", pv)
|
|
||||||
}
|
|
||||||
func (m *Options) 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 ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
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: Options: wiretype end group for non-group")
|
|
||||||
}
|
|
||||||
if fieldNum <= 0 {
|
|
||||||
return fmt.Errorf("proto: Options: illegal tag %d (wire type %d)", fieldNum, wire)
|
|
||||||
}
|
|
||||||
switch fieldNum {
|
|
||||||
case 1:
|
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field TypeUrl", wireType)
|
|
||||||
}
|
|
||||||
var stringLen uint64
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
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 ErrInvalidLengthApi
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + intStringLen
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
m.TypeUrl = string(dAtA[iNdEx:postIndex])
|
|
||||||
iNdEx = postIndex
|
|
||||||
case 2:
|
|
||||||
if wireType != 2 {
|
|
||||||
return fmt.Errorf("proto: wrong wireType = %d for field ConfigPath", wireType)
|
|
||||||
}
|
|
||||||
var stringLen uint64
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
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 ErrInvalidLengthApi
|
|
||||||
}
|
|
||||||
postIndex := iNdEx + intStringLen
|
|
||||||
if postIndex > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
m.ConfigPath = string(dAtA[iNdEx:postIndex])
|
|
||||||
iNdEx = postIndex
|
|
||||||
default:
|
|
||||||
iNdEx = preIndex
|
|
||||||
skippy, err := skipApi(dAtA[iNdEx:])
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if skippy < 0 {
|
|
||||||
return ErrInvalidLengthApi
|
|
||||||
}
|
|
||||||
if (iNdEx + skippy) > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
iNdEx += skippy
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if iNdEx > l {
|
|
||||||
return io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
func skipApi(dAtA []byte) (n int, err error) {
|
|
||||||
l := len(dAtA)
|
|
||||||
iNdEx := 0
|
|
||||||
for iNdEx < l {
|
|
||||||
var wire uint64
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return 0, ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return 0, io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
wire |= (uint64(b) & 0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
wireType := int(wire & 0x7)
|
|
||||||
switch wireType {
|
|
||||||
case 0:
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return 0, ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return 0, io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
iNdEx++
|
|
||||||
if dAtA[iNdEx-1] < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return iNdEx, nil
|
|
||||||
case 1:
|
|
||||||
iNdEx += 8
|
|
||||||
return iNdEx, nil
|
|
||||||
case 2:
|
|
||||||
var length int
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return 0, ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return 0, io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
length |= (int(b) & 0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
iNdEx += length
|
|
||||||
if length < 0 {
|
|
||||||
return 0, ErrInvalidLengthApi
|
|
||||||
}
|
|
||||||
return iNdEx, nil
|
|
||||||
case 3:
|
|
||||||
for {
|
|
||||||
var innerWire uint64
|
|
||||||
var start int = iNdEx
|
|
||||||
for shift := uint(0); ; shift += 7 {
|
|
||||||
if shift >= 64 {
|
|
||||||
return 0, ErrIntOverflowApi
|
|
||||||
}
|
|
||||||
if iNdEx >= l {
|
|
||||||
return 0, io.ErrUnexpectedEOF
|
|
||||||
}
|
|
||||||
b := dAtA[iNdEx]
|
|
||||||
iNdEx++
|
|
||||||
innerWire |= (uint64(b) & 0x7F) << shift
|
|
||||||
if b < 0x80 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
innerWireType := int(innerWire & 0x7)
|
|
||||||
if innerWireType == 4 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
next, err := skipApi(dAtA[start:])
|
|
||||||
if err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
iNdEx = start + next
|
|
||||||
}
|
|
||||||
return iNdEx, nil
|
|
||||||
case 4:
|
|
||||||
return iNdEx, nil
|
|
||||||
case 5:
|
|
||||||
iNdEx += 4
|
|
||||||
return iNdEx, nil
|
|
||||||
default:
|
|
||||||
return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
panic("unreachable")
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
ErrInvalidLengthApi = fmt.Errorf("proto: negative length found during unmarshaling")
|
|
||||||
ErrIntOverflowApi = fmt.Errorf("proto: integer overflow")
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() { proto.RegisterFile("api.proto", fileDescriptorApi) }
|
|
||||||
|
|
||||||
var fileDescriptorApi = []byte{
|
|
||||||
// 183 bytes of a gzipped FileDescriptorProto
|
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4c, 0x2c, 0xc8, 0xd4,
|
|
||||||
0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x4d, 0x2e, 0xca, 0xd4, 0x2b, 0x2a, 0xcd, 0x2b, 0xc9,
|
|
||||||
0xcc, 0x4d, 0xcd, 0x2f, 0x28, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2b, 0x33, 0x94, 0xd2, 0x4d, 0xcf,
|
|
||||||
0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0xab,
|
|
||||||
0x4e, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0x62, 0x8a, 0x92, 0x2b, 0x17, 0xbb, 0x3f,
|
|
||||||
0x44, 0xb3, 0x90, 0x24, 0x17, 0x47, 0x49, 0x65, 0x41, 0x6a, 0x7c, 0x69, 0x51, 0x8e, 0x04, 0xa3,
|
|
||||||
0x02, 0xa3, 0x06, 0x67, 0x10, 0x3b, 0x88, 0x1f, 0x5a, 0x94, 0x23, 0x24, 0xcf, 0xc5, 0x9d, 0x9c,
|
|
||||||
0x9f, 0x97, 0x96, 0x99, 0x1e, 0x5f, 0x90, 0x58, 0x92, 0x21, 0xc1, 0x04, 0x96, 0xe5, 0x82, 0x08,
|
|
||||||
0x05, 0x24, 0x96, 0x64, 0x38, 0xc9, 0x9c, 0x78, 0x28, 0xc7, 0x78, 0xe3, 0xa1, 0x1c, 0x43, 0xc3,
|
|
||||||
0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71,
|
|
||||||
0xc2, 0x63, 0x39, 0x86, 0x24, 0x36, 0xb0, 0x5d, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07,
|
|
||||||
0x00, 0xf2, 0x18, 0xbe, 0x00, 0x00, 0x00,
|
|
||||||
}
|
|
22
vendor/github.com/containerd/cri/pkg/api/runtimeoptions/v1/api.proto
generated
vendored
22
vendor/github.com/containerd/cri/pkg/api/runtimeoptions/v1/api.proto
generated
vendored
@ -1,22 +0,0 @@
|
|||||||
// To regenerate api.pb.go run `make proto`
|
|
||||||
syntax = "proto3";
|
|
||||||
|
|
||||||
package cri.runtimeoptions.v1;
|
|
||||||
|
|
||||||
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
|
|
||||||
|
|
||||||
option (gogoproto.goproto_stringer_all) = false;
|
|
||||||
option (gogoproto.stringer_all) = true;
|
|
||||||
option (gogoproto.goproto_getters_all) = true;
|
|
||||||
option (gogoproto.marshaler_all) = true;
|
|
||||||
option (gogoproto.sizer_all) = true;
|
|
||||||
option (gogoproto.unmarshaler_all) = true;
|
|
||||||
option (gogoproto.goproto_unrecognized_all) = false;
|
|
||||||
|
|
||||||
message Options {
|
|
||||||
// TypeUrl specifies the type of the content inside the config file.
|
|
||||||
string type_url = 1;
|
|
||||||
// ConfigPath specifies the filesystem location of the config file
|
|
||||||
// used by the runtime.
|
|
||||||
string config_path = 2;
|
|
||||||
}
|
|
54
vendor/github.com/containerd/cri/pkg/atomic/atomic_boolean.go
generated
vendored
54
vendor/github.com/containerd/cri/pkg/atomic/atomic_boolean.go
generated
vendored
@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
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 atomic
|
|
||||||
|
|
||||||
import "sync/atomic"
|
|
||||||
|
|
||||||
// Bool is an atomic Boolean,
|
|
||||||
// Its methods are all atomic, thus safe to be called by
|
|
||||||
// multiple goroutines simultaneously.
|
|
||||||
type Bool interface {
|
|
||||||
Set()
|
|
||||||
Unset()
|
|
||||||
IsSet() bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewBool creates an Bool with given default value
|
|
||||||
func NewBool(ok bool) Bool {
|
|
||||||
ab := new(atomicBool)
|
|
||||||
if ok {
|
|
||||||
ab.Set()
|
|
||||||
}
|
|
||||||
return ab
|
|
||||||
}
|
|
||||||
|
|
||||||
type atomicBool int32
|
|
||||||
|
|
||||||
// Set sets the Boolean to true
|
|
||||||
func (ab *atomicBool) Set() {
|
|
||||||
atomic.StoreInt32((*int32)(ab), 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Unset sets the Boolean to false
|
|
||||||
func (ab *atomicBool) Unset() {
|
|
||||||
atomic.StoreInt32((*int32)(ab), 0)
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsSet returns whether the Boolean is true
|
|
||||||
func (ab *atomicBool) IsSet() bool {
|
|
||||||
return atomic.LoadInt32((*int32)(ab)) == 1
|
|
||||||
}
|
|
369
vendor/github.com/containerd/cri/pkg/config/config.go
generated
vendored
369
vendor/github.com/containerd/cri/pkg/config/config.go
generated
vendored
@ -1,369 +0,0 @@
|
|||||||
/*
|
|
||||||
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 config
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/containerd/containerd/log"
|
|
||||||
"github.com/containerd/containerd/plugin"
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Runtime struct to contain the type(ID), engine, and root variables for a default runtime
|
|
||||||
// and a runtime for untrusted worload.
|
|
||||||
type Runtime struct {
|
|
||||||
// Type is the runtime type to use in containerd e.g. io.containerd.runtime.v1.linux
|
|
||||||
Type string `toml:"runtime_type" json:"runtimeType"`
|
|
||||||
// Engine is the name of the runtime engine used by containerd.
|
|
||||||
// This only works for runtime type "io.containerd.runtime.v1.linux".
|
|
||||||
// DEPRECATED: use Options instead. Remove when shim v1 is deprecated.
|
|
||||||
Engine string `toml:"runtime_engine" json:"runtimeEngine"`
|
|
||||||
// PodAnnotations is a list of pod annotations passed to both pod sandbox as well as
|
|
||||||
// container OCI annotations.
|
|
||||||
PodAnnotations []string `toml:"pod_annotations" json:"PodAnnotations"`
|
|
||||||
// ContainerAnnotations is a list of container annotations passed through to the OCI config of the containers.
|
|
||||||
// Container annotations in CRI are usually generated by other Kubernetes node components (i.e., not users).
|
|
||||||
// Currently, only device plugins populate the annotations.
|
|
||||||
ContainerAnnotations []string `toml:"container_annotations" json:"ContainerAnnotations"`
|
|
||||||
// Root is the directory used by containerd for runtime state.
|
|
||||||
// DEPRECATED: use Options instead. Remove when shim v1 is deprecated.
|
|
||||||
// This only works for runtime type "io.containerd.runtime.v1.linux".
|
|
||||||
Root string `toml:"runtime_root" json:"runtimeRoot"`
|
|
||||||
// Options are config options for the runtime. If options is loaded
|
|
||||||
// from toml config, it will be toml.Primitive.
|
|
||||||
Options *toml.Primitive `toml:"options" json:"options"`
|
|
||||||
// PrivilegedWithoutHostDevices overloads the default behaviour for adding host devices to the
|
|
||||||
// runtime spec when the container is privileged. Defaults to false.
|
|
||||||
PrivilegedWithoutHostDevices bool `toml:"privileged_without_host_devices" json:"privileged_without_host_devices"`
|
|
||||||
// BaseRuntimeSpec is a json file with OCI spec to use as base spec that all container's will be created from.
|
|
||||||
BaseRuntimeSpec string `toml:"base_runtime_spec" json:"baseRuntimeSpec"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContainerdConfig contains toml config related to containerd
|
|
||||||
type ContainerdConfig struct {
|
|
||||||
// Snapshotter is the snapshotter used by containerd.
|
|
||||||
Snapshotter string `toml:"snapshotter" json:"snapshotter"`
|
|
||||||
// DefaultRuntimeName is the default runtime name to use from the runtimes table.
|
|
||||||
DefaultRuntimeName string `toml:"default_runtime_name" json:"defaultRuntimeName"`
|
|
||||||
// DefaultRuntime is the default runtime to use in containerd.
|
|
||||||
// This runtime is used when no runtime handler (or the empty string) is provided.
|
|
||||||
// DEPRECATED: use DefaultRuntimeName instead. Remove in containerd 1.4.
|
|
||||||
DefaultRuntime Runtime `toml:"default_runtime" json:"defaultRuntime"`
|
|
||||||
// UntrustedWorkloadRuntime is a runtime to run untrusted workloads on it.
|
|
||||||
// DEPRECATED: use `untrusted` runtime in Runtimes instead. Remove in containerd 1.4.
|
|
||||||
UntrustedWorkloadRuntime Runtime `toml:"untrusted_workload_runtime" json:"untrustedWorkloadRuntime"`
|
|
||||||
// Runtimes is a map from CRI RuntimeHandler strings, which specify types of runtime
|
|
||||||
// configurations, to the matching configurations.
|
|
||||||
Runtimes map[string]Runtime `toml:"runtimes" json:"runtimes"`
|
|
||||||
// NoPivot disables pivot-root (linux only), required when running a container in a RamDisk with runc
|
|
||||||
// This only works for runtime type "io.containerd.runtime.v1.linux".
|
|
||||||
NoPivot bool `toml:"no_pivot" json:"noPivot"`
|
|
||||||
|
|
||||||
// DisableSnapshotAnnotations disables to pass additional annotations (image
|
|
||||||
// related information) to snapshotters. These annotations are required by
|
|
||||||
// stargz snapshotter (https://github.com/containerd/stargz-snapshotter).
|
|
||||||
DisableSnapshotAnnotations bool `toml:"disable_snapshot_annotations" json:"disableSnapshotAnnotations"`
|
|
||||||
|
|
||||||
// DiscardUnpackedLayers is a boolean flag to specify whether to allow GC to
|
|
||||||
// remove layers from the content store after successfully unpacking these
|
|
||||||
// layers to the snapshotter.
|
|
||||||
DiscardUnpackedLayers bool `toml:"discard_unpacked_layers" json:"discardUnpackedLayers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// CniConfig contains toml config related to cni
|
|
||||||
type CniConfig struct {
|
|
||||||
// NetworkPluginBinDir is the directory in which the binaries for the plugin is kept.
|
|
||||||
NetworkPluginBinDir string `toml:"bin_dir" json:"binDir"`
|
|
||||||
// NetworkPluginConfDir is the directory in which the admin places a CNI conf.
|
|
||||||
NetworkPluginConfDir string `toml:"conf_dir" json:"confDir"`
|
|
||||||
// NetworkPluginMaxConfNum is the max number of plugin config files that will
|
|
||||||
// be loaded from the cni config directory by go-cni. Set the value to 0 to
|
|
||||||
// load all config files (no arbitrary limit). The legacy default value is 1.
|
|
||||||
NetworkPluginMaxConfNum int `toml:"max_conf_num" json:"maxConfNum"`
|
|
||||||
// NetworkPluginConfTemplate is the file path of golang template used to generate
|
|
||||||
// cni config.
|
|
||||||
// When it is set, containerd will get cidr(s) from kubelet to replace {{.PodCIDR}},
|
|
||||||
// {{.PodCIDRRanges}} or {{.Routes}} in the template, and write the config into
|
|
||||||
// NetworkPluginConfDir.
|
|
||||||
// Ideally the cni config should be placed by system admin or cni daemon like calico,
|
|
||||||
// weaveworks etc. However, there are still users using kubenet
|
|
||||||
// (https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/#kubenet)
|
|
||||||
// today, who don't have a cni daemonset in production. NetworkPluginConfTemplate is
|
|
||||||
// a temporary backward-compatible solution for them.
|
|
||||||
// TODO(random-liu): Deprecate this option when kubenet is deprecated.
|
|
||||||
NetworkPluginConfTemplate string `toml:"conf_template" json:"confTemplate"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mirror contains the config related to the registry mirror
|
|
||||||
type Mirror struct {
|
|
||||||
// Endpoints are endpoints for a namespace. CRI plugin will try the endpoints
|
|
||||||
// one by one until a working one is found. The endpoint must be a valid url
|
|
||||||
// with host specified.
|
|
||||||
// The scheme, host and path from the endpoint URL will be used.
|
|
||||||
Endpoints []string `toml:"endpoint" json:"endpoint"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// AuthConfig contains the config related to authentication to a specific registry
|
|
||||||
type AuthConfig struct {
|
|
||||||
// Username is the username to login the registry.
|
|
||||||
Username string `toml:"username" json:"username"`
|
|
||||||
// Password is the password to login the registry.
|
|
||||||
Password string `toml:"password" json:"password"`
|
|
||||||
// Auth is a base64 encoded string from the concatenation of the username,
|
|
||||||
// a colon, and the password.
|
|
||||||
Auth string `toml:"auth" json:"auth"`
|
|
||||||
// IdentityToken is used to authenticate the user and get
|
|
||||||
// an access token for the registry.
|
|
||||||
IdentityToken string `toml:"identitytoken" json:"identitytoken"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TLSConfig contains the CA/Cert/Key used for a registry
|
|
||||||
type TLSConfig struct {
|
|
||||||
InsecureSkipVerify bool `toml:"insecure_skip_verify" json:"insecure_skip_verify"`
|
|
||||||
CAFile string `toml:"ca_file" json:"caFile"`
|
|
||||||
CertFile string `toml:"cert_file" json:"certFile"`
|
|
||||||
KeyFile string `toml:"key_file" json:"keyFile"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Registry is registry settings configured
|
|
||||||
type Registry struct {
|
|
||||||
// Mirrors are namespace to mirror mapping for all namespaces.
|
|
||||||
Mirrors map[string]Mirror `toml:"mirrors" json:"mirrors"`
|
|
||||||
// Configs are configs for each registry.
|
|
||||||
// The key is the domain name or IP of the registry.
|
|
||||||
Configs map[string]RegistryConfig `toml:"configs" json:"configs"`
|
|
||||||
|
|
||||||
// Auths are registry endpoint to auth config mapping. The registry endpoint must
|
|
||||||
// be a valid url with host specified.
|
|
||||||
// DEPRECATED: Use Configs instead. Remove in containerd 1.4.
|
|
||||||
Auths map[string]AuthConfig `toml:"auths" json:"auths"`
|
|
||||||
// Headers adds additional HTTP headers that get sent to all registries
|
|
||||||
Headers map[string][]string `toml:"headers" json:"headers"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// RegistryConfig contains configuration used to communicate with the registry.
|
|
||||||
type RegistryConfig struct {
|
|
||||||
// Auth contains information to authenticate to the registry.
|
|
||||||
Auth *AuthConfig `toml:"auth" json:"auth"`
|
|
||||||
// TLS is a pair of CA/Cert/Key which then are used when creating the transport
|
|
||||||
// that communicates with the registry.
|
|
||||||
TLS *TLSConfig `toml:"tls" json:"tls"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ImageDecryption contains configuration to handling decryption of encrypted container images.
|
|
||||||
type ImageDecryption struct {
|
|
||||||
// KeyModel specifies the trust model of where keys should reside.
|
|
||||||
//
|
|
||||||
// Details of field usage can be found in:
|
|
||||||
// https://github.com/containerd/cri/tree/master/docs/config.md
|
|
||||||
//
|
|
||||||
// Details of key models can be found in:
|
|
||||||
// https://github.com/containerd/cri/tree/master/docs/decryption.md
|
|
||||||
KeyModel string `toml:"key_model" json:"keyModel"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PluginConfig contains toml config related to CRI plugin,
|
|
||||||
// it is a subset of Config.
|
|
||||||
type PluginConfig struct {
|
|
||||||
// ContainerdConfig contains config related to containerd
|
|
||||||
ContainerdConfig `toml:"containerd" json:"containerd"`
|
|
||||||
// CniConfig contains config related to cni
|
|
||||||
CniConfig `toml:"cni" json:"cni"`
|
|
||||||
// Registry contains config related to the registry
|
|
||||||
Registry Registry `toml:"registry" json:"registry"`
|
|
||||||
// ImageDecryption contains config related to handling decryption of encrypted container images
|
|
||||||
ImageDecryption `toml:"image_decryption" json:"imageDecryption"`
|
|
||||||
// DisableTCPService disables serving CRI on the TCP server.
|
|
||||||
DisableTCPService bool `toml:"disable_tcp_service" json:"disableTCPService"`
|
|
||||||
// StreamServerAddress is the ip address streaming server is listening on.
|
|
||||||
StreamServerAddress string `toml:"stream_server_address" json:"streamServerAddress"`
|
|
||||||
// StreamServerPort is the port streaming server is listening on.
|
|
||||||
StreamServerPort string `toml:"stream_server_port" json:"streamServerPort"`
|
|
||||||
// StreamIdleTimeout is the maximum time a streaming connection
|
|
||||||
// can be idle before the connection is automatically closed.
|
|
||||||
// The string is in the golang duration format, see:
|
|
||||||
// https://golang.org/pkg/time/#ParseDuration
|
|
||||||
StreamIdleTimeout string `toml:"stream_idle_timeout" json:"streamIdleTimeout"`
|
|
||||||
// EnableSelinux indicates to enable the selinux support.
|
|
||||||
EnableSelinux bool `toml:"enable_selinux" json:"enableSelinux"`
|
|
||||||
// SelinuxCategoryRange allows the upper bound on the category range to be set.
|
|
||||||
// If not specified or set to 0, defaults to 1024 from the selinux package.
|
|
||||||
SelinuxCategoryRange int `toml:"selinux_category_range" json:"selinuxCategoryRange"`
|
|
||||||
// SandboxImage is the image used by sandbox container.
|
|
||||||
SandboxImage string `toml:"sandbox_image" json:"sandboxImage"`
|
|
||||||
// StatsCollectPeriod is the period (in seconds) of snapshots stats collection.
|
|
||||||
StatsCollectPeriod int `toml:"stats_collect_period" json:"statsCollectPeriod"`
|
|
||||||
// SystemdCgroup enables systemd cgroup support.
|
|
||||||
// This only works for runtime type "io.containerd.runtime.v1.linux".
|
|
||||||
// DEPRECATED: config runc runtime handler instead. Remove when shim v1 is deprecated.
|
|
||||||
SystemdCgroup bool `toml:"systemd_cgroup" json:"systemdCgroup"`
|
|
||||||
// EnableTLSStreaming indicates to enable the TLS streaming support.
|
|
||||||
EnableTLSStreaming bool `toml:"enable_tls_streaming" json:"enableTLSStreaming"`
|
|
||||||
// X509KeyPairStreaming is a x509 key pair used for TLS streaming
|
|
||||||
X509KeyPairStreaming `toml:"x509_key_pair_streaming" json:"x509KeyPairStreaming"`
|
|
||||||
// MaxContainerLogLineSize is the maximum log line size in bytes for a container.
|
|
||||||
// Log line longer than the limit will be split into multiple lines. Non-positive
|
|
||||||
// value means no limit.
|
|
||||||
MaxContainerLogLineSize int `toml:"max_container_log_line_size" json:"maxContainerLogSize"`
|
|
||||||
// DisableCgroup indicates to disable the cgroup support.
|
|
||||||
// This is useful when the containerd does not have permission to access cgroup.
|
|
||||||
DisableCgroup bool `toml:"disable_cgroup" json:"disableCgroup"`
|
|
||||||
// DisableApparmor indicates to disable the apparmor support.
|
|
||||||
// This is useful when the containerd does not have permission to access Apparmor.
|
|
||||||
DisableApparmor bool `toml:"disable_apparmor" json:"disableApparmor"`
|
|
||||||
// RestrictOOMScoreAdj indicates to limit the lower bound of OOMScoreAdj to the containerd's
|
|
||||||
// current OOMScoreADj.
|
|
||||||
// This is useful when the containerd does not have permission to decrease OOMScoreAdj.
|
|
||||||
RestrictOOMScoreAdj bool `toml:"restrict_oom_score_adj" json:"restrictOOMScoreAdj"`
|
|
||||||
// MaxConcurrentDownloads restricts the number of concurrent downloads for each image.
|
|
||||||
MaxConcurrentDownloads int `toml:"max_concurrent_downloads" json:"maxConcurrentDownloads"`
|
|
||||||
// DisableProcMount disables Kubernetes ProcMount support. This MUST be set to `true`
|
|
||||||
// when using containerd with Kubernetes <=1.11.
|
|
||||||
DisableProcMount bool `toml:"disable_proc_mount" json:"disableProcMount"`
|
|
||||||
// UnsetSeccompProfile is the profile containerd/cri will use If the provided seccomp profile is
|
|
||||||
// unset (`""`) for a container (default is `unconfined`)
|
|
||||||
UnsetSeccompProfile string `toml:"unset_seccomp_profile" json:"unsetSeccompProfile"`
|
|
||||||
// TolerateMissingHugetlbController if set to false will error out on create/update
|
|
||||||
// container requests with huge page limits if the cgroup controller for hugepages is not present.
|
|
||||||
// This helps with supporting Kubernetes <=1.18 out of the box. (default is `true`)
|
|
||||||
TolerateMissingHugetlbController bool `toml:"tolerate_missing_hugetlb_controller" json:"tolerateMissingHugetlbController"`
|
|
||||||
// DisableHugetlbController indicates to silently disable the hugetlb controller, even when it is
|
|
||||||
// present in /sys/fs/cgroup/cgroup.controllers.
|
|
||||||
// This helps with running rootless mode + cgroup v2 + systemd but without hugetlb delegation.
|
|
||||||
DisableHugetlbController bool `toml:"disable_hugetlb_controller" json:"disableHugetlbController"`
|
|
||||||
// IgnoreImageDefinedVolumes ignores volumes defined by the image. Useful for better resource
|
|
||||||
// isolation, security and early detection of issues in the mount configuration when using
|
|
||||||
// ReadOnlyRootFilesystem since containers won't silently mount a temporary volume.
|
|
||||||
IgnoreImageDefinedVolumes bool `toml:"ignore_image_defined_volumes" json:"ignoreImageDefinedVolumes"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// X509KeyPairStreaming contains the x509 configuration for streaming
|
|
||||||
type X509KeyPairStreaming struct {
|
|
||||||
// TLSCertFile is the path to a certificate file
|
|
||||||
TLSCertFile string `toml:"tls_cert_file" json:"tlsCertFile"`
|
|
||||||
// TLSKeyFile is the path to a private key file
|
|
||||||
TLSKeyFile string `toml:"tls_key_file" json:"tlsKeyFile"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Config contains all configurations for cri server.
|
|
||||||
type Config struct {
|
|
||||||
// PluginConfig is the config for CRI plugin.
|
|
||||||
PluginConfig
|
|
||||||
// ContainerdRootDir is the root directory path for containerd.
|
|
||||||
ContainerdRootDir string `json:"containerdRootDir"`
|
|
||||||
// ContainerdEndpoint is the containerd endpoint path.
|
|
||||||
ContainerdEndpoint string `json:"containerdEndpoint"`
|
|
||||||
// RootDir is the root directory path for managing cri plugin files
|
|
||||||
// (metadata checkpoint etc.)
|
|
||||||
RootDir string `json:"rootDir"`
|
|
||||||
// StateDir is the root directory path for managing volatile pod/container data
|
|
||||||
StateDir string `json:"stateDir"`
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
// RuntimeUntrusted is the implicit runtime defined for ContainerdConfig.UntrustedWorkloadRuntime
|
|
||||||
RuntimeUntrusted = "untrusted"
|
|
||||||
// RuntimeDefault is the implicit runtime defined for ContainerdConfig.DefaultRuntime
|
|
||||||
RuntimeDefault = "default"
|
|
||||||
// KeyModelNode is the key model where key for encrypted images reside
|
|
||||||
// on the worker nodes
|
|
||||||
KeyModelNode = "node"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ValidatePluginConfig validates the given plugin configuration.
|
|
||||||
func ValidatePluginConfig(ctx context.Context, c *PluginConfig) error {
|
|
||||||
if c.ContainerdConfig.Runtimes == nil {
|
|
||||||
c.ContainerdConfig.Runtimes = make(map[string]Runtime)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validation for deprecated untrusted_workload_runtime.
|
|
||||||
if c.ContainerdConfig.UntrustedWorkloadRuntime.Type != "" {
|
|
||||||
log.G(ctx).Warning("`untrusted_workload_runtime` is deprecated, please use `untrusted` runtime in `runtimes` instead")
|
|
||||||
if _, ok := c.ContainerdConfig.Runtimes[RuntimeUntrusted]; ok {
|
|
||||||
return errors.Errorf("conflicting definitions: configuration includes both `untrusted_workload_runtime` and `runtimes[%q]`", RuntimeUntrusted)
|
|
||||||
}
|
|
||||||
c.ContainerdConfig.Runtimes[RuntimeUntrusted] = c.ContainerdConfig.UntrustedWorkloadRuntime
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validation for deprecated default_runtime field.
|
|
||||||
if c.ContainerdConfig.DefaultRuntime.Type != "" {
|
|
||||||
log.G(ctx).Warning("`default_runtime` is deprecated, please use `default_runtime_name` to reference the default configuration you have defined in `runtimes`")
|
|
||||||
c.ContainerdConfig.DefaultRuntimeName = RuntimeDefault
|
|
||||||
c.ContainerdConfig.Runtimes[RuntimeDefault] = c.ContainerdConfig.DefaultRuntime
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validation for default_runtime_name
|
|
||||||
if c.ContainerdConfig.DefaultRuntimeName == "" {
|
|
||||||
return errors.New("`default_runtime_name` is empty")
|
|
||||||
}
|
|
||||||
if _, ok := c.ContainerdConfig.Runtimes[c.ContainerdConfig.DefaultRuntimeName]; !ok {
|
|
||||||
return errors.New("no corresponding runtime configured in `runtimes` for `default_runtime_name`")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validation for deprecated runtime options.
|
|
||||||
if c.SystemdCgroup {
|
|
||||||
if c.ContainerdConfig.Runtimes[c.ContainerdConfig.DefaultRuntimeName].Type != plugin.RuntimeLinuxV1 {
|
|
||||||
return errors.Errorf("`systemd_cgroup` only works for runtime %s", plugin.RuntimeLinuxV1)
|
|
||||||
}
|
|
||||||
log.G(ctx).Warning("`systemd_cgroup` is deprecated, please use runtime `options` instead")
|
|
||||||
}
|
|
||||||
if c.NoPivot {
|
|
||||||
if c.ContainerdConfig.Runtimes[c.ContainerdConfig.DefaultRuntimeName].Type != plugin.RuntimeLinuxV1 {
|
|
||||||
return errors.Errorf("`no_pivot` only works for runtime %s", plugin.RuntimeLinuxV1)
|
|
||||||
}
|
|
||||||
// NoPivot can't be deprecated yet, because there is no alternative config option
|
|
||||||
// for `io.containerd.runtime.v1.linux`.
|
|
||||||
}
|
|
||||||
for _, r := range c.ContainerdConfig.Runtimes {
|
|
||||||
if r.Engine != "" {
|
|
||||||
if r.Type != plugin.RuntimeLinuxV1 {
|
|
||||||
return errors.Errorf("`runtime_engine` only works for runtime %s", plugin.RuntimeLinuxV1)
|
|
||||||
}
|
|
||||||
log.G(ctx).Warning("`runtime_engine` is deprecated, please use runtime `options` instead")
|
|
||||||
}
|
|
||||||
if r.Root != "" {
|
|
||||||
if r.Type != plugin.RuntimeLinuxV1 {
|
|
||||||
return errors.Errorf("`runtime_root` only works for runtime %s", plugin.RuntimeLinuxV1)
|
|
||||||
}
|
|
||||||
log.G(ctx).Warning("`runtime_root` is deprecated, please use runtime `options` instead")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validation for deprecated auths options and mapping it to configs.
|
|
||||||
if len(c.Registry.Auths) != 0 {
|
|
||||||
if c.Registry.Configs == nil {
|
|
||||||
c.Registry.Configs = make(map[string]RegistryConfig)
|
|
||||||
}
|
|
||||||
for endpoint, auth := range c.Registry.Auths {
|
|
||||||
config := c.Registry.Configs[endpoint]
|
|
||||||
config.Auth = &auth
|
|
||||||
c.Registry.Configs[endpoint] = config
|
|
||||||
}
|
|
||||||
log.G(ctx).Warning("`auths` is deprecated, please use registry`configs` instead")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Validation for stream_idle_timeout
|
|
||||||
if c.StreamIdleTimeout != "" {
|
|
||||||
if _, err := time.ParseDuration(c.StreamIdleTimeout); err != nil {
|
|
||||||
return errors.Wrap(err, "invalid stream idle timeout")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
75
vendor/github.com/containerd/cri/pkg/config/config_unix.go
generated
vendored
75
vendor/github.com/containerd/cri/pkg/config/config_unix.go
generated
vendored
@ -1,75 +0,0 @@
|
|||||||
// +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 config
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/containerd/containerd"
|
|
||||||
"github.com/containerd/cri/pkg/streaming"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DefaultConfig returns default configurations of cri plugin.
|
|
||||||
func DefaultConfig() PluginConfig {
|
|
||||||
return PluginConfig{
|
|
||||||
CniConfig: CniConfig{
|
|
||||||
NetworkPluginBinDir: "/opt/cni/bin",
|
|
||||||
NetworkPluginConfDir: "/etc/cni/net.d",
|
|
||||||
NetworkPluginMaxConfNum: 1, // only one CNI plugin config file will be loaded
|
|
||||||
NetworkPluginConfTemplate: "",
|
|
||||||
},
|
|
||||||
ContainerdConfig: ContainerdConfig{
|
|
||||||
Snapshotter: containerd.DefaultSnapshotter,
|
|
||||||
DefaultRuntimeName: "runc",
|
|
||||||
NoPivot: false,
|
|
||||||
Runtimes: map[string]Runtime{
|
|
||||||
"runc": {
|
|
||||||
Type: "io.containerd.runc.v2",
|
|
||||||
Options: new(toml.Primitive),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
DisableTCPService: true,
|
|
||||||
StreamServerAddress: "127.0.0.1",
|
|
||||||
StreamServerPort: "0",
|
|
||||||
StreamIdleTimeout: streaming.DefaultConfig.StreamIdleTimeout.String(), // 4 hour
|
|
||||||
EnableSelinux: false,
|
|
||||||
SelinuxCategoryRange: 1024,
|
|
||||||
EnableTLSStreaming: false,
|
|
||||||
X509KeyPairStreaming: X509KeyPairStreaming{
|
|
||||||
TLSKeyFile: "",
|
|
||||||
TLSCertFile: "",
|
|
||||||
},
|
|
||||||
SandboxImage: "k8s.gcr.io/pause:3.2",
|
|
||||||
StatsCollectPeriod: 10,
|
|
||||||
SystemdCgroup: false,
|
|
||||||
MaxContainerLogLineSize: 16 * 1024,
|
|
||||||
Registry: Registry{
|
|
||||||
Mirrors: map[string]Mirror{
|
|
||||||
"docker.io": {
|
|
||||||
Endpoints: []string{"https://registry-1.docker.io"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
MaxConcurrentDownloads: 3,
|
|
||||||
DisableProcMount: false,
|
|
||||||
TolerateMissingHugetlbController: true,
|
|
||||||
DisableHugetlbController: true,
|
|
||||||
IgnoreImageDefinedVolumes: false,
|
|
||||||
}
|
|
||||||
}
|
|
71
vendor/github.com/containerd/cri/pkg/config/config_windows.go
generated
vendored
71
vendor/github.com/containerd/cri/pkg/config/config_windows.go
generated
vendored
@ -1,71 +0,0 @@
|
|||||||
// +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 config
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/containerd/containerd"
|
|
||||||
"github.com/containerd/cri/pkg/streaming"
|
|
||||||
)
|
|
||||||
|
|
||||||
// DefaultConfig returns default configurations of cri plugin.
|
|
||||||
func DefaultConfig() PluginConfig {
|
|
||||||
return PluginConfig{
|
|
||||||
CniConfig: CniConfig{
|
|
||||||
NetworkPluginBinDir: filepath.Join(os.Getenv("ProgramFiles"), "containerd", "cni", "bin"),
|
|
||||||
NetworkPluginConfDir: filepath.Join(os.Getenv("ProgramFiles"), "containerd", "cni", "conf"),
|
|
||||||
NetworkPluginMaxConfNum: 1,
|
|
||||||
NetworkPluginConfTemplate: "",
|
|
||||||
},
|
|
||||||
ContainerdConfig: ContainerdConfig{
|
|
||||||
Snapshotter: containerd.DefaultSnapshotter,
|
|
||||||
DefaultRuntimeName: "runhcs-wcow-process",
|
|
||||||
NoPivot: false,
|
|
||||||
Runtimes: map[string]Runtime{
|
|
||||||
"runhcs-wcow-process": {
|
|
||||||
Type: "io.containerd.runhcs.v1",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
DisableTCPService: true,
|
|
||||||
StreamServerAddress: "127.0.0.1",
|
|
||||||
StreamServerPort: "0",
|
|
||||||
StreamIdleTimeout: streaming.DefaultConfig.StreamIdleTimeout.String(), // 4 hour
|
|
||||||
EnableTLSStreaming: false,
|
|
||||||
X509KeyPairStreaming: X509KeyPairStreaming{
|
|
||||||
TLSKeyFile: "",
|
|
||||||
TLSCertFile: "",
|
|
||||||
},
|
|
||||||
SandboxImage: "mcr.microsoft.com/oss/kubernetes/pause:1.4.0",
|
|
||||||
StatsCollectPeriod: 10,
|
|
||||||
MaxContainerLogLineSize: 16 * 1024,
|
|
||||||
Registry: Registry{
|
|
||||||
Mirrors: map[string]Mirror{
|
|
||||||
"docker.io": {
|
|
||||||
Endpoints: []string{"https://registry-1.docker.io"},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
MaxConcurrentDownloads: 3,
|
|
||||||
IgnoreImageDefinedVolumes: false,
|
|
||||||
// TODO(windows): Add platform specific config, so that most common defaults can be shared.
|
|
||||||
}
|
|
||||||
}
|
|
26
vendor/github.com/containerd/cri/pkg/constants/constants.go
generated
vendored
26
vendor/github.com/containerd/cri/pkg/constants/constants.go
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
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 constants
|
|
||||||
|
|
||||||
// TODO(random-liu): Merge annotations package into this package.
|
|
||||||
|
|
||||||
const (
|
|
||||||
// K8sContainerdNamespace is the namespace we use to connect containerd.
|
|
||||||
K8sContainerdNamespace = "k8s.io"
|
|
||||||
// CRIVersion is the CRI version supported by the CRI plugin.
|
|
||||||
CRIVersion = "v1alpha2"
|
|
||||||
)
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user