Documentation ¶
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
- type Shim
- type StartOpts
- type StopStatus
Constants ¶
This section is empty.
Variables ¶
var ErrNoAddress = errors.New("no shim address")
ErrNoAddress is returned when the address file has no content
Functions ¶
func AdjustOOMScore ¶ added in v1.3.0
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 ¶ added in v1.3.0
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 ¶ added in v1.5.0
BinaryPath returns the full path for the shim binary from the runtime name, empty string returns means runtime name is invalid
func CanConnect ¶ added in v1.3.9
CanConnect returns true if the socket provided at the address is accepting new connections
func NewSocket ¶
func NewSocket(address string) (*net.UnixListener, error)
NewSocket returns a new socket
func ReadAddress ¶ added in v1.3.0
ReadAddress returns the shim's socket address from the path
func ReadRuntimeOptions ¶ added in v1.7.0
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 ¶ added in v1.3.9
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 ¶ added in v1.6.0
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 ¶ added in v1.3.9
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 ¶ added in v1.3.0
type BinaryOpts func(*Config)
BinaryOpts allows the configuration of a shims binary setup
type BootstrapParams ¶ added in v1.7.0
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 ¶ added in v1.6.0
type Config ¶ added in v1.3.0
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 Manager ¶ added in v1.6.0
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 RemoteEventsPublisher ¶ added in v1.3.0
type RemoteEventsPublisher struct {
// contains filtered or unexported fields
}
RemoteEventsPublisher forwards events to a ttrpc server
func NewPublisher ¶ added in v1.3.0
func NewPublisher(address string) (*RemoteEventsPublisher, error)
NewPublisher creates a new remote events publisher
func (*RemoteEventsPublisher) Close ¶ added in v1.3.0
func (l *RemoteEventsPublisher) Close() (err error)
Close closes the remote connection and closes the done channel
func (*RemoteEventsPublisher) Done ¶ added in v1.3.0
func (l *RemoteEventsPublisher) Done() <-chan struct{}
Done returns a channel which closes when done
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 ¶ added in v1.5.0
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