llif

package
v0.0.0-...-ba0f412 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2021 License: ISC Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ExecCreateInput

type ExecCreateInput struct {
	ExecGenericInput
}

type ExecDestroyInput

type ExecDestroyInput struct {
	ExecGenericInput
}

type ExecGenericInput

type ExecGenericInput struct {
	// ContainerId is the id of the container
	ContainerId string

	// ContainerRoot signifies the root of the container's existence on the
	// host
	ContainerRoot string

	// Config contains the configuration of the container
	Config *configs.Config

	// The state of LL handlers
	FsState      *LLState
	NetworkState *LLState
	ExecState    *LLState
}

type ExecHandler

type ExecHandler interface {
	ExecCreateFunc(*ExecCreateInput) (*LLState, error)
	// ExecRunFunc should not return unless it runs into an error
	// TODO(runllc): Change this to possibly return state
	ExecRunFunc(*ExecRunInput) error
	ExecDestroyFunc(*ExecDestroyInput) (*LLState, error)
}

type ExecRunInput

type ExecRunInput struct {
	ExecGenericInput
}

type FsCreateInput

type FsCreateInput struct {
	FsGenericInput
}

type FsDestroyInput

type FsDestroyInput struct {
	FsGenericInput
}

type FsGenericInput

type FsGenericInput struct {
	// ContainerId is the id of the container
	ContainerId string

	// ContainerRoot signifies the root of the container's existence on the
	// host
	ContainerRoot string

	// Config contains the configuration of the container
	Config *configs.Config

	// The state of LL handlers
	FsState      *LLState
	NetworkState *LLState
	ExecState    *LLState
}

type FsHandler

type FsHandler interface {
	FsCreateFunc(*FsCreateInput) (*LLState, error)
	FsRunFunc(*FsRunInput) (*LLState, error)
	FsDestroyFunc(*FsDestroyInput) (*LLState, error)
}

type FsRunInput

type FsRunInput struct {
	FsGenericInput
}

type LLState

type LLState struct {
	// Options is the map of parameters that will be stored in the config and
	// passed along across different operations. Entries in this map set
	// in the output of the Create phase will be present in the input of the
	// Run phase.
	// TODO(runllc): Need to figure out how to save state in Exec phase or is
	// there a need to?
	Options map[string]string `json:"options"`

	// InMemoryObjects is the map of objects that can be shared with other handlers
	// within the same operation (i.e. in-memory data structures). The entries
	// from the output of the Create phase will not be accessible to the
	// Run phase. However, they will be accessible by the Exec handler of the
	// same phase.
	InMemoryObjects map[string]interface{} `json:"-"`
}

type NetworkCreateInput

type NetworkCreateInput struct {
	NetworkGenericInput
}

type NetworkDestroyInput

type NetworkDestroyInput struct {
	NetworkGenericInput
}

type NetworkGenericInput

type NetworkGenericInput struct {
	// ContainerId is the id of the container
	ContainerId string

	// ContainerRoot signifies the root of the container's existence on the
	// host
	ContainerRoot string

	// Config contains the configuration of the container
	Config *configs.Config

	// The state of LL handlers
	FsState      *LLState
	NetworkState *LLState
	ExecState    *LLState
}

type NetworkHandler

type NetworkHandler interface {
	NetworkCreateFunc(*NetworkCreateInput) (*LLState, error)
	NetworkRunFunc(*NetworkRunInput) (*LLState, error)
	NetworkDestroyFunc(*NetworkDestroyInput) (*LLState, error)
}

type NetworkRunInput

type NetworkRunInput struct {
	NetworkGenericInput
}

type RunllcHandler

type RunllcHandler struct {
	FsH      FsHandler
	NetworkH NetworkHandler
	ExecH    ExecHandler
}

RunllcHandler is the interface that is needed to be implemented in order to create a Low Level OCI runtime with Runllc.

There are 3 extensible components and 3 integration points.

The 3 extensible components are the filesystem, network, and execution. Thus, there are 3 separate handles for each of them. Fs, Network, Exec.

There are 3 different integration points, creation of the container, Running of the container, and finally, the destruction of the container.

The order of which the handlers are run are as follows: Integration: Create Order: FsCreateFunc, NetworkCreateFunc, ExecCreateFunc

Integration: Run Order: FsRunFunc, NetworkRunFunc, ExecRunFunc

Integration: Destroy (this is the backward order from the previous two) Order: ExecDestroyFunc, NetworkDestroyFunc, FsDestroyFunc

Jump to

Keyboard shortcuts

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