types

package
v25.0.0-rc.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2024 License: Apache-2.0 Imports: 6 Imported by: 533

Documentation

Index

Constants

This section is empty.

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

type Checkpoints struct{}

Checkpoints contains the details of a checkpoint

type Client

type Client interface {
	Version(ctx context.Context) (containerd.Version, error)
	// LoadContainer loads the metadata for a container from containerd.
	LoadContainer(ctx context.Context, containerID string) (Container, error)
	// NewContainer creates a new containerd container.
	NewContainer(ctx context.Context, containerID string, spec *specs.Spec, shim string, runtimeOptions interface{}, opts ...containerd.NewContainerOpts) (Container, error)
}

Client provides access to containerd features.

type Container

type Container interface {
	Start(ctx context.Context, checkpointDir string, withStdin bool, attachStdio StdioCallback) (Task, error)
	Task(ctx context.Context) (Task, error)
	// AttachTask returns the current task for the container and reattaches
	// to the IO for the running task. If no task exists for the container
	// a NotFound error is returned.
	//
	// Clients must make sure that only one reader is attached to the task.
	AttachTask(ctx context.Context, attachStdio StdioCallback) (Task, error)
	// Delete removes the container and associated resources
	Delete(context.Context) error
}

Container provides access to a containerd container.

type EventInfo

type EventInfo struct {
	ContainerID string
	ProcessID   string
	Pid         uint32
	ExitCode    uint32
	ExitedAt    time.Time
	Error       error
}

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 Process

type Process interface {
	// Pid is the system specific process id
	Pid() uint32
	// Kill sends the provided signal to the process
	Kill(ctx context.Context, signal syscall.Signal) error
	// Resize changes the width and height of the process's terminal
	Resize(ctx context.Context, width, height uint32) error
	// Delete removes the process and any resources allocated returning the exit status
	Delete(context.Context) (*containerd.ExitStatus, error)
}

Process of a container

type Resources

type Resources = specs.LinuxResources

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

type Stats

type Stats struct {
	Read time.Time
	// Metrics is expected to be either one of:
	// * github.com/containerd/cgroups/v3/cgroup1/stats.Metrics
	// * github.com/containerd/cgroups/v3/cgroup2/stats.Metrics
	Metrics interface{}
}

Stats holds metrics properties as returned by containerd

func InterfaceToStats

func InterfaceToStats(read time.Time, v interface{}) *Stats

InterfaceToStats returns a stats object from the platform-specific interface.

type StdioCallback

type StdioCallback func(io *cio.DirectIO) (cio.IO, error)

StdioCallback is called to connect a container or process stdio.

type Summary

type Summary struct{}

Summary is not used on linux

type Task

type Task interface {
	Process
	// Pause suspends the execution of the task
	Pause(context.Context) error
	// Resume the execution of the task
	Resume(context.Context) error
	Stats(ctx context.Context) (*Stats, error)
	// Pids returns a list of system specific process ids inside the task
	Pids(context.Context) ([]containerd.ProcessInfo, error)
	Summary(ctx context.Context) ([]Summary, error)
	// ForceDelete forcefully kills the task's processes and deletes the task
	ForceDelete(context.Context) error
	// Status returns the executing status of the task
	Status(ctx context.Context) (containerd.Status, error)
	// Exec creates and starts a new process inside the task
	Exec(ctx context.Context, processID string, spec *specs.Process, withStdin bool, attachStdio StdioCallback) (Process, error)
	UpdateResources(ctx context.Context, resources *Resources) error
	CreateCheckpoint(ctx context.Context, checkpointDir string, exit bool) error
}

Task provides access to a running containerd container.

Jump to

Keyboard shortcuts

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