package shim
import "github.com/containerd/containerd/runtime/v2/shim"
Index ¶
- Variables
- func AdjustOOMScore(pid int) error
- func AnonDialer(address string, timeout time.Duration) (net.Conn, error)
- func AnonReconnectDialer(address string, timeout time.Duration) (net.Conn, error)
- func BinaryName(runtime string) string
- func BinaryPath(runtime string) string
- func CanConnect(address string) bool
- func Command(ctx context.Context, config *CommandConfig) (*exec.Cmd, error)
- func Connect(address string, d func(string, time.Duration) (net.Conn, error)) (net.Conn, error)
- func NewSocket(address string) (*net.UnixListener, error)
- func ReadAddress(path string) (string, error)
- func ReadRuntimeOptions[T any](reader io.Reader) (T, error)
- func RemoveSocket(address string) error
- func Run(name string, initFunc Init, opts ...BinaryOpts)
- func RunManager(ctx context.Context, manager Manager, opts ...BinaryOpts)
- func SocketAddress(ctx context.Context, socketPath, id string) (string, error)
- func SocketEaddrinuse(err error) bool
- func WriteAddress(path, address string) error
- func WritePidFile(path string, pid int) error
- type BinaryOpts
- type BootstrapParams
- type CommandConfig
- type Config
- type Init
- type Manager
- type Opts
- type OptsKey
- type Publisher
- type RemoteEventsPublisher
- func NewPublisher(address string) (*RemoteEventsPublisher, error)
- func (l *RemoteEventsPublisher) Close() (err error)
- func (l *RemoteEventsPublisher) Done() <-chan struct{}
- func (l *RemoteEventsPublisher) Publish(ctx context.Context, topic string, event events.Event) error
- type Shim
- type StartOpts
- type StopStatus
Variables ¶
ErrNoAddress is returned when the address file has no content
Functions ¶
func AdjustOOMScore ¶
AdjustOOMScore sets the OOM score for the process to the parents OOM score +1 to ensure that they parent has a lower* score than the shim if not already at the maximum OOM Score
func AnonDialer ¶
AnonDialer returns a dialer for a socket
func AnonReconnectDialer ¶
AnonReconnectDialer returns a dialer for an existing socket on reconnection
func BinaryName ¶
BinaryName returns the shim binary name from the runtime name, empty string returns means runtime name is invalid
func BinaryPath ¶
BinaryPath returns the full path for the shim binary from the runtime name, empty string returns means runtime name is invalid
func CanConnect ¶
CanConnect returns true if the socket provided at the address is accepting new connections
func Command ¶
Command returns the shim command with the provided args and configuration
func Connect ¶
Connect to the provided address
func NewSocket ¶
func NewSocket(address string) (*net.UnixListener, error)
NewSocket returns a new socket
func ReadAddress ¶
ReadAddress returns the shim's socket address from the path
func ReadRuntimeOptions ¶
ReadRuntimeOptions reads config bytes from io.Reader and unmarshals it into the provided type. The type must be registered with typeurl.
The function will return ErrNotFound, if the config is not provided. And ErrInvalidArgument, if unable to cast the config to the provided type T.
func RemoveSocket ¶
RemoveSocket removes the socket at the specified address if it exists on the filesystem
func Run ¶
func Run(name string, initFunc Init, opts ...BinaryOpts)
Run initializes and runs a shim server TODO(2.0): Remove function
func RunManager ¶
func RunManager(ctx context.Context, manager Manager, opts ...BinaryOpts)
RunManager initializes and runs a shim server. TODO(2.0): Rename to Run
func SocketAddress ¶
SocketAddress returns a socket address
func SocketEaddrinuse ¶
SocketEaddrinuse returns true if the provided error is caused by the EADDRINUSE error number
func WriteAddress ¶
WriteAddress writes a address file atomically
func WritePidFile ¶
WritePidFile writes a pid file atomically
Types ¶
type BinaryOpts ¶
type BinaryOpts func(*Config)
BinaryOpts allows the configuration of a shims binary setup
type BootstrapParams ¶
type BootstrapParams struct { // Version is the version of shim parameters (expected 2 for shim v2) Version int `json:"version"` // Address is a address containerd should use to connect to shim. Address string `json:"address"` // Protocol is either TTRPC or GRPC. Protocol string `json:"protocol"` }
BootstrapParams is a JSON payload returned in stdout from shim.Start call.
type CommandConfig ¶
type CommandConfig struct { Runtime string Address string TTRPCAddress string Path string SchedCore bool Args []string Opts *types.Any }
type Config ¶
type Config struct { // NoSubreaper disables setting the shim as a child subreaper NoSubreaper bool // NoReaper disables the shim binary from reaping any child process implicitly NoReaper bool // NoSetupLogger disables automatic configuration of logrus to use the shim FIFO NoSetupLogger bool }
Config of shim binary options provided by shim implementations
type Init ¶
Init func for the creation of a shim server TODO(2.0): Remove init function
type Manager ¶
type Manager interface { Name() string Start(ctx context.Context, id string, opts StartOpts) (string, error) Stop(ctx context.Context, id string) (StopStatus, error) }
Manager is the interface which manages the shim process
type Opts ¶
Opts are context options associated with the shim invocation.
type OptsKey ¶
type OptsKey struct{}
OptsKey is the context key for the Opts value.
type Publisher ¶
Publisher for events
type RemoteEventsPublisher ¶
type RemoteEventsPublisher struct {
// contains filtered or unexported fields
}
RemoteEventsPublisher forwards events to a ttrpc server
func NewPublisher ¶
func NewPublisher(address string) (*RemoteEventsPublisher, error)
NewPublisher creates a new remote events publisher
func (*RemoteEventsPublisher) Close ¶
func (l *RemoteEventsPublisher) Close() (err error)
Close closes the remote connection and closes the done channel
func (*RemoteEventsPublisher) Done ¶
func (l *RemoteEventsPublisher) Done() <-chan struct{}
Done returns a channel which closes when done
func (*RemoteEventsPublisher) Publish ¶
func (l *RemoteEventsPublisher) Publish(ctx context.Context, topic string, event events.Event) error
Publish publishes the event by forwarding it to the configured ttrpc server
type Shim ¶
type Shim interface { shimapi.TaskService Cleanup(ctx context.Context) (*shimapi.DeleteResponse, error) StartShim(ctx context.Context, opts StartOpts) (string, error) }
Shim server interface TODO(2.0): Remove unified shim interface
type StartOpts ¶
type StartOpts struct { ID string // TODO(2.0): Remove ID, passed directly to start for call symmetry ContainerdBinary string // TODO(2.0): Remove ContainerdBinary, use the TTRPC_ADDRESS env to forward events Address string TTRPCAddress string Debug bool }
StartOpts describes shim start configuration received from containerd
type StopStatus ¶
Source Files ¶
publisher.go shim.go shim_unix.go util.go util_unix.go
- Version
- v1.7.10
- Published
- Nov 29, 2023
- Platform
- js/wasm
- Imports
- 40 packages
- Last checked
- 16 minutes ago –
Tools for package owners.