// //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 }