oci

package
v0.0.0-...-57637f8 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2018 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ContainerStateCreated represents the created state of a container
	ContainerStateCreated = "created"
	// ContainerStatePaused represents the paused state of a container
	ContainerStatePaused = "paused"
	// ContainerStateRunning represents the running state of a container
	ContainerStateRunning = "running"
	// ContainerStateStopped represents the stopped state of a container
	ContainerStateStopped = "stopped"
	// ContainerCreateTimeout represents the value of container creating timeout
	ContainerCreateTimeout = 240 * time.Second

	// CgroupfsCgroupsManager represents cgroupfs native cgroup manager
	CgroupfsCgroupsManager = "cgroupfs"
	// SystemdCgroupsManager represents systemd native cgroup manager
	SystemdCgroupsManager = "systemd"
	// ContainerExitsDir is the location of container exit dirs
	ContainerExitsDir = "/var/run/crio/exits"
	// ContainerAttachSocketDir is the location for container attach sockets
	ContainerAttachSocketDir = "/var/run/crio"
)

Variables

This section is empty.

Functions

func PrepareProcessExec

func PrepareProcessExec(c *Container, cmd []string, tty bool) (*os.File, error)

PrepareProcessExec returns the path of the process.json used in runc exec -p caller is responsible to close the returned *os.File if needed.

Types

type Container

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

Container represents a runtime container.

func NewContainer

func NewContainer(id string, name string, bundlePath string, logPath string, netns ns.NetNS, labels map[string]string, crioAnnotations map[string]string, annotations map[string]string, image string, imageName string, imageRef string, metadata *pb.ContainerMetadata, sandbox string, terminal bool, stdin bool, stdinOnce bool, privileged bool, trusted bool, dir string, created time.Time, stopSignal string) (*Container, error)

NewContainer creates a container object.

func (*Container) AddVolume

func (c *Container) AddVolume(v ContainerVolume)

AddVolume adds a volume to list of container volumes.

func (*Container) Annotations

func (c *Container) Annotations() map[string]string

Annotations returns the annotations of the container.

func (*Container) BundlePath

func (c *Container) BundlePath() string

BundlePath returns the bundlePath of the container.

func (*Container) CreatedAt

func (c *Container) CreatedAt() time.Time

CreatedAt returns the container creation time

func (*Container) CrioAnnotations

func (c *Container) CrioAnnotations() map[string]string

CrioAnnotations returns the crio annotations of the container.

func (*Container) Dir

func (c *Container) Dir() string

Dir returns the the dir of the container

func (*Container) FromDisk

func (c *Container) FromDisk() error

FromDisk restores container's state from disk

func (*Container) GetStopSignal

func (c *Container) GetStopSignal() string

GetStopSignal returns the container's own stop signal configured from the image configuration or the default one.

func (*Container) ID

func (c *Container) ID() string

ID returns the id of the container.

func (*Container) Image

func (c *Container) Image() string

Image returns the image of the container.

func (*Container) ImageName

func (c *Container) ImageName() string

ImageName returns the image name of the container.

func (*Container) ImageRef

func (c *Container) ImageRef() string

ImageRef returns the image ref of the container.

func (*Container) Labels

func (c *Container) Labels() map[string]string

Labels returns the labels of the container.

func (*Container) LogPath

func (c *Container) LogPath() string

LogPath returns the log path of the container.

func (*Container) Metadata

func (c *Container) Metadata() *pb.ContainerMetadata

Metadata returns the metadata of the container.

func (*Container) MountPoint

func (c *Container) MountPoint() string

MountPoint returns the container mount point

func (*Container) Name

func (c *Container) Name() string

Name returns the name of the container.

func (*Container) NetNsPath

func (c *Container) NetNsPath() (string, error)

NetNsPath returns the path to the network namespace of the container.

func (*Container) Sandbox

func (c *Container) Sandbox() string

Sandbox returns the sandbox name of the container.

func (*Container) SeccompProfilePath

func (c *Container) SeccompProfilePath() string

SeccompProfilePath returns the seccomp profile path

func (*Container) SetMountPoint

func (c *Container) SetMountPoint(mp string)

SetMountPoint sets the container mount point

func (*Container) SetSeccompProfilePath

func (c *Container) SetSeccompProfilePath(pp string)

SetSeccompProfilePath sets the seccomp profile path

func (*Container) SetSpec

func (c *Container) SetSpec(s *specs.Spec)

SetSpec loads the OCI spec in the container struct

func (*Container) SetState

func (c *Container) SetState(state *ContainerState)

SetState sets the conainer state

XXX: DO NOT EVER USE THIS, THIS IS JUST USEFUL FOR MOCKING!!!

func (*Container) Spec

func (c *Container) Spec() specs.Spec

Spec returns a copy of the spec for the container

func (*Container) State

func (c *Container) State() *ContainerState

State returns the state of the running container

func (*Container) StatePath

func (c *Container) StatePath() string

StatePath returns the containers state.json path

func (*Container) Volumes

func (c *Container) Volumes() []ContainerVolume

Volumes returns the list of container volumes.

type ContainerState

type ContainerState struct {
	specs.State
	Created   time.Time `json:"created"`
	Started   time.Time `json:"started,omitempty"`
	Finished  time.Time `json:"finished,omitempty"`
	ExitCode  int32     `json:"exitCode,omitempty"`
	OOMKilled bool      `json:"oomKilled,omitempty"`
	Error     string    `json:"error,omitempty"`
}

ContainerState represents the status of a container.

type ContainerStorer

type ContainerStorer interface {
	// Add appends a new container to the store.
	Add(string, *Container)
	// Get returns a container from the store by the identifier it was stored with.
	Get(string) *Container
	// Delete removes a container from the store by the identifier it was stored with.
	Delete(string)
	// List returns a list of containers from the store.
	List() []*Container
	// Size returns the number of containers in the store.
	Size() int
	// First returns the first container found in the store by a given filter.
	First(StoreFilter) *Container
	// ApplyAll calls the reducer function with every container in the store.
	ApplyAll(StoreReducer)
}

ContainerStorer defines an interface that any container store must implement.

func NewMemoryStore

func NewMemoryStore() ContainerStorer

NewMemoryStore initializes a new memory store.

type ContainerVolume

type ContainerVolume struct {
	ContainerPath string `json:"container_path"`
	HostPath      string `json:"host_path"`
	Readonly      bool   `json:"readonly"`
}

ContainerVolume is a bind mount for the container.

type ExecSyncError

type ExecSyncError struct {
	Stdout   bytes.Buffer
	Stderr   bytes.Buffer
	ExitCode int32
	Err      error
}

ExecSyncError wraps command's streams, exit code and error on ExecSync error.

func (ExecSyncError) Error

func (e ExecSyncError) Error() string

type ExecSyncResponse

type ExecSyncResponse struct {
	Stdout   []byte
	Stderr   []byte
	ExitCode int32
}

ExecSyncResponse is returned from ExecSync.

type History

type History []*Container

History is a convenience type for storing a list of containers, sorted by creation date in descendant order.

func (*History) Len

func (history *History) Len() int

Len returns the number of containers in the history.

func (*History) Less

func (history *History) Less(i, j int) bool

Less compares two containers and returns true if the second one was created before the first one.

func (*History) Swap

func (history *History) Swap(i, j int)

Swap switches containers i and j positions in the history.

type Runtime

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

Runtime stores the information about a oci runtime

func New

func New(runtimeTrustedPath string,
	runtimeUntrustedPath string,
	trustLevel string,
	conmonPath string,
	conmonEnv []string,
	cgroupManager string,
	containerExitsDir string,
	logSizeMax int64,
	noPivot bool) (*Runtime, error)

New creates a new Runtime with options provided

func (*Runtime) ContainerStatus

func (r *Runtime) ContainerStatus(c *Container) *ContainerState

ContainerStatus returns the state of a container.

func (*Runtime) CreateContainer

func (r *Runtime) CreateContainer(c *Container, cgroupParent string) (err error)

CreateContainer creates a container.

func (*Runtime) DeleteContainer

func (r *Runtime) DeleteContainer(c *Container) error

DeleteContainer deletes a container.

func (*Runtime) ExecSync

func (r *Runtime) ExecSync(c *Container, command []string, timeout int64) (resp *ExecSyncResponse, err error)

ExecSync execs a command in a container and returns it's stdout, stderr and return code.

func (*Runtime) Name

func (r *Runtime) Name() string

Name returns the name of the OCI Runtime

func (*Runtime) NetworkReady

func (r *Runtime) NetworkReady() (bool, error)

NetworkReady checks if the runtime network is up and ready to accept containers which require container network.

func (*Runtime) Path

func (r *Runtime) Path(c *Container) string

Path returns the full path the OCI Runtime executable. Depending if the container is privileged and/or trusted, this will return either the trusted or untrusted runtime path.

func (*Runtime) PauseContainer

func (r *Runtime) PauseContainer(c *Container) error

PauseContainer pauses a container.

func (*Runtime) RuntimeReady

func (r *Runtime) RuntimeReady() (bool, error)

RuntimeReady checks if the runtime is up and ready to accept basic containers e.g. container only needs host network.

func (*Runtime) SetStartFailed

func (r *Runtime) SetStartFailed(c *Container, err error)

SetStartFailed sets the container state appropriately after a start failure

func (*Runtime) StartContainer

func (r *Runtime) StartContainer(c *Container) error

StartContainer starts a container.

func (*Runtime) StopContainer

func (r *Runtime) StopContainer(ctx context.Context, c *Container, timeout int64) error

StopContainer stops a container. Timeout is given in seconds.

func (*Runtime) UnpauseContainer

func (r *Runtime) UnpauseContainer(c *Container) error

UnpauseContainer unpauses a container.

func (*Runtime) UpdateContainer

func (r *Runtime) UpdateContainer(c *Container, res *rspec.LinuxResources) error

UpdateContainer updates container resources

func (*Runtime) UpdateStatus

func (r *Runtime) UpdateStatus(c *Container) error

UpdateStatus refreshes the status of the container.

func (*Runtime) Version

func (r *Runtime) Version() (string, error)

Version returns the version of the OCI Runtime

type StoreFilter

type StoreFilter func(*Container) bool

StoreFilter defines a function to filter container in the store.

type StoreReducer

type StoreReducer func(*Container)

StoreReducer defines a function to manipulate containers in the store

Jump to

Keyboard shortcuts

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