package runtime

import "github.com/Microsoft/opengcs/service/gcs/runtime"

Package runtime defines the interface between the GCS and an OCI container runtime.

Index

Types

type Container

type Container interface {
	Process
	ID() string
	Exists() (bool, error)
	Start() error
	ExecProcess(process *oci.Process, stdioSet *stdio.ConnectionSet) (p Process, err error)
	Kill(signal syscall.Signal) error
	Pause() error
	Resume() error
	GetState() (*ContainerState, error)
	GetRunningProcesses() ([]ContainerProcessState, error)
	GetAllProcesses() ([]ContainerProcessState, error)
	Update(resources string) error
}

Container is an interface to manipulate container state.

type ContainerProcessState

type ContainerProcessState struct {
	Pid              int
	Command          []string
	CreatedByRuntime bool
	IsZombie         bool
}

ContainerProcessState gives information about a process created by a Runtime.

type ContainerState

type ContainerState struct {
	OCIVersion string
	ID         string
	Pid        int
	BundlePath string
	RootfsPath string
	Status     string
	Created    string
}

ContainerState gives information about a container created by a Runtime.

type Process

type Process interface {
	Wait() (int, error)
	Pid() int
	Delete() error
	Tty() *stdio.TtyRelay
	PipeRelay() *stdio.PipeRelay
}

Process is an interface to manipulate process state.

type Runtime

type Runtime interface {
	CreateContainer(id string, bundlePath string, stdioSet *stdio.ConnectionSet) (c Container, err error)
	ListContainerStates() ([]ContainerState, error)
}

Runtime is the interface defining commands over an OCI container runtime, such as runC.

type StdioPipes

type StdioPipes struct {
	In  io.WriteCloser
	Out io.ReadCloser
	Err io.ReadCloser
}

StdioPipes contain the interfaces for reading from and writing to a process's stdio.

Source Files

runtime.go

Directories

PathSynopsis
service/gcs/runtime/mockruntimePackage mockruntime defines a mock implementation of the Runtime interface.
service/gcs/runtime/runcPackage runc defines an implementation of the Runtime interface which uses runC as the container runtime.
Version
v0.4.0 (latest)
Published
Dec 4, 2020
Platform
linux/amd64
Imports
4 packages
Last checked
3 weeks ago

Tools for package owners.