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 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 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 ¶
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 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 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 initialzes 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 CommandConfig ¶
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 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 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
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