sandbox

package
v1.7.0-beta.1 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2022 License: Apache-2.0 Imports: 9 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToProto

func ToProto(sandbox *Sandbox) *types.Sandbox

ToProto will map Sandbox struct to it's protobuf definition

Types

type Controller

type Controller interface {
	// Create is used to initialize sandbox environment.
	Create(ctx context.Context, sandboxID string) error
	// Start will start previously created sandbox.
	Start(ctx context.Context, sandboxID string) (*sandbox.ControllerStartResponse, error)
	// Stop will stop sandbox instance
	Stop(ctx context.Context, sandboxID string) (*sandbox.ControllerStopResponse, error)
	// Wait blocks until sandbox process exits.
	Wait(ctx context.Context, sandboxID string) (*sandbox.ControllerWaitResponse, 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) (*sandbox.ControllerStatusResponse, error)
	// Delete deletes and cleans all tasks and sandbox instance.
	Delete(ctx context.Context, sandboxID string) (*sandbox.ControllerDeleteResponse, 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 RuntimeOpts

type RuntimeOpts struct {
	Name    string
	Options typeurl.Any
}

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
	// 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 FromProto

func FromProto(sandboxpb *types.Sandbox) Sandbox

FromProto map protobuf sandbox definition to Sandbox struct

func (*Sandbox) AddExtension

func (s *Sandbox) AddExtension(name string, obj interface{}) error

AddExtension is a helper function to add sandbox metadata extension.

func (*Sandbox) AddLabel

func (s *Sandbox) AddLabel(name string, value string)

AddLabel adds a label to sandbox's labels.

func (*Sandbox) GetExtension

func (s *Sandbox) GetExtension(name string, obj interface{}) error

GetExtension retrieves a sandbox extension by name.

func (*Sandbox) GetLabel

func (s *Sandbox) GetLabel(name string) (string, error)

GetLabel retrieves a sandbox label by name.

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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