executor

package
v4.0.0-rc4.0...-59f1089 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2026 License: Apache-2.0 Imports: 68 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetTerminationGracePeriodDuration

func GetTerminationGracePeriodDuration() time.Duration

GetTerminationGracePeriodDuration returns the terminationGracePeriodSeconds of podSpec in Time.Duration format

func IsWorkflowCompleted

func IsWorkflowCompleted(wts *wfv1.WorkflowTaskSet) bool

Types

type AgentExecutor

type AgentExecutor struct {
	WorkflowName string

	ClientSet         kubernetes.Interface
	WorkflowInterface workflow.Interface
	RESTClient        rest.Interface
	Namespace         string
	// contains filtered or unexported fields
}

func NewAgentExecutor

func NewAgentExecutor(clientSet kubernetes.Interface, restClient rest.Interface, config *rest.Config, namespace, workflowName, workflowUID string, plugins []executorplugins.TemplateExecutor) *AgentExecutor

func (*AgentExecutor) Agent

func (ae *AgentExecutor) Agent(ctx context.Context) error

type ContainerRuntimeExecutor

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

	// CopyFile copies a source file in a container to a local path
	CopyFile(ctx context.Context, containerName, sourcePath, destPath string, compressionLevel int) error

	// GetOutputStream returns the entirety of the container output as a io.Reader
	// Used to capture script results as an output parameter, and to archive container logs
	GetOutputStream(ctx context.Context, containerName string, combinedOutput bool) (io.ReadCloser, error)

	// Wait waits for the container to complete.
	Wait(ctx context.Context, containerNames []string) error

	// Kill a list of containers first with a SIGTERM then with a SIGKILL after a grace period
	Kill(ctx context.Context, containerNames []string, terminationGracePeriodDuration time.Duration) error
}

ContainerRuntimeExecutor is the interface for interacting with a container runtime

type Initializer

type Initializer interface {
	Init(tmpl wfv1.Template) error
}

type WorkflowExecutor

type WorkflowExecutor struct {
	PodName string

	Template            wfv1.Template
	IncludeScriptOutput bool
	Deadline            time.Time
	ClientSet           kubernetes.Interface

	RESTClient      rest.Interface
	Namespace       string
	RuntimeExecutor ContainerRuntimeExecutor
	Tracing         *tracing.Tracing
	// contains filtered or unexported fields
}

WorkflowExecutor is program which runs as the init/wait container

func NewExecutor

func NewExecutor(
	ctx context.Context,
	clientset kubernetes.Interface,
	taskResultClient argoprojv1.WorkflowTaskResultInterface,
	restClient rest.Interface,
	podName string,
	podUID types.UID,
	workflow string,
	workflowUID types.UID,
	nodeID, namespace string,
	cre ContainerRuntimeExecutor,
	template wfv1.Template,
	includeScriptOutput bool,
	deadline time.Time,
	annotationPatchTickDuration, readProgressFileTickDuration time.Duration,
) (WorkflowExecutor, error)

NewExecutor instantiates a new workflow executor

func (*WorkflowExecutor) AddAnnotation

func (we *WorkflowExecutor) AddAnnotation(ctx context.Context, key, value string) error

AddAnnotation adds an annotation to the workflow pod

func (*WorkflowExecutor) AddError

func (we *WorkflowExecutor) AddError(ctx context.Context, err error)

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

func (*WorkflowExecutor) CaptureScriptResult

func (we *WorkflowExecutor) CaptureScriptResult(ctx context.Context) error

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

func (*WorkflowExecutor) Data

func (we *WorkflowExecutor) Data(ctx context.Context) error

func (*WorkflowExecutor) ExecResource

func (we *WorkflowExecutor) ExecResource(ctx context.Context, action string, manifestPath string, flags []string) (string, string, string, error)

ExecResource will run kubectl action against a manifest

func (*WorkflowExecutor) FinalizeOutput

func (we *WorkflowExecutor) FinalizeOutput(ctx context.Context)

FinalizeOutput adds a label or annotation to denote that outputs have completed reporting.

func (*WorkflowExecutor) GetConfigMapKey

func (we *WorkflowExecutor) GetConfigMapKey(ctx context.Context, name, key string) (string, error)

GetConfigMapKey retrieves a configmap value and memoizes the result

func (*WorkflowExecutor) GetSecret

func (we *WorkflowExecutor) GetSecret(ctx context.Context, accessKeyName string, accessKey string) (string, error)

GetSecret will retrieve the Secrets from VolumeMount

func (*WorkflowExecutor) HandleError

func (we *WorkflowExecutor) HandleError(ctx context.Context) func()

HandleError is a helper to annotate the pod with the error message upon a unexpected executor panic or error. Usage: defer we.HandleError(ctx)()

func (*WorkflowExecutor) HasError

func (we *WorkflowExecutor) HasError() error

HasError return the first error if exist

func (*WorkflowExecutor) Init

func (we *WorkflowExecutor) Init() error

func (*WorkflowExecutor) InitDriver

InitDriver initializes an instance of an artifact driver

func (*WorkflowExecutor) InitializeOutput

func (we *WorkflowExecutor) InitializeOutput(ctx context.Context)

func (*WorkflowExecutor) KillArtifactSidecars

func (we *WorkflowExecutor) KillArtifactSidecars(ctx context.Context) error

func (*WorkflowExecutor) LoadArtifactsFromPlugin

func (we *WorkflowExecutor) LoadArtifactsFromPlugin(ctx context.Context, pluginName wfv1.ArtifactPluginName) error

func (*WorkflowExecutor) LoadArtifactsWithoutPlugins

func (we *WorkflowExecutor) LoadArtifactsWithoutPlugins(ctx context.Context) error

func (*WorkflowExecutor) ReportOutputs

func (we *WorkflowExecutor) ReportOutputs(ctx context.Context, artifacts []wfv1.Artifact) error

ReportOutputs updates the WorkflowTaskResult (or falls back to annotate the Pod)

func (*WorkflowExecutor) ReportOutputsLogs

func (we *WorkflowExecutor) ReportOutputsLogs(ctx context.Context) error

ReportOutputsLogs updates the WorkflowTaskResult log fields

func (*WorkflowExecutor) SaveArtifacts

func (we *WorkflowExecutor) SaveArtifacts(ctx context.Context) (wfv1.Artifacts, error)

SaveArtifacts uploads artifacts to the archive location

func (*WorkflowExecutor) SaveLogs

func (we *WorkflowExecutor) SaveLogs(ctx context.Context) []wfv1.Artifact

func (*WorkflowExecutor) SaveParameters

func (we *WorkflowExecutor) SaveParameters(ctx context.Context) error

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

func (*WorkflowExecutor) SaveResourceParameters

func (we *WorkflowExecutor) SaveResourceParameters(ctx context.Context, resourceNamespace string, resourceName string) error

SaveResourceParameters will save any resource output parameters

func (*WorkflowExecutor) StageFiles

func (we *WorkflowExecutor) StageFiles(ctx context.Context) error

StageFiles will create any files required by script/resource templates

func (*WorkflowExecutor) Wait

func (we *WorkflowExecutor) Wait(ctx context.Context) 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(ctx context.Context, resourceNamespace, resourceName, selfLink string) error

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

func (*WorkflowExecutor) WorkflowName

func (we *WorkflowExecutor) WorkflowName() string

WorkflowName returns the name of the workflow being executed

Directories

Path Synopsis
plugins
rpc

Jump to

Keyboard shortcuts

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