Documentation ¶
Index ¶
- Constants
- Variables
- func Register(name string, initFn Initializer)
- func WaitForContainerRunning(ctx context.Context, r ContainerRuntime, contName, nodeName string) error
- type ContainerMount
- type ContainerRuntime
- type ContainerStatus
- type GenericContainer
- type GenericMgmtIPs
- type Initializer
- type Node
- type RuntimeConfig
- type RuntimeOption
Constants ¶
View Source
const ( NotFound = "NotFound" Running = "Running" Stopped = "Stopped" )
Variables ¶
View Source
var ContainerRuntimes = map[string]Initializer{}
Functions ¶
func Register ¶ added in v0.15.0
func Register(name string, initFn Initializer)
func WaitForContainerRunning ¶ added in v0.33.0
func WaitForContainerRunning(ctx context.Context, r ContainerRuntime, contName, nodeName string) error
WaitForContainerRunning waits for container to become running by polling its status.
Types ¶
type ContainerMount ¶ added in v0.35.0
type ContainerRuntime ¶
type ContainerRuntime interface { // Initializes the Container runtime struct Init(...RuntimeOption) error // Mgmt return management network configuration of a runtime Mgmt() *types.MgmtNet // Adds custom configuration items to the container runtime struct WithConfig(*RuntimeConfig) // Set the network management details (generated by the config.go) WithMgmtNet(*types.MgmtNet) // Instructs the runtime not to delete the mgmt network on destroy WithKeepMgmtNet() // Create container (bridge) network CreateNet(context.Context) error // Delete container (bridge) network DeleteNet(context.Context) error // Pull container image if not present PullImage(context.Context, string, types.PullPolicyValue) error // CreateContainer creates a container, but does not start it CreateContainer(context.Context, *types.NodeConfig) (string, error) // Start pre-created container by its name. Returns an extra interface that can be used to receive signals // about the container life-cycle after it was created, e.g. for post-deploy tasks StartContainer(context.Context, string, Node) (interface{}, error) // Stop running container by its name StopContainer(context.Context, string) error // Pause a container identified by its name PauseContainer(context.Context, string) error // UnPause / resume a container identified by its name UnpauseContainer(context.Context, string) error // List all containers matching labels ListContainers(context.Context, []*types.GenericFilter) ([]GenericContainer, error) // Get a netns path using the name of a container GetNSPath(context.Context, string) (string, error) // Executes cmd on container identified with id and returns stdout, stderr bytes and an error Exec(ctx context.Context, cID string, execCmd *exec.ExecCmd) (*exec.ExecResult, error) // ExecNotWait executes cmd on container identified with id but doesn't wait for output nor attaches stdout/err ExecNotWait(ctx context.Context, cID string, execCmd *exec.ExecCmd) error // Delete container by its name DeleteContainer(context.Context, string) error // Getter for runtime config options Config() RuntimeConfig GetName() string // GetHostsPath returns fs path to a file which is mounted as /etc/hosts into a given container GetHostsPath(context.Context, string) (string, error) // GetContainerStatus retrieves the ContainerStatus of the named container GetContainerStatus(ctx context.Context, cID string) ContainerStatus // IsHealthy returns true is the container is reported as being healthy, false otherwise IsHealthy(ctx context.Context, cID string) (bool, error) }
type ContainerStatus ¶ added in v0.32.0
type ContainerStatus string
type GenericContainer ¶ added in v0.35.0
type GenericContainer struct { Names []string ID string ShortID string // trimmed ID for display purposes Image string State string Status string Labels map[string]string Pid int NetworkSettings GenericMgmtIPs Mounts []ContainerMount Ports []*types.GenericPortBinding // contains filtered or unexported fields }
GenericContainer stores generic container data.
func (*GenericContainer) GetContainerIPv4 ¶ added in v0.35.0
func (ctr *GenericContainer) GetContainerIPv4() string
func (*GenericContainer) GetContainerIPv6 ¶ added in v0.35.0
func (ctr *GenericContainer) GetContainerIPv6() string
func (*GenericContainer) RunExec ¶ added in v0.35.0
func (gc *GenericContainer) RunExec(ctx context.Context, execCmd *exec.ExecCmd) (*exec.ExecResult, error)
RunExec executes a single command for a GenericContainer.
func (*GenericContainer) SetRuntime ¶ added in v0.35.0
func (ctr *GenericContainer) SetRuntime(r ContainerRuntime)
SetRuntime sets the runtime for this GenericContainer.
type GenericMgmtIPs ¶ added in v0.35.0
type Initializer ¶ added in v0.15.0
type Initializer func() ContainerRuntime
type Node ¶ added in v0.44.0
type Node interface { Config() *types.NodeConfig GetEndpoints() []links.Endpoint }
Node is an interface that represents a node in the lab and is implemented by containerlab nodes.
type RuntimeConfig ¶ added in v0.15.0
type RuntimeOption ¶ added in v0.15.0
type RuntimeOption func(ContainerRuntime)
func WithConfig ¶ added in v0.15.0
func WithConfig(cfg *RuntimeConfig) RuntimeOption
func WithMgmtNet ¶ added in v0.15.0
func WithMgmtNet(mgmt *types.MgmtNet) RuntimeOption
Click to show internal directories.
Click to hide internal directories.