Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoAddress = errors.New("no shim address")

    ErrNoAddress is returned when the address file has no content

    Functions

    func AdjustOOMScore

    func AdjustOOMScore(pid int) error

      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

      func AnonDialer

      func AnonDialer(address string, timeout time.Duration) (net.Conn, error)

        AnonDialer returns a dialer for a socket

        func AnonReconnectDialer

        func AnonReconnectDialer(address string, timeout time.Duration) (net.Conn, error)

        func BinaryName

        func BinaryName(runtime string) string

          BinaryName returns the shim binary name from the runtime name, empty string returns means runtime name is invalid

          func CanConnect

          func CanConnect(address string) bool

            CanConnect returns true if the socket provided at the address is accepting new connections

            func Command

            func Command(ctx context.Context, runtime, containerdAddress, containerdTTRPCAddress, path string, opts *types.Any, cmdArgs ...string) (*exec.Cmd, error)

              Command returns the shim command with the provided args and configuration

              func Connect

              func Connect(address string, d func(string, time.Duration) (net.Conn, error)) (net.Conn, error)

                Connect to the provided address

                func NewSocket

                func NewSocket(address string) (*net.UnixListener, error)

                  NewSocket returns a new socket

                  func ReadAddress

                  func ReadAddress(path string) (string, error)

                    ReadAddress returns the shim's socket address from the path

                    func RemoveSocket

                    func RemoveSocket(address string) error

                      RemoveSocket removes the socket at the specified address if it exists on the filesystem

                      func Run

                      func Run(id string, initFunc Init, opts ...BinaryOpts)

                        Run initializes and runs a shim server

                        func SetScore

                        func SetScore(pid int) error

                          SetScore sets the oom score for a process

                          func SocketAddress

                          func SocketAddress(ctx context.Context, socketPath, id string) (string, error)

                            SocketAddress returns a socket address

                            func SocketEaddrinuse

                            func SocketEaddrinuse(err error) bool

                              SocketEaddrinuse returns true if the provided error is caused by the EADDRINUSE error number

                              func WriteAddress

                              func WriteAddress(path, address string) error

                                WriteAddress writes a address file atomically

                                func WritePidFile

                                func WritePidFile(path string, pid int) error

                                  WritePidFile writes a pid file atomically

                                  Types

                                  type BinaryOpts

                                  type BinaryOpts func(*Config)

                                    BinaryOpts allows the configuration of a shims binary setup

                                    type Client

                                    type Client struct {
                                    	// contains filtered or unexported fields
                                    }

                                      Client for a shim server

                                      func NewShimClient

                                      func NewShimClient(ctx context.Context, svc shimapi.TaskService, signals chan os.Signal) *Client

                                        NewShimClient creates a new shim server client

                                        func (*Client) Serve

                                        func (s *Client) Serve() error

                                          Serve the shim server

                                          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

                                            type Init func(context.Context, string, Publisher, func()) (Shim, error)

                                              Init func for the creation of a shim server

                                              type Opts

                                              type Opts struct {
                                              	BundlePath string
                                              	Debug      bool
                                              }

                                                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

                                                  type Publisher interface {
                                                  	events.Publisher
                                                  	io.Closer
                                                  }

                                                    Publisher for events

                                                    type RemoteEventsPublisher

                                                    type RemoteEventsPublisher struct {
                                                    	// contains filtered or unexported fields
                                                    }

                                                    func NewPublisher

                                                    func NewPublisher(address string) (*RemoteEventsPublisher, error)

                                                    func (*RemoteEventsPublisher) Close

                                                    func (l *RemoteEventsPublisher) Close() (err error)

                                                    func (*RemoteEventsPublisher) Done

                                                    func (l *RemoteEventsPublisher) Done() <-chan struct{}

                                                    func (*RemoteEventsPublisher) Publish

                                                    func (l *RemoteEventsPublisher) Publish(ctx context.Context, topic string, event events.Event) error

                                                    type Shim

                                                    type Shim interface {
                                                    	shimapi.TaskService
                                                    	Cleanup(ctx context.Context) (*shimapi.DeleteResponse, error)
                                                    	StartShim(ctx context.Context, id, containerdBinary, containerdAddress, containerdTTRPCAddress string) (string, error)
                                                    }

                                                      Shim server interface