executor

package
v2.2.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2018 License: Apache-2.0 Imports: 36 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContainerRuntimeExecutor

type ContainerRuntimeExecutor interface {
	// GetFileContents returns the file contents of a file in a container as a string
	GetFileContents(containerID string, sourcePath string) (string, error)

	// CopyFile copies a source file in a container to a local path
	CopyFile(containerID string, sourcePath string, destPath string) error

	// GetOutput returns the entirety of the container output as a string
	// Used to capturing script results as an output parameter
	GetOutput(containerID string) (string, error)

	// Wait for the container to complete
	Wait(containerID string) error

	// Copy logs to a given path
	Logs(containerID string, path string) error

	// Kill a list of containerIDs first with a SIGTERM then with a SIGKILL after a grace period
	Kill(containerIDs []string) error
}

ContainerRuntimeExecutor is the interface for interacting with a container runtime (e.g. docker)

type WorkflowExecutor

type WorkflowExecutor struct {
	PodName            string
	Template           wfv1.Template
	ClientSet          kubernetes.Interface
	Namespace          string
	PodAnnotationsPath string
	ExecutionControl   *common.ExecutionControl
	RuntimeExecutor    ContainerRuntimeExecutor
	// contains filtered or unexported fields
}

WorkflowExecutor is program which runs as the init/wait container

func NewExecutor

func NewExecutor(clientset kubernetes.Interface, podName, namespace, podAnnotationsPath string, cre ContainerRuntimeExecutor) WorkflowExecutor

NewExecutor instantiates a new workflow executor

func (*WorkflowExecutor) AddAnnotation

func (we *WorkflowExecutor) AddAnnotation(key, value string) error

AddAnnotation adds an annotation to the workflow pod

func (*WorkflowExecutor) AddError

func (we *WorkflowExecutor) AddError(err error)

AddError adds an error to the list of encountered errors durign execution

func (*WorkflowExecutor) AnnotateOutputs

func (we *WorkflowExecutor) AnnotateOutputs(logArt *wfv1.Artifact) error

AnnotateOutputs annotation to the pod indicating all the outputs.

func (*WorkflowExecutor) CaptureScriptResult

func (we *WorkflowExecutor) CaptureScriptResult() error

CaptureScriptResult will add the stdout of a script template as output result

func (*WorkflowExecutor) ExecResource

func (we *WorkflowExecutor) ExecResource(action string, manifestPath string) (string, error)

ExecResource will run kubectl action against a manifest

func (*WorkflowExecutor) GetMainContainerID

func (we *WorkflowExecutor) GetMainContainerID() (string, error)

GetMainContainerID returns the container id of the main container

func (*WorkflowExecutor) GetMainContainerStatus

func (we *WorkflowExecutor) GetMainContainerStatus() (*apiv1.ContainerStatus, error)

GetMainContainerStatus returns the container status of the main container, nil if the main container does not exist

func (*WorkflowExecutor) HandleError

func (we *WorkflowExecutor) HandleError()

HandleError is a helper to annotate the pod with the error message upon a unexpected executor panic or error

func (*WorkflowExecutor) InitDriver

func (we *WorkflowExecutor) InitDriver(art wfv1.Artifact) (artifact.ArtifactDriver, error)

InitDriver initializes an instance of an artifact driver

func (*WorkflowExecutor) LoadArtifacts

func (we *WorkflowExecutor) LoadArtifacts() error

LoadArtifacts loads aftifacts from location to a container path

func (*WorkflowExecutor) LoadExecutionControl

func (we *WorkflowExecutor) LoadExecutionControl() error

LoadExecutionControl reads the execution control definition from the the Kubernetes downward api annotations volume file

func (*WorkflowExecutor) LoadTemplate

func (we *WorkflowExecutor) LoadTemplate() error

LoadTemplate reads the template definition from the the Kubernetes downward api annotations volume file

func (*WorkflowExecutor) SaveArtifacts

func (we *WorkflowExecutor) SaveArtifacts() error

SaveArtifacts uploads artifacts to the archive location

func (*WorkflowExecutor) SaveLogs

func (we *WorkflowExecutor) SaveLogs() (*wfv1.Artifact, error)

SaveLogs saves logs

func (*WorkflowExecutor) SaveParameters

func (we *WorkflowExecutor) SaveParameters() error

SaveParameters will save the content in the specified file path as output parameter value

func (*WorkflowExecutor) SaveResourceParameters

func (we *WorkflowExecutor) SaveResourceParameters(resourceName string) error

SaveResourceParameters will save any resource output parameters

func (*WorkflowExecutor) StageFiles

func (we *WorkflowExecutor) StageFiles() error

StageFiles will create any files required by script/resource templates

func (*WorkflowExecutor) Wait

func (we *WorkflowExecutor) Wait() (err error)

Wait is the sidecar container logic which waits for the main container to complete. Also monitors for updates in the pod annotations which may change (e.g. terminate) Upon completion, kills any sidecars after it finishes.

func (*WorkflowExecutor) WaitResource

func (we *WorkflowExecutor) WaitResource(resourceName string) error

WaitResource waits for a specific resource to satisfy either the success or failure condition

Directories

Path Synopsis
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0

Jump to

Keyboard shortcuts

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