exec

package
v0.0.0-...-9ec3720 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2021 License: AGPL-3.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsContainerNotRunningError

func IsContainerNotRunningError(err error) bool

IsContainerNotRunningError returns true when the supplied error is caused by a ContainerNotRunningError.

func IsExecRetryableError

func IsExecRetryableError(err error) bool

IsExecRetryableError returns true when the supplied error is caused by an execRetryableError.

func NewExecRetryableError

func NewExecRetryableError(err error) error

NewExecRetryableError constructs an execRetryableError.

Types

type ContainerNotRunningError

type ContainerNotRunningError struct {
	// contains filtered or unexported fields
}

ContainerNotRunningError error is returned when the container is valid but not currently running, so the operation is retryable.

func (ContainerNotRunningError) Error

func (e ContainerNotRunningError) Error() string

type ContainerStatus

type ContainerStatus struct {
	// Name of the container
	Name string

	// Waiting state
	Waiting bool
	// Running state
	Running bool
	// Terminated state
	Terminated bool

	// StartedAt is filled when the container is running or terminated.
	StartedAt time.Time

	// InitContainer is true when the container is apart of the
	// init phase.
	InitContainer bool
	// EphemeralContainer is true when the container is ephemeral.
	EphemeralContainer bool
}

ContainerStatus describes status of one container inside a pod.

type CopyParams

type CopyParams struct {
	Src  FileResource
	Dest FileResource
	// contains filtered or unexported fields
}

CopyParams holds all the necessary parameters for a copy request.

type ExecParams

type ExecParams struct {
	Commands      []string
	Env           []string
	PodName       string
	ContainerName string
	WorkingDir    string

	Stdin  io.Reader
	Stdout io.Writer
	Stderr io.Writer
	TTY    bool

	Signal <-chan syscall.Signal
}

ExecParams holds all the necessary parameters for Exec.

type Executor

type Executor interface {
	Status(params StatusParams) (*Status, error)
	Exec(params ExecParams, cancel <-chan struct{}) error
	Copy(params CopyParams, cancel <-chan struct{}) error
	RawClient() kubernetes.Interface
	NameSpace() string
}

Executor provides the API to exec or cp on a pod inside the cluster.

func New

func New(namespace string, clientset kubernetes.Interface, config *rest.Config) Executor

New contructs an executor. no cross model/namespace allowed.

func NewForJujuCloudSpec

func NewForJujuCloudSpec(
	modelName string,
	cloudSpec cloudspec.CloudSpec,
) (Executor, error)

NewForJujuCloudSpec returns a exec client.

func NewInCluster

func NewInCluster(namespace string) (Executor, error)

NewInCluster returns a in-cluster exec client.

type ExitError

type ExitError interface {
	error
	String() string
	ExitStatus() int
}

ExitError exposes what we need from k8s exec.ExitError

type FileResource

type FileResource struct {
	Path          string
	PodName       string
	ContainerName string
}

FileResource holds all the necessary parameters for the source or destination of a copy request.

type SizeGetter

type SizeGetter interface {
	Get(int) *remotecommand.TerminalSize
}

SizeGetter defines methods for getting terminal size.

type Status

type Status struct {
	PodName string

	ContainerStatus []ContainerStatus
}

Status of a pod.

type StatusParams

type StatusParams struct {
	PodName string
}

StatusParams holds all the necessary parameters to query Pod status

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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