Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewClient ¶
func NewClient(client interface{}) (api.TTRPCSandboxService, error)
NewClient returns a new sandbox client that handles both GRPC and TTRPC clients.
Types ¶
type Controller ¶
type Controller interface {
// Create is used to initialize sandbox environment. (mounts, any)
Create(ctx context.Context, sandboxInfo Sandbox, opts ...CreateOpt) error
// Start will start previously created sandbox.
Start(ctx context.Context, sandboxID string) (ControllerInstance, error)
// Platform returns target sandbox OS that will be used by Controller.
// containerd will rely on this to generate proper OCI spec.
Platform(_ctx context.Context, _sandboxID string) (imagespec.Platform, error)
// Stop will stop sandbox instance
Stop(ctx context.Context, sandboxID string, opts ...StopOpt) error
// Wait blocks until sandbox process exits.
Wait(ctx context.Context, sandboxID string) (ExitStatus, error)
// Status will query sandbox process status. It is heavier than Ping call and must be used whenever you need to
// gather metadata about current sandbox state (status, uptime, resource use, etc).
Status(ctx context.Context, sandboxID string, verbose bool) (ControllerStatus, error)
// Shutdown deletes and cleans all tasks and sandbox instance.
Shutdown(ctx context.Context, sandboxID string) error
// Metrics queries the sandbox for metrics.
Metrics(ctx context.Context, sandboxID string) (*types.Metric, error)
// Update changes a part of sandbox, such as extensions/annotations/labels/spec of
// Sandbox object, controllers may have to update the running sandbox according to the changes.
Update(ctx context.Context, sandboxID string, sandbox Sandbox, fields ...string) error
}
Controller is an interface to manage sandboxes at runtime. When running in sandbox mode, shim expected to implement `SandboxService`. Shim lifetimes are now managed manually via sandbox API by the containerd's client.
type ControllerInstance ¶
type ControllerStatus ¶
type CreateOpt ¶
type CreateOpt func(*CreateOptions) error
func WithAnnotations ¶
WithAnnotations sets the provided annotations for sandbox creation.
func WithNetNSPath ¶
WithNetNSPath used to assign network namespace path of a sandbox.
func WithOptions ¶
WithOptions allows passing arbitrary options when creating a new sandbox.
func WithRootFS ¶
WithRootFS is used to create a sandbox with the provided rootfs mount
type CreateOptions ¶
type CreateOptions struct {
Rootfs []mount.Mount
// Options are used to pass arbitrary options to the shim when creating a new sandbox.
// CRI will use this to pass PodSandboxConfig.
// Don't confuse this with Runtime options, which are passed at shim instance start
// to setup global shim configuration.
Options typeurl.Any
NetNSPath string
Annotations map[string]string
}
type ExitStatus ¶
type RuntimeOpts ¶
RuntimeOpts holds runtime specific information
type Sandbox ¶
type Sandbox struct {
// ID uniquely identifies the sandbox in a namespace
ID string
// Labels provide metadata extension for a sandbox
Labels map[string]string
// Runtime shim to use for this sandbox
Runtime RuntimeOpts
// Spec carries the runtime specification used to implement the sandbox
Spec typeurl.Any
// Sandboxer is the sandbox controller who manages the sandbox
Sandboxer string
// CreatedAt is the time at which the sandbox was created
CreatedAt time.Time
// UpdatedAt is the time at which the sandbox was updated
UpdatedAt time.Time
// Extensions stores client-specified metadata
Extensions map[string]typeurl.Any
}
Sandbox is an object stored in metadata database
func (*Sandbox) AddExtension ¶
AddExtension is a helper function to add sandbox metadata extension.
func (*Sandbox) GetExtension ¶
GetExtension retrieves a sandbox extension by name.
type StopOptions ¶
type Store ¶
type Store interface {
// Create a sandbox record in the store
Create(ctx context.Context, sandbox Sandbox) (Sandbox, error)
// Update the sandbox with the provided sandbox object and fields
Update(ctx context.Context, sandbox Sandbox, fieldpaths ...string) (Sandbox, error)
// Get sandbox metadata using the id
Get(ctx context.Context, id string) (Sandbox, error)
// List returns sandboxes that match one or more of the provided filters
List(ctx context.Context, filters ...string) ([]Sandbox, error)
// Delete a sandbox from metadata store using the id
Delete(ctx context.Context, id string) error
}
Store is a storage interface for sandbox metadata objects