mirror of
https://github.com/containerd/containerd.git
synced 2026-08-03 22:50:44 +00:00
Send the socket directory from containerd to the shim. The shim still decides where the socket goes but can use the environment variable passed from containerd to ensure the socket is placed in the configured directory with proper permission. This is needed for some rootless cases which do not have permission to the default state directory as currently set. The directory being hardcoded by the shim means it is currently not possible to change the location the shim will listen at. Signed-off-by: Derek McGowan <derek@mcg.dev>
622 lines
25 KiB
Go
622 lines
25 KiB
Go
//
|
|
//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.
|
|
|
|
// Bootstrap Protocol
|
|
//
|
|
// This protocol defines the interface between containerd and shims at startup.
|
|
// It replaces the previous scattered configuration mechanisms (CLI args, env vars,
|
|
// stdin JSON, spec.json annotations) with a single, versioned, extensible protocol.
|
|
//
|
|
// Flow:
|
|
// 1. containerd spawns the shim process
|
|
// 2. containerd writes BootstrapParams as JSON to shim's stdin
|
|
// 3. shim initializes and writes BootstrapResult as JSON to stdout
|
|
// 4. containerd connects to the address provided in BootstrapResult
|
|
//
|
|
// This design enables:
|
|
// - Forward/backward compatibility via version field
|
|
// - Typed extensibility via google.protobuf.Any and Extension
|
|
// - Clear capability negotiation between containerd and shims
|
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.28.1
|
|
// protoc (unknown)
|
|
// source: runtime/bootstrap/v1/bootstrap.proto
|
|
|
|
package bootstrap
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
anypb "google.golang.org/protobuf/types/known/anypb"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
)
|
|
|
|
const (
|
|
// Verify that this generated code is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
)
|
|
|
|
// LogLevel defines log verbosity. INFO = 0, more critical levels are
|
|
// positive, and more verbose levels are negative. This is an open enum;
|
|
// unknown numeric values are preserved on the wire.
|
|
type LogLevel int32
|
|
|
|
const (
|
|
LogLevel_LOG_LEVEL_INFO LogLevel = 0
|
|
LogLevel_LOG_LEVEL_TRACE LogLevel = -8
|
|
LogLevel_LOG_LEVEL_DEBUG LogLevel = -4
|
|
LogLevel_LOG_LEVEL_WARN LogLevel = 4
|
|
LogLevel_LOG_LEVEL_ERROR LogLevel = 8
|
|
LogLevel_LOG_LEVEL_FATAL LogLevel = 10
|
|
LogLevel_LOG_LEVEL_PANIC LogLevel = 12
|
|
)
|
|
|
|
// Enum value maps for LogLevel.
|
|
var (
|
|
LogLevel_name = map[int32]string{
|
|
0: "LOG_LEVEL_INFO",
|
|
-8: "LOG_LEVEL_TRACE",
|
|
-4: "LOG_LEVEL_DEBUG",
|
|
4: "LOG_LEVEL_WARN",
|
|
8: "LOG_LEVEL_ERROR",
|
|
10: "LOG_LEVEL_FATAL",
|
|
12: "LOG_LEVEL_PANIC",
|
|
}
|
|
LogLevel_value = map[string]int32{
|
|
"LOG_LEVEL_INFO": 0,
|
|
"LOG_LEVEL_TRACE": -8,
|
|
"LOG_LEVEL_DEBUG": -4,
|
|
"LOG_LEVEL_WARN": 4,
|
|
"LOG_LEVEL_ERROR": 8,
|
|
"LOG_LEVEL_FATAL": 10,
|
|
"LOG_LEVEL_PANIC": 12,
|
|
}
|
|
)
|
|
|
|
func (x LogLevel) Enum() *LogLevel {
|
|
p := new(LogLevel)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x LogLevel) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (LogLevel) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_enumTypes[0].Descriptor()
|
|
}
|
|
|
|
func (LogLevel) Type() protoreflect.EnumType {
|
|
return &file_runtime_bootstrap_v1_bootstrap_proto_enumTypes[0]
|
|
}
|
|
|
|
func (x LogLevel) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use LogLevel.Descriptor instead.
|
|
func (LogLevel) EnumDescriptor() ([]byte, []int) {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
// Capability defines optional features that can be negotiated between
|
|
// containerd and shims.
|
|
type Capability int32
|
|
|
|
const (
|
|
Capability_CAPABILITY_UNSPECIFIED Capability = 0
|
|
)
|
|
|
|
// Enum value maps for Capability.
|
|
var (
|
|
Capability_name = map[int32]string{
|
|
0: "CAPABILITY_UNSPECIFIED",
|
|
}
|
|
Capability_value = map[string]int32{
|
|
"CAPABILITY_UNSPECIFIED": 0,
|
|
}
|
|
)
|
|
|
|
func (x Capability) Enum() *Capability {
|
|
p := new(Capability)
|
|
*p = x
|
|
return p
|
|
}
|
|
|
|
func (x Capability) String() string {
|
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
}
|
|
|
|
func (Capability) Descriptor() protoreflect.EnumDescriptor {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_enumTypes[1].Descriptor()
|
|
}
|
|
|
|
func (Capability) Type() protoreflect.EnumType {
|
|
return &file_runtime_bootstrap_v1_bootstrap_proto_enumTypes[1]
|
|
}
|
|
|
|
func (x Capability) Number() protoreflect.EnumNumber {
|
|
return protoreflect.EnumNumber(x)
|
|
}
|
|
|
|
// Deprecated: Use Capability.Descriptor instead.
|
|
func (Capability) EnumDescriptor() ([]byte, []int) {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
// BootstrapParams contains all configuration passed from containerd to shim at startup.
|
|
type BootstrapParams struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Container/sandbox ID
|
|
InstanceID string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
|
|
// Namespace for the container
|
|
Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
|
|
// Requested shim log level.
|
|
// INFO = 0, more critical levels are positive, and more verbose
|
|
// levels are negative. This is an open enum; shims should treat
|
|
// unrecognized values by mapping to the nearest known level.
|
|
LogLevel LogLevel `protobuf:"varint,3,opt,name=log_level,json=logLevel,proto3,enum=containerd.runtime.bootstrap.v1.LogLevel" json:"log_level,omitempty"`
|
|
// containerd daemon version that is launching this shim.
|
|
ContainerdVersion string `protobuf:"bytes,4,opt,name=containerd_version,json=containerdVersion,proto3" json:"containerd_version,omitempty"`
|
|
// Containerd's TTRPC API address (e.g., "unix:///run/containerd/containerd.sock.ttrpc")
|
|
ContainerdTtrpcAddress string `protobuf:"bytes,5,opt,name=containerd_ttrpc_address,json=containerdTtrpcAddress,proto3" json:"containerd_ttrpc_address,omitempty"`
|
|
// Containerd's gRPC API address (e.g., "unix:///run/containerd/containerd.sock")
|
|
ContainerdGrpcAddress string `protobuf:"bytes,6,opt,name=containerd_grpc_address,json=containerdGrpcAddress,proto3" json:"containerd_grpc_address,omitempty"`
|
|
// Path to containerd binary for event publishing
|
|
ContainerdBinary string `protobuf:"bytes,7,opt,name=containerd_binary,json=containerdBinary,proto3" json:"containerd_binary,omitempty"`
|
|
// Extensible configuration sections for new features
|
|
// Each section can contain arbitrary structured data identified by type URL
|
|
// Examples: CRI config, NRI config, sandbox config, etc.
|
|
Extensions []*Extension `protobuf:"bytes,8,rep,name=extensions,proto3" json:"extensions,omitempty"`
|
|
// Optional directory for the shim to place its unix socket.
|
|
// If empty, the shim defaults to a short, well-known path
|
|
// (e.g., /run/containerd/s). The path must be kept short because
|
|
// the socket filename is a 64-character SHA256 hash and unix
|
|
// socket paths are limited to 104-108 bytes depending on platform.
|
|
SocketDir *string `protobuf:"bytes,9,opt,name=socket_dir,json=socketDir,proto3,oneof" json:"socket_dir,omitempty"`
|
|
}
|
|
|
|
func (x *BootstrapParams) Reset() {
|
|
*x = BootstrapParams{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *BootstrapParams) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BootstrapParams) ProtoMessage() {}
|
|
|
|
func (x *BootstrapParams) ProtoReflect() protoreflect.Message {
|
|
mi := &file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[0]
|
|
if protoimpl.UnsafeEnabled && x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use BootstrapParams.ProtoReflect.Descriptor instead.
|
|
func (*BootstrapParams) Descriptor() ([]byte, []int) {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
func (x *BootstrapParams) GetInstanceID() string {
|
|
if x != nil {
|
|
return x.InstanceID
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapParams) GetNamespace() string {
|
|
if x != nil {
|
|
return x.Namespace
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapParams) GetLogLevel() LogLevel {
|
|
if x != nil {
|
|
return x.LogLevel
|
|
}
|
|
return LogLevel_LOG_LEVEL_INFO
|
|
}
|
|
|
|
func (x *BootstrapParams) GetContainerdVersion() string {
|
|
if x != nil {
|
|
return x.ContainerdVersion
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapParams) GetContainerdTtrpcAddress() string {
|
|
if x != nil {
|
|
return x.ContainerdTtrpcAddress
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapParams) GetContainerdGrpcAddress() string {
|
|
if x != nil {
|
|
return x.ContainerdGrpcAddress
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapParams) GetContainerdBinary() string {
|
|
if x != nil {
|
|
return x.ContainerdBinary
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapParams) GetExtensions() []*Extension {
|
|
if x != nil {
|
|
return x.Extensions
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *BootstrapParams) GetSocketDir() string {
|
|
if x != nil && x.SocketDir != nil {
|
|
return *x.SocketDir
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// Extension provides extensibility for new configuration types
|
|
// without changing the core BootstrapParams protocol
|
|
type Extension struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Configuration data with embedded type URL
|
|
// Examples of type URLs:
|
|
// - "containerd.io/cri.v1.PodSandboxConfig"
|
|
// - "containerd.io/nri.v1.PluginConfig"
|
|
// - "containerd.io/sandbox.v1.SandboxConfig"
|
|
Value *anypb.Any `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
|
|
}
|
|
|
|
func (x *Extension) Reset() {
|
|
*x = Extension{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *Extension) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*Extension) ProtoMessage() {}
|
|
|
|
func (x *Extension) ProtoReflect() protoreflect.Message {
|
|
mi := &file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[1]
|
|
if protoimpl.UnsafeEnabled && x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use Extension.ProtoReflect.Descriptor instead.
|
|
func (*Extension) Descriptor() ([]byte, []int) {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *Extension) GetValue() *anypb.Any {
|
|
if x != nil {
|
|
return x.Value
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// BootstrapResult is returned by shim via stdout after successful startup
|
|
type BootstrapResult struct {
|
|
state protoimpl.MessageState
|
|
sizeCache protoimpl.SizeCache
|
|
unknownFields protoimpl.UnknownFields
|
|
|
|
// Version of shim parameters (expected 2 for shim v2)
|
|
Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"`
|
|
// Address where shim is listening (e.g., "unix:///run/containerd/shim.sock")
|
|
// Containerd will connect to this address for task operations
|
|
Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
|
|
// Protocol used by shim: "ttrpc" or "grpc"
|
|
Protocol string `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"`
|
|
// Optional: Capabilities supported by this shim instance.
|
|
// Reserved for future use to allow optional capability negotiation
|
|
// between the daemon and shim.
|
|
Capabilities []Capability `protobuf:"varint,4,rep,packed,name=capabilities,proto3,enum=containerd.runtime.bootstrap.v1.Capability" json:"capabilities,omitempty"`
|
|
// Optional: Additional metadata from shim
|
|
Metadata map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
|
}
|
|
|
|
func (x *BootstrapResult) Reset() {
|
|
*x = BootstrapResult{}
|
|
if protoimpl.UnsafeEnabled {
|
|
mi := &file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
}
|
|
|
|
func (x *BootstrapResult) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*BootstrapResult) ProtoMessage() {}
|
|
|
|
func (x *BootstrapResult) ProtoReflect() protoreflect.Message {
|
|
mi := &file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[2]
|
|
if protoimpl.UnsafeEnabled && x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use BootstrapResult.ProtoReflect.Descriptor instead.
|
|
func (*BootstrapResult) Descriptor() ([]byte, []int) {
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *BootstrapResult) GetVersion() int32 {
|
|
if x != nil {
|
|
return x.Version
|
|
}
|
|
return 0
|
|
}
|
|
|
|
func (x *BootstrapResult) GetAddress() string {
|
|
if x != nil {
|
|
return x.Address
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapResult) GetProtocol() string {
|
|
if x != nil {
|
|
return x.Protocol
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *BootstrapResult) GetCapabilities() []Capability {
|
|
if x != nil {
|
|
return x.Capabilities
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (x *BootstrapResult) GetMetadata() map[string]string {
|
|
if x != nil {
|
|
return x.Metadata
|
|
}
|
|
return nil
|
|
}
|
|
|
|
var File_runtime_bootstrap_v1_bootstrap_proto protoreflect.FileDescriptor
|
|
|
|
var file_runtime_bootstrap_v1_bootstrap_proto_rawDesc = []byte{
|
|
0x0a, 0x24, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74,
|
|
0x72, 0x61, 0x70, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70,
|
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
|
|
0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x62, 0x6f, 0x6f, 0x74, 0x73,
|
|
0x74, 0x72, 0x61, 0x70, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
|
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f,
|
|
0x74, 0x6f, 0x22, 0xe5, 0x03, 0x0a, 0x0f, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70,
|
|
0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
|
|
0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73,
|
|
0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73,
|
|
0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65,
|
|
0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76,
|
|
0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
|
|
0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x62, 0x6f,
|
|
0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65,
|
|
0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2d, 0x0a,
|
|
0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73,
|
|
0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61,
|
|
0x69, 0x6e, 0x65, 0x72, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18,
|
|
0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x5f, 0x74, 0x74, 0x72, 0x70, 0x63,
|
|
0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16,
|
|
0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x54, 0x74, 0x72, 0x70, 0x63, 0x41,
|
|
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
|
|
0x6e, 0x65, 0x72, 0x64, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
|
|
0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
|
|
0x65, 0x72, 0x64, 0x47, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b,
|
|
0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x5f, 0x62, 0x69, 0x6e,
|
|
0x61, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61,
|
|
0x69, 0x6e, 0x65, 0x72, 0x64, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x0a, 0x65,
|
|
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
|
0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e,
|
|
0x74, 0x69, 0x6d, 0x65, 0x2e, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x2e, 0x76,
|
|
0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x74,
|
|
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x65,
|
|
0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73,
|
|
0x6f, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x69, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f,
|
|
0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x22, 0x37, 0x0a, 0x09, 0x45, 0x78,
|
|
0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61,
|
|
0x6c, 0x75, 0x65, 0x22, 0xcb, 0x02, 0x0a, 0x0f, 0x42, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61,
|
|
0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
|
|
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
|
0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01,
|
|
0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70,
|
|
0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
|
|
0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x4f, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62,
|
|
0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e,
|
|
0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69,
|
|
0x6d, 0x65, 0x2e, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x2e, 0x76, 0x31, 0x2e,
|
|
0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61,
|
|
0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
|
|
0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x63, 0x6f, 0x6e,
|
|
0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e,
|
|
0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f,
|
|
0x74, 0x73, 0x74, 0x72, 0x61, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x74,
|
|
0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61,
|
|
0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
|
|
0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
|
|
0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
|
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
|
|
0x01, 0x2a, 0xad, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12,
|
|
0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f,
|
|
0x10, 0x00, 0x12, 0x1c, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f,
|
|
0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01,
|
|
0x12, 0x1c, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45,
|
|
0x42, 0x55, 0x47, 0x10, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x12,
|
|
0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e,
|
|
0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f,
|
|
0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c,
|
|
0x45, 0x56, 0x45, 0x4c, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f,
|
|
0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x10,
|
|
0x0c, 0x2a, 0x28, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12,
|
|
0x1a, 0x0a, 0x16, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e,
|
|
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x42, 0x45, 0x5a, 0x43, 0x67,
|
|
0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
|
|
0x6e, 0x65, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x64, 0x2f,
|
|
0x61, 0x70, 0x69, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x62, 0x6f, 0x6f, 0x74,
|
|
0x73, 0x74, 0x72, 0x61, 0x70, 0x2f, 0x76, 0x31, 0x3b, 0x62, 0x6f, 0x6f, 0x74, 0x73, 0x74, 0x72,
|
|
0x61, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
}
|
|
|
|
var (
|
|
file_runtime_bootstrap_v1_bootstrap_proto_rawDescOnce sync.Once
|
|
file_runtime_bootstrap_v1_bootstrap_proto_rawDescData = file_runtime_bootstrap_v1_bootstrap_proto_rawDesc
|
|
)
|
|
|
|
func file_runtime_bootstrap_v1_bootstrap_proto_rawDescGZIP() []byte {
|
|
file_runtime_bootstrap_v1_bootstrap_proto_rawDescOnce.Do(func() {
|
|
file_runtime_bootstrap_v1_bootstrap_proto_rawDescData = protoimpl.X.CompressGZIP(file_runtime_bootstrap_v1_bootstrap_proto_rawDescData)
|
|
})
|
|
return file_runtime_bootstrap_v1_bootstrap_proto_rawDescData
|
|
}
|
|
|
|
var file_runtime_bootstrap_v1_bootstrap_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
|
var file_runtime_bootstrap_v1_bootstrap_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
|
var file_runtime_bootstrap_v1_bootstrap_proto_goTypes = []interface{}{
|
|
(LogLevel)(0), // 0: containerd.runtime.bootstrap.v1.LogLevel
|
|
(Capability)(0), // 1: containerd.runtime.bootstrap.v1.Capability
|
|
(*BootstrapParams)(nil), // 2: containerd.runtime.bootstrap.v1.BootstrapParams
|
|
(*Extension)(nil), // 3: containerd.runtime.bootstrap.v1.Extension
|
|
(*BootstrapResult)(nil), // 4: containerd.runtime.bootstrap.v1.BootstrapResult
|
|
nil, // 5: containerd.runtime.bootstrap.v1.BootstrapResult.MetadataEntry
|
|
(*anypb.Any)(nil), // 6: google.protobuf.Any
|
|
}
|
|
var file_runtime_bootstrap_v1_bootstrap_proto_depIdxs = []int32{
|
|
0, // 0: containerd.runtime.bootstrap.v1.BootstrapParams.log_level:type_name -> containerd.runtime.bootstrap.v1.LogLevel
|
|
3, // 1: containerd.runtime.bootstrap.v1.BootstrapParams.extensions:type_name -> containerd.runtime.bootstrap.v1.Extension
|
|
6, // 2: containerd.runtime.bootstrap.v1.Extension.value:type_name -> google.protobuf.Any
|
|
1, // 3: containerd.runtime.bootstrap.v1.BootstrapResult.capabilities:type_name -> containerd.runtime.bootstrap.v1.Capability
|
|
5, // 4: containerd.runtime.bootstrap.v1.BootstrapResult.metadata:type_name -> containerd.runtime.bootstrap.v1.BootstrapResult.MetadataEntry
|
|
5, // [5:5] is the sub-list for method output_type
|
|
5, // [5:5] is the sub-list for method input_type
|
|
5, // [5:5] is the sub-list for extension type_name
|
|
5, // [5:5] is the sub-list for extension extendee
|
|
0, // [0:5] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_runtime_bootstrap_v1_bootstrap_proto_init() }
|
|
func file_runtime_bootstrap_v1_bootstrap_proto_init() {
|
|
if File_runtime_bootstrap_v1_bootstrap_proto != nil {
|
|
return
|
|
}
|
|
if !protoimpl.UnsafeEnabled {
|
|
file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*BootstrapParams); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*Extension); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
|
|
switch v := v.(*BootstrapResult); i {
|
|
case 0:
|
|
return &v.state
|
|
case 1:
|
|
return &v.sizeCache
|
|
case 2:
|
|
return &v.unknownFields
|
|
default:
|
|
return nil
|
|
}
|
|
}
|
|
}
|
|
file_runtime_bootstrap_v1_bootstrap_proto_msgTypes[0].OneofWrappers = []interface{}{}
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: file_runtime_bootstrap_v1_bootstrap_proto_rawDesc,
|
|
NumEnums: 2,
|
|
NumMessages: 4,
|
|
NumExtensions: 0,
|
|
NumServices: 0,
|
|
},
|
|
GoTypes: file_runtime_bootstrap_v1_bootstrap_proto_goTypes,
|
|
DependencyIndexes: file_runtime_bootstrap_v1_bootstrap_proto_depIdxs,
|
|
EnumInfos: file_runtime_bootstrap_v1_bootstrap_proto_enumTypes,
|
|
MessageInfos: file_runtime_bootstrap_v1_bootstrap_proto_msgTypes,
|
|
}.Build()
|
|
File_runtime_bootstrap_v1_bootstrap_proto = out.File
|
|
file_runtime_bootstrap_v1_bootstrap_proto_rawDesc = nil
|
|
file_runtime_bootstrap_v1_bootstrap_proto_goTypes = nil
|
|
file_runtime_bootstrap_v1_bootstrap_proto_depIdxs = nil
|
|
}
|