libcontainerd

package
v17.11.0-ce+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2020 License: Apache-2.0 Imports: 36 Imported by: 375

Documentation

Index

Constants

View Source
const InitProcessName = "init"

InitProcessName is the name given to the first process of a container

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend interface {
	ProcessEvent(containerID string, event EventType, ei EventInfo) error
}

Backend defines callbacks that the client of the library needs to implement.

type Checkpoints added in v1.13.0

type Checkpoints struct{}

Checkpoints contains the details of a checkpoint

type Client

type Client interface {
	Version(ctx context.Context) (containerd.Version, error)

	Restore(ctx context.Context, containerID string, attachStdio StdioCallback) (alive bool, pid int, err error)

	Create(ctx context.Context, containerID string, spec *specs.Spec, runtimeOptions interface{}) error
	Start(ctx context.Context, containerID, checkpointDir string, withStdin bool, attachStdio StdioCallback) (pid int, err error)
	SignalProcess(ctx context.Context, containerID, processID string, signal int) error
	Exec(ctx context.Context, containerID, processID string, spec *specs.Process, withStdin bool, attachStdio StdioCallback) (int, error)
	ResizeTerminal(ctx context.Context, containerID, processID string, width, height int) error
	CloseStdin(ctx context.Context, containerID, processID string) error
	Pause(ctx context.Context, containerID string) error
	Resume(ctx context.Context, containerID string) error
	Stats(ctx context.Context, containerID string) (*Stats, error)
	ListPids(ctx context.Context, containerID string) ([]uint32, error)
	Summary(ctx context.Context, containerID string) ([]Summary, error)
	DeleteTask(ctx context.Context, containerID string) (uint32, time.Time, error)
	Delete(ctx context.Context, containerID string) error
	Status(ctx context.Context, containerID string) (Status, error)

	UpdateResources(ctx context.Context, containerID string, resources *Resources) error
	CreateCheckpoint(ctx context.Context, containerID, checkpointDir string, exit bool) error
}

Client provides access to containerd features.

type EventInfo

type EventInfo struct {
	ContainerID string
	ProcessID   string
	Pid         uint32
	ExitCode    uint32
	ExitedAt    time.Time
	OOMKilled   bool
	// Windows Only field
	UpdatePending bool
}

EventInfo contains the event info

type EventType

type EventType string

EventType represents a possible event from libcontainerd

const (
	EventUnknown     EventType = "unknown"
	EventExit        EventType = "exit"
	EventOOM         EventType = "oom"
	EventCreate      EventType = "create"
	EventStart       EventType = "start"
	EventExecAdded   EventType = "exec-added"
	EventExecStarted EventType = "exec-started"
	EventPaused      EventType = "paused"
	EventResumed     EventType = "resumed"
)

Event constants used when reporting events

type IOPipe

type IOPipe struct {
	Stdin    io.WriteCloser
	Stdout   io.ReadCloser
	Stderr   io.ReadCloser
	Terminal bool // Whether stderr is connected on Windows
	// contains filtered or unexported fields
}

IOPipe contains the stdio streams.

func (*IOPipe) Cancel

func (p *IOPipe) Cancel()

Cancel aborts ongoing operations if they have not completed yet

func (*IOPipe) Close

func (p *IOPipe) Close() error

Close closes the underlying pipes

func (*IOPipe) Config

func (p *IOPipe) Config() containerd.IOConfig

Config returns the containerd.IOConfig of this pipe set

func (*IOPipe) Wait

func (p *IOPipe) Wait()

Wait waits for io operations to finish

type Remote

type Remote interface {
	// Client returns a new Client instance connected with given Backend.
	NewClient(namespace string, backend Backend) (Client, error)
	// Cleanup stops containerd if it was started by libcontainerd.
	// Note this is not used on Windows as there is no remote containerd.
	Cleanup()
}

Remote on Linux defines the accesspoint to the containerd grpc API. Remote on Windows is largely an unimplemented interface as there is no remote containerd.

func New

func New(rootDir, stateDir string, options ...RemoteOption) (rem Remote, err error)

New creates a fresh instance of libcontainerd remote.

type RemoteOption

type RemoteOption interface {
	Apply(Remote) error
}

RemoteOption allows to configure parameters of remotes. This is unused on Windows.

func WithDebugAddress

func WithDebugAddress(addr string) RemoteOption

WithDebugAddress defines at which location the debug GRPC connection should be made

func WithLogLevel

func WithLogLevel(lvl string) RemoteOption

WithLogLevel defines which log level to starts containerd with. This only makes sense if WithStartDaemon() was set to true.

func WithMetricsAddress

func WithMetricsAddress(addr string) RemoteOption

WithMetricsAddress defines at which location the debug GRPC connection should be made

func WithOOMScore added in v1.12.0

func WithOOMScore(score int) RemoteOption

WithOOMScore defines the oom_score_adj to set for the containerd process.

func WithPlugin

func WithPlugin(name string, conf interface{}) RemoteOption

WithPlugin allow configuring a containerd plugin configuration values passed needs to be quoted if quotes are needed in the toml format.

func WithRemoteAddr

func WithRemoteAddr(addr string) RemoteOption

WithRemoteAddr sets the external containerd socket to connect to.

func WithRemoteAddrUser

func WithRemoteAddrUser(uid, gid int) RemoteOption

WithRemoteAddrUser sets the uid and gid to create the RPC address with

func WithSnapshotter

func WithSnapshotter(name string) RemoteOption

WithSnapshotter defines snapshotter driver should be used

func WithStartDaemon

func WithStartDaemon(start bool) RemoteOption

WithStartDaemon defines if libcontainerd should also run containerd daemon.

func WithSubreaper

func WithSubreaper(reap bool) RemoteOption

WithSubreaper sets whether containerd should register itself as a subreaper

type Resources

type Resources specs.LinuxResources

Resources defines updatable container resource values. TODO: it must match containerd upcoming API

type ServerVersion added in v1.13.0

type ServerVersion struct {
}

ServerVersion contains version information as retrieved from the server

type Stats

type Stats struct {
	Read    time.Time
	Metrics *cgroups.Metrics
}

Stats holds metrics properties as returned by containerd

type Status

type Status string

Status represents the current status of a container

const (
	// Running indicates the process is currently executing
	StatusRunning Status = "running"
	// Created indicates the process has been created within containerd but the
	// user's defined process has not started
	StatusCreated Status = "created"
	// Stopped indicates that the process has ran and exited
	StatusStopped Status = "stopped"
	// Paused indicates that the process is currently paused
	StatusPaused Status = "paused"
	// Pausing indicates that the process is currently switching from a
	// running state into a paused state
	StatusPausing Status = "pausing"
	// Unknown indicates that we could not determine the status from the runtime
	StatusUnknown Status = "unknown"
)

Possible container statuses

type StdioCallback added in v1.12.4

type StdioCallback func(*IOPipe) (containerd.IO, error)

StdioCallback is called to connect a container or process stdio.

type Summary

type Summary struct{}

Summary is not used on linux

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL