Documentation ¶
Overview ¶
Package boot loads the kernel and runs the application.
Index ¶
- Constants
- func ApplyCaps(conf *Config, caps *specs.LinuxCapabilities) error
- func ControlSocketAddr(id string) string
- type Config
- type CreateLinksAndRoutesArgs
- type DefaultRoute
- type Event
- type FDBasedLink
- type FileAccessType
- type Loader
- type LoopbackLink
- type Memory
- type MemoryEntry
- type Network
- type NetworkType
- type Pids
- type PlatformType
- type Route
- type Stats
Constants ¶
const ( // ApplicationStart is the URPC endpoint for starting a sandboxed app. ApplicationStart = "application.Start" // ApplicationProcesses is the URPC endpoint for getting the list of // processes running in a sandbox. ApplicationProcesses = "application.Processes" // ApplicationExecute is the URPC endpoint for executing a command in a // sandbox. ApplicationExecute = "application.Execute" // ApplicationEvent is the URPC endpoint for getting stats about the // container used by "runsc events". ApplicationEvent = "application.Event" // NetworkCreateLinksAndRoutes is the URPC endpoint for creating links // and routes in a network stack. NetworkCreateLinksAndRoutes = "Network.CreateLinksAndRoutes" )
Variables ¶
This section is empty.
Functions ¶
func ApplyCaps ¶
func ApplyCaps(conf *Config, caps *specs.LinuxCapabilities) error
ApplyCaps applies the capabilities in the spec to the current thread.
Note that it must be called with current thread locked.
func ControlSocketAddr ¶
ControlSocketAddr generates an abstract unix socket name for the given id.
Types ¶
type Config ¶
type Config struct { // RootDir is the runtime root directory. RootDir string // FileAccess indicates how the filesystem is accessed. FileAccess FileAccessType // Overlay is whether to wrap the root filesystem in an overlay. Overlay bool // Network indicates what type of network to use. Network NetworkType // LogPackets indicates that all network packets should be logged. LogPackets bool // Platform is the platform to run on. Platform PlatformType // Strace indicates that strace should be enabled. Strace bool // StraceSyscalls is the set of syscalls to trace. If StraceEnable is // true and this list is empty, then all syscalls will be traced. StraceSyscalls []string // StraceLogSize is the max size of data blobs to display. StraceLogSize uint // DisableSeccomp indicates whether seccomp syscall filters should be // disabled. Pardon the double negation, but default to enabled is important. DisableSeccomp bool }
Config holds configuration that is not part of the runtime spec.
type CreateLinksAndRoutesArgs ¶
type CreateLinksAndRoutesArgs struct { // FilePayload contains the fds associated with the FDBasedLinks. The // two slices must have the same length. urpc.FilePayload LoopbackLinks []LoopbackLink FDBasedLinks []FDBasedLink DefaultGateway DefaultRoute }
CreateLinksAndRoutesArgs are arguments to CreateLinkAndRoutes.
type DefaultRoute ¶
DefaultRoute represents a catch all route to the default gateway.
type Event ¶
type Event struct { Type string `json:"type"` ID string `json:"id"` Data interface{} `json:"data,omitempty"` }
Event struct for encoding the event data to JSON. Corresponds to runc's main.event struct.
type FDBasedLink ¶
FDBasedLink configures an fd-based link.
type FileAccessType ¶
type FileAccessType int
FileAccessType tells how the filesystem is accessed.
const ( // FileAccessProxy sends IO requests to a Gofer process that validates the // requests and forwards them to the host. FileAccessProxy FileAccessType = iota // FileAccessDirect connects the sandbox directly to the host filesystem. FileAccessDirect )
func MakeFileAccessType ¶
func MakeFileAccessType(s string) (FileAccessType, error)
MakeFileAccessType converts type from string.
func (FileAccessType) String ¶
func (f FileAccessType) String() string
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
Loader keeps state needed to start the kernel and run the application.
func New ¶
func New(spec *specs.Spec, conf *Config, controllerFD int, ioFDs []int, console bool) (*Loader, error)
New initializes a new kernel loader configured by spec.
func (*Loader) Destroy ¶
func (l *Loader) Destroy()
Destroy cleans up all resources used by the loader.
func (*Loader) WaitExit ¶
func (l *Loader) WaitExit() kernel.ExitStatus
WaitExit waits for the application to exit, and returns the application's exit status.
func (*Loader) WaitForStartSignal ¶
func (l *Loader) WaitForStartSignal()
WaitForStartSignal waits for a start signal from the control server.
type LoopbackLink ¶
LoopbackLink configures a loopback li nk.
type Memory ¶
type Memory struct { Cache uint64 `json:"cache,omitempty"` Usage MemoryEntry `json:"usage,omitempty"` Swap MemoryEntry `json:"swap,omitempty"` Kernel MemoryEntry `json:"kernel,omitempty"` KernelTCP MemoryEntry `json:"kernelTCP,omitempty"` Raw map[string]uint64 `json:"raw,omitempty"` }
Memory contains stats on memory.
type MemoryEntry ¶
type MemoryEntry struct { Limit uint64 `json:"limit"` Usage uint64 `json:"usage,omitempty"` Max uint64 `json:"max,omitempty"` Failcnt uint64 `json:"failcnt"` }
MemoryEntry contains stats on a kind of memory.
type Network ¶
Network exposes methods that can be used to configure a network stack.
func (*Network) CreateLinksAndRoutes ¶
func (n *Network) CreateLinksAndRoutes(args *CreateLinksAndRoutesArgs, _ *struct{}) error
CreateLinksAndRoutes creates links and routes in a network stack. It should only be called once.
type NetworkType ¶
type NetworkType int
NetworkType tells which network stack to use.
const ( // NetworkSandbox uses internal network stack, isolated from the host. NetworkSandbox NetworkType = iota // NetworkHost redirects network related syscalls to the host network. NetworkHost // NetworkNone sets up just loopback using netstack. NetworkNone )
func MakeNetworkType ¶
func MakeNetworkType(s string) (NetworkType, error)
MakeNetworkType converts type from string.
func (NetworkType) String ¶
func (n NetworkType) String() string
type Pids ¶
type Pids struct { Current uint64 `json:"current,omitempty"` Limit uint64 `json:"limit,omitempty"` }
Pids contains stats on processes.
type PlatformType ¶
type PlatformType int
PlatformType tells which platform to use.
const ( // Ptrace runs the sandbox with the ptrace platform. PlatformPtrace PlatformType = iota // KVM runs the sandbox with the KVM platform. PlatformKVM )
func MakePlatformType ¶
func MakePlatformType(s string) (PlatformType, error)
MakePlatformType converts type from string.
func (PlatformType) String ¶
func (p PlatformType) String() string
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package filter defines all syscalls the sandbox is allowed to make to the host, and installs seccomp filters to prevent prohibited syscalls in case it's compromised.
|
Package filter defines all syscalls the sandbox is allowed to make to the host, and installs seccomp filters to prevent prohibited syscalls in case it's compromised. |