v1alpha1

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2021 License: Apache-2.0 Imports: 20 Imported by: 9

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API. +groupName=flyteworkflow.flyte.net

Index

Constants

View Source
const EndNodeID = "end-node"
View Source
const FlyteWorkflowKind = "flyteworkflow"
View Source
const StartNodeID = "start-node"

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var FlyteWorkflowGVK = SchemeGroupVersion.WithKind(FlyteWorkflowKind)
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: flyteworkflow.GroupName, Version: "v1alpha1"}

SchemeGroupVersion is group version used to register these objects

Functions

func IsPhaseTerminal

func IsPhaseTerminal(phase NodePhase) bool

func IsWorkflowPhaseTerminal

func IsWorkflowPhaseTerminal(p WorkflowPhase) bool

func Kind

func Kind(kind string) schema.GroupKind

GetKind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type Alias

type Alias struct {
	core.Alias
}

func (*Alias) DeepCopy

func (in *Alias) DeepCopy() *Alias

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Alias.

func (*Alias) DeepCopyInto

func (in *Alias) DeepCopyInto(out *Alias)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BaseNode

type BaseNode interface {
	GetID() NodeID
	GetKind() NodeKind
}

type BaseWorkflow

type BaseWorkflow interface {
	NodeGetter
	StartNode() ExecutableNode
	GetID() WorkflowID
	// From returns all nodes that can be reached directly
	// from the node with the given unique name.
	FromNode(name NodeID) ([]NodeID, error)
	ToNode(name NodeID) ([]NodeID, error)
}

type BaseWorkflowWithStatus

type BaseWorkflowWithStatus interface {
	BaseWorkflow
	NodeStatusGetter
}

type Binding

type Binding struct {
	*core.Binding
}

func (*Binding) DeepCopy

func (in *Binding) DeepCopy() *Binding

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Binding.

func (*Binding) DeepCopyInto

func (in *Binding) DeepCopyInto(out *Binding)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Binding) MarshalJSON

func (in *Binding) MarshalJSON() ([]byte, error)

func (*Binding) UnmarshalJSON

func (in *Binding) UnmarshalJSON(b []byte) error

type BooleanExpression

type BooleanExpression struct {
	*core.BooleanExpression
}

func (*BooleanExpression) DeepCopy

func (in *BooleanExpression) DeepCopy() *BooleanExpression

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BooleanExpression.

func (*BooleanExpression) DeepCopyInto

func (in *BooleanExpression) DeepCopyInto(out *BooleanExpression)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (BooleanExpression) MarshalJSON

func (in BooleanExpression) MarshalJSON() ([]byte, error)

func (*BooleanExpression) UnmarshalJSON

func (in *BooleanExpression) UnmarshalJSON(b []byte) error

type BranchNodePhase

type BranchNodePhase int

A branchNode has its own Phases. These are used by the child nodes to ensure that the branch node is in the right state

const (
	BranchNodeNotYetEvaluated BranchNodePhase = iota
	BranchNodeSuccess
	BranchNodeError
)

func (BranchNodePhase) String

func (b BranchNodePhase) String() string

type BranchNodeSpec

type BranchNodeSpec struct {
	If       IfBlock    `json:"if"`
	ElseIf   []*IfBlock `json:"elseIf,omitempty"`
	Else     *NodeID    `json:"else,omitempty"`
	ElseFail *Error     `json:"elseFail,omitempty"`
}

func (*BranchNodeSpec) DeepCopy

func (in *BranchNodeSpec) DeepCopy() *BranchNodeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BranchNodeSpec.

func (*BranchNodeSpec) DeepCopyInto

func (in *BranchNodeSpec) DeepCopyInto(out *BranchNodeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BranchNodeSpec) GetElse

func (in *BranchNodeSpec) GetElse() *NodeID

func (*BranchNodeSpec) GetElseFail

func (in *BranchNodeSpec) GetElseFail() *core.Error

func (*BranchNodeSpec) GetElseIf

func (in *BranchNodeSpec) GetElseIf() []ExecutableIfBlock

func (*BranchNodeSpec) GetIf

func (in *BranchNodeSpec) GetIf() ExecutableIfBlock

type BranchNodeStatus

type BranchNodeStatus struct {
	MutableStruct
	Phase           BranchNodePhase `json:"phase"`
	FinalizedNodeID *NodeID         `json:"finalNodeId"`
}

func (*BranchNodeStatus) DeepCopy

func (in *BranchNodeStatus) DeepCopy() *BranchNodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BranchNodeStatus.

func (*BranchNodeStatus) DeepCopyInto

func (in *BranchNodeStatus) DeepCopyInto(out *BranchNodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BranchNodeStatus) Equals

func (in *BranchNodeStatus) Equals(other *BranchNodeStatus) bool

func (*BranchNodeStatus) GetFinalizedNode

func (in *BranchNodeStatus) GetFinalizedNode() *NodeID

func (*BranchNodeStatus) GetPhase

func (in *BranchNodeStatus) GetPhase() BranchNodePhase

func (*BranchNodeStatus) SetBranchNodeError

func (in *BranchNodeStatus) SetBranchNodeError()

func (*BranchNodeStatus) SetBranchNodeSuccess

func (in *BranchNodeStatus) SetBranchNodeSuccess(id NodeID)

type Connections

type Connections struct {
	DownstreamEdges map[NodeID][]NodeID
	UpstreamEdges   map[NodeID][]NodeID
}

func (*Connections) DeepCopy

func (in *Connections) DeepCopy() *Connections

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Connections.

func (*Connections) DeepCopyInto

func (in *Connections) DeepCopyInto(out *Connections)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Connections) MarshalJSON

func (in *Connections) MarshalJSON() ([]byte, error)

func (*Connections) UnmarshalJSON

func (in *Connections) UnmarshalJSON(b []byte) error

type CustomState

type CustomState map[string]interface{}

func (*CustomState) DeepCopy

func (in *CustomState) DeepCopy() *CustomState

func (*CustomState) DeepCopyInto

func (in *CustomState) DeepCopyInto(out *CustomState)

THIS IS NOT AUTO GENERATED

type DataReference

type DataReference = storage.DataReference

func GetInputsFile

func GetInputsFile(inputDir DataReference) DataReference

func GetOutputsFile

func GetOutputsFile(outputDir DataReference) DataReference

type DynamicNodePhase

type DynamicNodePhase int
const (
	// This is the default phase for a Dynamic Node execution. This also implies that the parent node is being executed
	DynamicNodePhaseNone DynamicNodePhase = iota
	// This phase implies that all the sub-nodes are being executed
	DynamicNodePhaseExecuting
	// This implies that the dynamic sub-nodes have failed and failure is being handled
	DynamicNodePhaseFailing
	// This Phase implies that the Parent node is done but it needs to be finalized before progressing to the sub-nodes (or dynamically yielded nodes)
	DynamicNodePhaseParentFinalizing
)

type DynamicNodeStatus

type DynamicNodeStatus struct {
	MutableStruct
	Phase  DynamicNodePhase `json:"phase"`
	Reason string           `json:"reason,omitempty"`
	Error  *ExecutionError  `json:"error,omitempty"`
}

func (*DynamicNodeStatus) DeepCopy

func (in *DynamicNodeStatus) DeepCopy() *DynamicNodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DynamicNodeStatus.

func (*DynamicNodeStatus) DeepCopyInto

func (in *DynamicNodeStatus) DeepCopyInto(out *DynamicNodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DynamicNodeStatus) Equals

func (in *DynamicNodeStatus) Equals(o *DynamicNodeStatus) bool

func (*DynamicNodeStatus) GetDynamicNodePhase

func (in *DynamicNodeStatus) GetDynamicNodePhase() DynamicNodePhase

func (*DynamicNodeStatus) GetDynamicNodeReason added in v0.1.15

func (in *DynamicNodeStatus) GetDynamicNodeReason() string

func (*DynamicNodeStatus) GetExecutionError added in v0.7.0

func (in *DynamicNodeStatus) GetExecutionError() *core.ExecutionError

func (*DynamicNodeStatus) SetDynamicNodePhase

func (in *DynamicNodeStatus) SetDynamicNodePhase(phase DynamicNodePhase)

func (*DynamicNodeStatus) SetDynamicNodeReason added in v0.1.15

func (in *DynamicNodeStatus) SetDynamicNodeReason(reason string)

func (*DynamicNodeStatus) SetExecutionError added in v0.7.0

func (in *DynamicNodeStatus) SetExecutionError(err *core.ExecutionError)

type EnqueueWorkflow

type EnqueueWorkflow func(workflowID WorkflowID)

Simple callback that can be used to indicate that the workflow with WorkflowID should be re-enqueued for examination.

type Error

type Error struct {
	*core.Error
}

func (*Error) DeepCopy

func (in *Error) DeepCopy() *Error

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Error.

func (*Error) DeepCopyInto

func (in *Error) DeepCopyInto(out *Error)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Error) MarshalJSON

func (in Error) MarshalJSON() ([]byte, error)

func (Error) UnmarshalJSON

func (in Error) UnmarshalJSON(b []byte) error

type EventVersion added in v0.7.0

type EventVersion int
const (
	EventVersion0 EventVersion = iota
	EventVersion1
)

type ExecutableBranchNode

type ExecutableBranchNode interface {
	GetIf() ExecutableIfBlock
	GetElse() *NodeID
	GetElseIf() []ExecutableIfBlock
	GetElseFail() *core.Error
}

Interface for Branch node. All the methods are purely read only except for the GetExecutionStatus. p returns ExecutableBranchNodeStatus, which permits some mutations

type ExecutableBranchNodeStatus

type ExecutableBranchNodeStatus interface {
	GetPhase() BranchNodePhase
	GetFinalizedNode() *NodeID
}

Interface for branch node status. This is the mutable API for a branch node

type ExecutableDynamicNodeStatus

type ExecutableDynamicNodeStatus interface {
	GetDynamicNodePhase() DynamicNodePhase
	GetDynamicNodeReason() string
	GetExecutionError() *core.ExecutionError
}

Interface for dynamic node status.

type ExecutableIfBlock

type ExecutableIfBlock interface {
	GetCondition() *core.BooleanExpression
	GetThenNode() *NodeID
}

Interface for the executable If block

type ExecutableNode

type ExecutableNode interface {
	BaseNode
	IsStartNode() bool
	IsEndNode() bool
	GetTaskID() *TaskID
	GetBranchNode() ExecutableBranchNode
	GetWorkflowNode() ExecutableWorkflowNode
	GetOutputAlias() []Alias
	GetInputBindings() []*Binding
	GetResources() *v1.ResourceRequirements
	GetConfig() *v1.ConfigMap
	GetRetryStrategy() *RetryStrategy
	GetExecutionDeadline() *time.Duration
	GetActiveDeadline() *time.Duration
	IsInterruptible() *bool
	GetName() string
}

Interface for the Executable Node

type ExecutableNodeStatus

type ExecutableNodeStatus interface {
	NodeStatusGetter
	MutableNodeStatus
	NodeStatusVisitor
	ExecutionTimeInfo
	GetPhase() NodePhase
	GetQueuedAt() *metav1.Time
	GetLastAttemptStartedAt() *metav1.Time
	GetParentNodeID() *NodeID
	GetParentTaskID() *core.TaskExecutionIdentifier
	GetDataDir() DataReference
	GetOutputDir() DataReference
	GetMessage() string
	GetExecutionError() *core.ExecutionError
	GetAttempts() uint32
	GetSystemFailures() uint32
	GetWorkflowNodeStatus() ExecutableWorkflowNodeStatus
	GetTaskNodeStatus() ExecutableTaskNodeStatus

	IsCached() bool
}

Interface for a Node p. This provides a mutable API.

type ExecutableSubWorkflow

type ExecutableSubWorkflow interface {
	BaseWorkflow
	GetOutputBindings() []*Binding
	GetOnFailureNode() ExecutableNode
	GetNodes() []NodeID
	GetConnections() *Connections
	GetOutputs() *OutputVarMap
	GetOnFailurePolicy() WorkflowOnFailurePolicy
}

This interface captures the methods available on any workflow (top level or child). The Meta section is available only for the top level workflow

type ExecutableSubWorkflowNodeStatus

type ExecutableSubWorkflowNodeStatus interface {
	GetPhase() WorkflowPhase
}

type ExecutableTask

type ExecutableTask interface {
	TaskType() TaskType
	CoreTask() *core.TaskTemplate
}

Interface for a Task that can be executed

type ExecutableTaskNodeStatus

type ExecutableTaskNodeStatus interface {
	GetPhase() int
	GetPhaseVersion() uint32
	GetPluginState() []byte
	GetPluginStateVersion() uint32
	GetBarrierClockTick() uint32
	GetLastPhaseUpdatedAt() time.Time
}

type ExecutableWorkflow

type ExecutableWorkflow interface {
	ExecutableSubWorkflow
	MetaExtended
	NodeStatusGetter
	GetExecutionConfig() ExecutionConfig
}

A Top level Workflow is a combination of Meta and an ExecutableSubWorkflow

type ExecutableWorkflowNode

type ExecutableWorkflowNode interface {
	GetLaunchPlanRefID() *LaunchPlanRefID
	GetSubWorkflowRef() *WorkflowID
}

Interface for a Child Workflow Node

type ExecutableWorkflowNodeStatus

type ExecutableWorkflowNodeStatus interface {
	GetWorkflowNodePhase() WorkflowNodePhase
	GetExecutionError() *core.ExecutionError
}

type ExecutableWorkflowStatus

type ExecutableWorkflowStatus interface {
	NodeStatusGetter
	ExecutionTimeInfo
	UpdatePhase(p WorkflowPhase, msg string, err *core.ExecutionError)
	GetPhase() WorkflowPhase
	IsTerminated() bool
	GetMessage() string
	GetExecutionError() *core.ExecutionError
	SetDataDir(DataReference)
	GetDataDir() DataReference
	GetOutputReference() DataReference
	SetOutputReference(reference DataReference)
	IncFailedAttempts()
	SetMessage(msg string)
	ConstructNodeDataDir(ctx context.Context, name NodeID) (storage.DataReference, error)
}

Interface for the Workflow p. This is the mutable portion for a Workflow

type ExecutionConfig added in v0.7.0

type ExecutionConfig struct {
	// Maps individual task types to their alternate (non-default) plugin handlers by name.
	TaskPluginImpls map[string]TaskPluginOverride
	// Can be used to control the number of parallel nodes to run within the workflow. This is useful to achieve fairness.
	MaxParallelism uint32
}

This contains workflow-execution specifications and overrides.

func (*ExecutionConfig) DeepCopy added in v0.7.0

func (in *ExecutionConfig) DeepCopy() *ExecutionConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecutionConfig.

func (*ExecutionConfig) DeepCopyInto added in v0.7.0

func (in *ExecutionConfig) DeepCopyInto(out *ExecutionConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExecutionError added in v0.7.0

type ExecutionError struct {
	*core.ExecutionError
}

Wrapper around core.Execution error. Execution Error has a protobuf enum and hence needs to be wrapped by custom marshaller

func (*ExecutionError) DeepCopy added in v0.7.0

func (in *ExecutionError) DeepCopy() *ExecutionError

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecutionError.

func (*ExecutionError) DeepCopyInto added in v0.7.0

func (in *ExecutionError) DeepCopyInto(out *ExecutionError)

func (*ExecutionError) MarshalJSON added in v0.7.0

func (in *ExecutionError) MarshalJSON() ([]byte, error)

func (*ExecutionError) UnmarshalJSON added in v0.7.0

func (in *ExecutionError) UnmarshalJSON(b []byte) error

type ExecutionID

type ExecutionID = WorkflowExecutionIdentifier

type ExecutionTimeInfo added in v0.7.0

type ExecutionTimeInfo interface {
	GetStoppedAt() *metav1.Time
	GetStartedAt() *metav1.Time
	GetLastUpdatedAt() *metav1.Time
}

type FlyteWorkflow

type FlyteWorkflow struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	*WorkflowSpec     `json:"spec"`
	WorkflowMeta      *WorkflowMeta                `json:"workflowMeta,omitempty"`
	Inputs            *Inputs                      `json:"inputs,omitempty"`
	ExecutionID       ExecutionID                  `json:"executionId"`
	Tasks             map[TaskID]*TaskSpec         `json:"tasks"`
	SubWorkflows      map[WorkflowID]*WorkflowSpec `json:"subWorkflows,omitempty"`
	// StartTime before the system will actively try to mark it failed and kill associated containers.
	// Value must be a positive integer.
	// +optional
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
	// Defaults value of parameters to be used for nodes if not set by the node.
	NodeDefaults NodeDefaults `json:"node-defaults,omitempty"`
	// Specifies the time when the workflow has been accepted into the system.
	AcceptedAt *metav1.Time `json:"acceptedAt,omitempty"`
	// [DEPRECATED] ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// [DEPRECATED] More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
	// [DEPRECATED] +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty" protobuf:"bytes,8,opt,name=serviceAccountName"`
	// Security context fields to define privilege and access control settings
	// +optional
	SecurityContext core.SecurityContext `json:"securityContext,omitempty" protobuf:"bytes,12,rep,name=securityContext"`
	// Status is the only mutable section in the workflow. It holds all the execution information
	Status WorkflowStatus `json:"status,omitempty"`
	// RawOutputDataConfig defines the configurations to use for generating raw outputs (e.g. blobs, schemas).
	RawOutputDataConfig RawOutputDataConfig `json:"rawOutputDataConfig,omitempty"`
	// Workflow-execution specifications and overrides
	ExecutionConfig ExecutionConfig `json:"executionConfig,omitempty"`

	// non-Serialized fields (these will not get written to etcd)
	// As of 2020-07, the only real implementation of this interface is a URLPathConstructor, which is just an empty
	// struct. However, because this field is an interface, we create it once when the crd is hydrated from etcd,
	// so that it can be used downstream without any confusion.
	// This field is here because it's easier to put it here than pipe through a new object through all of propeller.
	DataReferenceConstructor storage.ReferenceConstructor `json:"-"`
}

FlyteWorkflow: represents one Execution Workflow object

func (*FlyteWorkflow) DeepCopy

func (in *FlyteWorkflow) DeepCopy() *FlyteWorkflow

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlyteWorkflow.

func (*FlyteWorkflow) DeepCopyInto

func (in *FlyteWorkflow) DeepCopyInto(out *FlyteWorkflow)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FlyteWorkflow) DeepCopyObject

func (in *FlyteWorkflow) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FlyteWorkflow) FindSubWorkflow

func (in *FlyteWorkflow) FindSubWorkflow(subID WorkflowID) ExecutableSubWorkflow

func (*FlyteWorkflow) GetEventVersion added in v0.7.0

func (in *FlyteWorkflow) GetEventVersion() EventVersion

func (*FlyteWorkflow) GetExecutionConfig added in v0.7.0

func (in *FlyteWorkflow) GetExecutionConfig() ExecutionConfig

func (*FlyteWorkflow) GetExecutionID

func (in *FlyteWorkflow) GetExecutionID() ExecutionID

func (*FlyteWorkflow) GetExecutionStatus

func (in *FlyteWorkflow) GetExecutionStatus() ExecutableWorkflowStatus

func (*FlyteWorkflow) GetK8sWorkflowID

func (in *FlyteWorkflow) GetK8sWorkflowID() types.NamespacedName

func (*FlyteWorkflow) GetNodeExecutionStatus

func (in *FlyteWorkflow) GetNodeExecutionStatus(ctx context.Context, id NodeID) ExecutableNodeStatus

func (*FlyteWorkflow) GetOwnerReference added in v0.1.13

func (in *FlyteWorkflow) GetOwnerReference() metav1.OwnerReference

func (*FlyteWorkflow) GetRawOutputDataConfig added in v0.7.0

func (in *FlyteWorkflow) GetRawOutputDataConfig() RawOutputDataConfig

func (*FlyteWorkflow) GetSecurityContext added in v0.7.6

func (in *FlyteWorkflow) GetSecurityContext() core.SecurityContext

func (*FlyteWorkflow) GetServiceAccountName

func (in *FlyteWorkflow) GetServiceAccountName() string

func (*FlyteWorkflow) GetTask

func (in *FlyteWorkflow) GetTask(id TaskID) (ExecutableTask, error)

func (*FlyteWorkflow) IsInterruptible added in v0.7.0

func (in *FlyteWorkflow) IsInterruptible() bool

type FlyteWorkflowList

type FlyteWorkflowList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata"`
	Items           []FlyteWorkflow `json:"items"`
}

+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object FlyteWorkflowList is a list of FlyteWorkflow resources

func (*FlyteWorkflowList) DeepCopy

func (in *FlyteWorkflowList) DeepCopy() *FlyteWorkflowList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlyteWorkflowList.

func (*FlyteWorkflowList) DeepCopyInto

func (in *FlyteWorkflowList) DeepCopyInto(out *FlyteWorkflowList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FlyteWorkflowList) DeepCopyObject

func (in *FlyteWorkflowList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Identifier

type Identifier struct {
	*core.Identifier
}

func (*Identifier) DeepCopy

func (in *Identifier) DeepCopy() *Identifier

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Identifier.

func (*Identifier) DeepCopyInto

func (in *Identifier) DeepCopyInto(out *Identifier)

func (*Identifier) MarshalJSON

func (in *Identifier) MarshalJSON() ([]byte, error)

func (*Identifier) UnmarshalJSON

func (in *Identifier) UnmarshalJSON(b []byte) error

type IfBlock

type IfBlock struct {
	Condition BooleanExpression `json:"condition"`
	ThenNode  *NodeID           `json:"then"`
}

func (*IfBlock) DeepCopy

func (in *IfBlock) DeepCopy() *IfBlock

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IfBlock.

func (*IfBlock) DeepCopyInto

func (in *IfBlock) DeepCopyInto(out *IfBlock)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (IfBlock) GetCondition

func (in IfBlock) GetCondition() *core.BooleanExpression

func (*IfBlock) GetThenNode

func (in *IfBlock) GetThenNode() *NodeID

type Inputs

type Inputs struct {
	*core.LiteralMap
}

func (*Inputs) DeepCopy

func (in *Inputs) DeepCopy() *Inputs

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Inputs.

func (*Inputs) DeepCopyInto

func (in *Inputs) DeepCopyInto(out *Inputs)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Inputs) MarshalJSON

func (in *Inputs) MarshalJSON() ([]byte, error)

func (*Inputs) UnmarshalJSON

func (in *Inputs) UnmarshalJSON(b []byte) error

type LaunchPlanRefID

type LaunchPlanRefID = Identifier

type Meta added in v0.7.0

type Meta interface {
	GetExecutionID() ExecutionID
	GetK8sWorkflowID() types.NamespacedName
	GetOwnerReference() metav1.OwnerReference
	GetNamespace() string
	GetCreationTimestamp() metav1.Time
	GetAnnotations() map[string]string
	GetLabels() map[string]string
	GetName() string
	GetServiceAccountName() string
	GetSecurityContext() core.SecurityContext
	IsInterruptible() bool
	GetEventVersion() EventVersion
	GetRawOutputDataConfig() RawOutputDataConfig
}

Meta provides an interface to retrieve labels, annotations and other concepts that are declared only once for the top level workflow

type MetaExtended added in v0.7.0

type MetaExtended interface {
	Meta
	TaskDetailsGetter
	SubWorkflowGetter
	GetExecutionStatus() ExecutableWorkflowStatus
}

type Mutable added in v0.1.25

type Mutable interface {
	IsDirty() bool
}

type MutableBranchNodeStatus

type MutableBranchNodeStatus interface {
	Mutable
	ExecutableBranchNodeStatus

	SetBranchNodeError()
	SetBranchNodeSuccess(id NodeID)
}

type MutableDynamicNodeStatus

type MutableDynamicNodeStatus interface {
	Mutable
	ExecutableDynamicNodeStatus

	SetDynamicNodePhase(phase DynamicNodePhase)
	SetDynamicNodeReason(reason string)
	SetExecutionError(executionError *core.ExecutionError)
}

type MutableNodeStatus

type MutableNodeStatus interface {
	Mutable
	// Mutation API's
	SetDataDir(DataReference)
	SetOutputDir(d DataReference)
	SetParentNodeID(n *NodeID)
	SetParentTaskID(t *core.TaskExecutionIdentifier)
	UpdatePhase(phase NodePhase, occurredAt metav1.Time, reason string, err *core.ExecutionError)
	IncrementAttempts() uint32
	IncrementSystemFailures() uint32
	SetCached()
	ResetDirty()

	GetBranchStatus() MutableBranchNodeStatus
	GetOrCreateBranchStatus() MutableBranchNodeStatus
	GetWorkflowStatus() MutableWorkflowNodeStatus
	GetOrCreateWorkflowStatus() MutableWorkflowNodeStatus

	ClearWorkflowStatus()
	GetOrCreateTaskStatus() MutableTaskNodeStatus
	GetTaskStatus() MutableTaskNodeStatus
	ClearTaskStatus()
	GetOrCreateDynamicNodeStatus() MutableDynamicNodeStatus
	GetDynamicNodeStatus() MutableDynamicNodeStatus
	ClearDynamicNodeStatus()
	ClearLastAttemptStartedAt()
	ClearSubNodeStatus()
}

type MutableStruct added in v0.1.25

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

func (*MutableStruct) DeepCopy added in v0.1.25

func (in *MutableStruct) DeepCopy() *MutableStruct

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutableStruct.

func (*MutableStruct) DeepCopyInto added in v0.1.25

func (in *MutableStruct) DeepCopyInto(out *MutableStruct)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MutableStruct) IsDirty added in v0.1.25

func (in MutableStruct) IsDirty() bool

func (*MutableStruct) ResetDirty added in v0.1.25

func (in *MutableStruct) ResetDirty()

For testing only

func (*MutableStruct) SetDirty added in v0.1.25

func (in *MutableStruct) SetDirty()

type MutableSubWorkflowNodeStatus

type MutableSubWorkflowNodeStatus interface {
	Mutable
	ExecutableSubWorkflowNodeStatus
	SetPhase(phase WorkflowPhase)
}

type MutableTaskNodeStatus

type MutableTaskNodeStatus interface {
	Mutable
	ExecutableTaskNodeStatus
	SetPhase(phase int)
	SetLastPhaseUpdatedAt(updatedAt time.Time)
	SetPhaseVersion(version uint32)
	SetPluginState([]byte)
	SetPluginStateVersion(uint32)
	SetBarrierClockTick(tick uint32)
}

type MutableWorkflowNodeStatus

type MutableWorkflowNodeStatus interface {
	Mutable
	ExecutableWorkflowNodeStatus
	SetWorkflowNodePhase(phase WorkflowNodePhase)
	SetExecutionError(executionError *core.ExecutionError)
}

type NodeDefaults added in v0.7.0

type NodeDefaults struct {
	// Default behaviour for Interruptible for nodes unless explicitly set at the node level.
	Interruptible bool `json:"interruptible,omitempty"`
}

func (*NodeDefaults) DeepCopy added in v0.7.0

func (in *NodeDefaults) DeepCopy() *NodeDefaults

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDefaults.

func (*NodeDefaults) DeepCopyInto added in v0.7.0

func (in *NodeDefaults) DeepCopyInto(out *NodeDefaults)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeGetter added in v0.7.0

type NodeGetter interface {
	GetNode(nodeID NodeID) (ExecutableNode, bool)
}

type NodeID

type NodeID = string

type NodeKind

type NodeKind string

NodeKind refers to the type of Node.

const (
	// TODO Should we default a NodeKindTask to empty? thus we can assume all unspecified nodetypes as task
	NodeKindTask     NodeKind = "task"
	NodeKindBranch   NodeKind = "branch"   // A Branch node with conditions
	NodeKindWorkflow NodeKind = "workflow" // Either an inline workflow or a remote workflow definition
	NodeKindStart    NodeKind = "start"    // Start node is a special node
	NodeKindEnd      NodeKind = "end"
)

func (NodeKind) String

func (n NodeKind) String() string

type NodeMetadata

type NodeMetadata struct {
	core.NodeMetadata
}

func (*NodeMetadata) DeepCopy

func (in *NodeMetadata) DeepCopy() *NodeMetadata

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeMetadata.

func (*NodeMetadata) DeepCopyInto

func (in *NodeMetadata) DeepCopyInto(out *NodeMetadata)

type NodePhase

type NodePhase int

NodePhase indicates the current state of the Node (phase). A node progresses through these states

const (
	NodePhaseNotYetStarted NodePhase = iota
	NodePhaseQueued
	NodePhaseRunning
	NodePhaseFailing
	NodePhaseSucceeding
	NodePhaseSucceeded
	NodePhaseFailed
	NodePhaseSkipped
	NodePhaseRetryableFailure
	NodePhaseTimingOut
	NodePhaseTimedOut
)

func (NodePhase) String

func (p NodePhase) String() string

type NodeSpec

type NodeSpec struct {
	ID            NodeID                        `json:"id"`
	Name          string                        `json:"name,omitempty"`
	Resources     *typesv1.ResourceRequirements `json:"resources,omitempty"`
	Kind          NodeKind                      `json:"kind"`
	BranchNode    *BranchNodeSpec               `json:"branch,omitempty"`
	TaskRef       *TaskID                       `json:"task,omitempty"`
	WorkflowNode  *WorkflowNodeSpec             `json:"workflow,omitempty"`
	InputBindings []*Binding                    `json:"inputBindings,omitempty"`
	Config        *typesv1.ConfigMap            `json:"config,omitempty"`
	RetryStrategy *RetryStrategy                `json:"retry,omitempty"`
	OutputAliases []Alias                       `json:"outputAlias,omitempty"`

	// SecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	// +optional
	SecurityContext *typesv1.PodSecurityContext `json:"securityContext,omitempty" protobuf:"bytes,14,opt,name=securityContext"`
	// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
	// If specified, these secrets will be passed to individual puller implementations for them to use. For example,
	// in the case of docker, only DockerConfig type secrets are honored.
	// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
	// +optional
	// +patchMergeKey=name
	// +patchStrategy=merge
	ImagePullSecrets []typesv1.LocalObjectReference `json:"imagePullSecrets,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,15,rep,name=imagePullSecrets"`
	// Specifies the hostname of the Pod
	// If not specified, the pod's hostname will be set to a system-defined value.
	// +optional
	Hostname string `json:"hostname,omitempty" protobuf:"bytes,16,opt,name=hostname"`
	// If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>".
	// If not specified, the pod will not have a domainname at all.
	// +optional
	Subdomain string `json:"subdomain,omitempty" protobuf:"bytes,17,opt,name=subdomain"`
	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *typesv1.Affinity `json:"affinity,omitempty" protobuf:"bytes,18,opt,name=affinity"`
	// If specified, the pod will be dispatched by specified scheduler.
	// If not specified, the pod will be dispatched by default scheduler.
	// +optional
	SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,19,opt,name=schedulerName"`
	// If specified, the pod's tolerations.
	// +optional
	Tolerations []typesv1.Toleration `json:"tolerations,omitempty" protobuf:"bytes,22,opt,name=tolerations"`
	// Node execution timeout
	ExecutionDeadline *v1.Duration `json:"executionDeadline,omitempty"`
	// StartTime before the system will actively try to mark it failed and kill associated containers.
	// Value must be a positive integer. This includes time spent waiting in the queue.
	// +optional
	ActiveDeadline *v1.Duration `json:"activeDeadline,omitempty"`
	// The value set to True means task is OK with getting interrupted
	// +optional
	Interruptibe *bool `json:"interruptible,omitempty"`
}

func (*NodeSpec) DeepCopy

func (in *NodeSpec) DeepCopy() *NodeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpec.

func (*NodeSpec) DeepCopyInto

func (in *NodeSpec) DeepCopyInto(out *NodeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeSpec) GetActiveDeadline added in v0.1.17

func (in *NodeSpec) GetActiveDeadline() *time.Duration

func (*NodeSpec) GetBranchNode

func (in *NodeSpec) GetBranchNode() ExecutableBranchNode

func (*NodeSpec) GetConfig

func (in *NodeSpec) GetConfig() *typesv1.ConfigMap

func (*NodeSpec) GetExecutionDeadline added in v0.1.17

func (in *NodeSpec) GetExecutionDeadline() *time.Duration

func (*NodeSpec) GetID

func (in *NodeSpec) GetID() NodeID

func (*NodeSpec) GetInputBindings

func (in *NodeSpec) GetInputBindings() []*Binding

func (*NodeSpec) GetKind

func (in *NodeSpec) GetKind() NodeKind

func (*NodeSpec) GetName added in v0.7.0

func (in *NodeSpec) GetName() string

func (*NodeSpec) GetOutputAlias

func (in *NodeSpec) GetOutputAlias() []Alias

func (*NodeSpec) GetResources

func (in *NodeSpec) GetResources() *typesv1.ResourceRequirements

func (*NodeSpec) GetRetryStrategy

func (in *NodeSpec) GetRetryStrategy() *RetryStrategy

func (*NodeSpec) GetTaskID

func (in *NodeSpec) GetTaskID() *TaskID

func (*NodeSpec) GetWorkflowNode

func (in *NodeSpec) GetWorkflowNode() ExecutableWorkflowNode

func (*NodeSpec) IsEndNode

func (in *NodeSpec) IsEndNode() bool

func (*NodeSpec) IsInterruptible added in v0.7.0

func (in *NodeSpec) IsInterruptible() *bool

func (*NodeSpec) IsStartNode

func (in *NodeSpec) IsStartNode() bool

type NodeStatus

type NodeStatus struct {
	MutableStruct
	Phase                NodePhase     `json:"phase"`
	QueuedAt             *metav1.Time  `json:"queuedAt,omitempty"`
	StartedAt            *metav1.Time  `json:"startedAt,omitempty"`
	StoppedAt            *metav1.Time  `json:"stoppedAt,omitempty"`
	LastUpdatedAt        *metav1.Time  `json:"lastUpdatedAt,omitempty"`
	LastAttemptStartedAt *metav1.Time  `json:"laStartedAt,omitempty"`
	Message              string        `json:"message,omitempty"`
	DataDir              DataReference `json:"-"`
	OutputDir            DataReference `json:"-"`
	Attempts             uint32        `json:"attempts"`
	SystemFailures       uint32        `json:"systemFailures,omitempty"`
	Cached               bool          `json:"cached"`

	// This is useful only for branch nodes. If this is set, then it can be used to determine if execution can proceed
	ParentNode    *NodeID                  `json:"parentNode,omitempty"`
	ParentTask    *TaskExecutionIdentifier `json:"-"`
	BranchStatus  *BranchNodeStatus        `json:"branchStatus,omitempty"`
	SubNodeStatus map[NodeID]*NodeStatus   `json:"subNodeStatus,omitempty"`

	// TODO not used delete
	WorkflowNodeStatus *WorkflowNodeStatus `json:"workflowNodeStatus,omitempty"`

	TaskNodeStatus    *TaskNodeStatus    `json:",omitempty"`
	DynamicNodeStatus *DynamicNodeStatus `json:"dynamicNodeStatus,omitempty"`
	// In case of Failing/Failed Phase, an execution error can be optionally associated with the Node
	Error *ExecutionError `json:"error,omitempty"`

	// Not Persisted
	DataReferenceConstructor storage.ReferenceConstructor `json:"-"`
}

func (*NodeStatus) ClearDynamicNodeStatus

func (in *NodeStatus) ClearDynamicNodeStatus()

func (*NodeStatus) ClearLastAttemptStartedAt added in v0.1.17

func (in *NodeStatus) ClearLastAttemptStartedAt()

func (*NodeStatus) ClearSubNodeStatus added in v0.1.25

func (in *NodeStatus) ClearSubNodeStatus()

func (*NodeStatus) ClearTaskStatus

func (in *NodeStatus) ClearTaskStatus()

func (*NodeStatus) ClearWorkflowStatus

func (in *NodeStatus) ClearWorkflowStatus()

func (*NodeStatus) DeepCopy

func (in *NodeStatus) DeepCopy() *NodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeStatus.

func (*NodeStatus) DeepCopyInto

func (in *NodeStatus) DeepCopyInto(out *NodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeStatus) Equals

func (in *NodeStatus) Equals(other *NodeStatus) bool

func (*NodeStatus) GetAttempts

func (in *NodeStatus) GetAttempts() uint32

func (*NodeStatus) GetBranchStatus added in v0.1.13

func (in *NodeStatus) GetBranchStatus() MutableBranchNodeStatus

func (*NodeStatus) GetDataDir

func (in *NodeStatus) GetDataDir() DataReference

func (NodeStatus) GetDynamicNodeStatus added in v0.1.13

func (in NodeStatus) GetDynamicNodeStatus() MutableDynamicNodeStatus

func (*NodeStatus) GetExecutionError added in v0.7.0

func (in *NodeStatus) GetExecutionError() *core.ExecutionError

func (*NodeStatus) GetLastAttemptStartedAt added in v0.1.17

func (in *NodeStatus) GetLastAttemptStartedAt() *metav1.Time

func (*NodeStatus) GetLastUpdatedAt

func (in *NodeStatus) GetLastUpdatedAt() *metav1.Time

func (*NodeStatus) GetMessage

func (in *NodeStatus) GetMessage() string

func (*NodeStatus) GetNodeExecutionStatus

func (in *NodeStatus) GetNodeExecutionStatus(ctx context.Context, id NodeID) ExecutableNodeStatus

func (*NodeStatus) GetOrCreateBranchStatus

func (in *NodeStatus) GetOrCreateBranchStatus() MutableBranchNodeStatus

func (*NodeStatus) GetOrCreateDynamicNodeStatus

func (in *NodeStatus) GetOrCreateDynamicNodeStatus() MutableDynamicNodeStatus

func (*NodeStatus) GetOrCreateTaskStatus

func (in *NodeStatus) GetOrCreateTaskStatus() MutableTaskNodeStatus

func (*NodeStatus) GetOrCreateWorkflowStatus

func (in *NodeStatus) GetOrCreateWorkflowStatus() MutableWorkflowNodeStatus

func (*NodeStatus) GetOutputDir added in v0.1.27

func (in *NodeStatus) GetOutputDir() DataReference

func (*NodeStatus) GetParentNodeID

func (in *NodeStatus) GetParentNodeID() *NodeID

func (*NodeStatus) GetParentTaskID

func (in *NodeStatus) GetParentTaskID() *core.TaskExecutionIdentifier

func (*NodeStatus) GetPhase

func (in *NodeStatus) GetPhase() NodePhase

func (*NodeStatus) GetQueuedAt

func (in *NodeStatus) GetQueuedAt() *metav1.Time

func (*NodeStatus) GetStartedAt

func (in *NodeStatus) GetStartedAt() *metav1.Time

func (*NodeStatus) GetStoppedAt

func (in *NodeStatus) GetStoppedAt() *metav1.Time

func (*NodeStatus) GetSystemFailures added in v0.7.0

func (in *NodeStatus) GetSystemFailures() uint32

func (NodeStatus) GetTaskNodeStatus

func (in NodeStatus) GetTaskNodeStatus() ExecutableTaskNodeStatus

func (*NodeStatus) GetTaskStatus added in v0.1.13

func (in *NodeStatus) GetTaskStatus() MutableTaskNodeStatus

func (*NodeStatus) GetWorkflowNodeStatus

func (in *NodeStatus) GetWorkflowNodeStatus() ExecutableWorkflowNodeStatus

func (*NodeStatus) GetWorkflowStatus added in v0.1.13

func (in *NodeStatus) GetWorkflowStatus() MutableWorkflowNodeStatus

func (*NodeStatus) IncrementAttempts

func (in *NodeStatus) IncrementAttempts() uint32

func (*NodeStatus) IncrementSystemFailures added in v0.7.0

func (in *NodeStatus) IncrementSystemFailures() uint32

func (*NodeStatus) IsCached

func (in *NodeStatus) IsCached() bool

func (*NodeStatus) IsDirty

func (in *NodeStatus) IsDirty() bool

func (*NodeStatus) IsTerminated

func (in *NodeStatus) IsTerminated() bool

func (*NodeStatus) ResetDirty

func (in *NodeStatus) ResetDirty()

ResetDirty is for unit tests, shouldn't be used in actual logic.

func (*NodeStatus) SetCached

func (in *NodeStatus) SetCached()

func (*NodeStatus) SetDataDir

func (in *NodeStatus) SetDataDir(d DataReference)

func (*NodeStatus) SetOutputDir added in v0.1.27

func (in *NodeStatus) SetOutputDir(d DataReference)

func (*NodeStatus) SetParentNodeID

func (in *NodeStatus) SetParentNodeID(n *NodeID)

func (*NodeStatus) SetParentTaskID

func (in *NodeStatus) SetParentTaskID(t *core.TaskExecutionIdentifier)

func (*NodeStatus) UpdatePhase

func (in *NodeStatus) UpdatePhase(p NodePhase, occurredAt metav1.Time, reason string, err *core.ExecutionError)

func (NodeStatus) VisitNodeStatuses

func (in NodeStatus) VisitNodeStatuses(visitor NodeStatusVisitFn)

type NodeStatusGetter

type NodeStatusGetter interface {
	GetNodeExecutionStatus(ctx context.Context, id NodeID) ExecutableNodeStatus
}

type NodeStatusMap

type NodeStatusMap = map[NodeID]ExecutableNodeStatus

type NodeStatusVisitFn

type NodeStatusVisitFn = func(node NodeID, status ExecutableNodeStatus)

type NodeStatusVisitor

type NodeStatusVisitor interface {
	VisitNodeStatuses(visitor NodeStatusVisitFn)
}

type OutputVarMap

type OutputVarMap struct {
	*core.VariableMap
}

func (*OutputVarMap) DeepCopy

func (in *OutputVarMap) DeepCopy() *OutputVarMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutputVarMap.

func (*OutputVarMap) DeepCopyInto

func (in *OutputVarMap) DeepCopyInto(out *OutputVarMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*OutputVarMap) MarshalJSON

func (in *OutputVarMap) MarshalJSON() ([]byte, error)

func (*OutputVarMap) UnmarshalJSON

func (in *OutputVarMap) UnmarshalJSON(b []byte) error

type RawOutputDataConfig added in v0.7.0

type RawOutputDataConfig struct {
	*admin.RawOutputDataConfig
}

This contains an OutputLocationPrefix. When running against AWS, this should be something of the form s3://my-bucket, or s3://my-bucket/ A sharding string will automatically be appended to this prefix before handing off to plugins/tasks. Sharding behavior may change in the future. Background available at https://github.com/flyteorg/flyte/issues/211

func (*RawOutputDataConfig) DeepCopy added in v0.7.0

func (in *RawOutputDataConfig) DeepCopy() *RawOutputDataConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawOutputDataConfig.

func (*RawOutputDataConfig) DeepCopyInto added in v0.7.0

func (in *RawOutputDataConfig) DeepCopyInto(out *RawOutputDataConfig)

type RetryStrategy

type RetryStrategy struct {
	// MinAttempts implies the atleast n attempts to try this node before giving up. The atleast here is because we may
	// fail to write the attempt information and end up retrying again.
	// Also `0` and `1` both mean atleast one attempt will be done. 0 is a degenerate case.
	MinAttempts *int `json:"minAttempts"`
}

Strategy to be used to Retry a node that is in RetryableFailure state

func (*RetryStrategy) DeepCopy

func (in *RetryStrategy) DeepCopy() *RetryStrategy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryStrategy.

func (*RetryStrategy) DeepCopyInto

func (in *RetryStrategy) DeepCopyInto(out *RetryStrategy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SubWorkflowGetter added in v0.7.0

type SubWorkflowGetter interface {
	FindSubWorkflow(subID WorkflowID) ExecutableSubWorkflow
}

type TaskDetailsGetter added in v0.1.13

type TaskDetailsGetter interface {
	GetTask(id TaskID) (ExecutableTask, error)
}

type TaskExecutionIdentifier

type TaskExecutionIdentifier struct {
	*core.TaskExecutionIdentifier
}

func (*TaskExecutionIdentifier) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskExecutionIdentifier.

func (*TaskExecutionIdentifier) DeepCopyInto

func (in *TaskExecutionIdentifier) DeepCopyInto(out *TaskExecutionIdentifier)

type TaskID

type TaskID = string

type TaskNodeStatus

type TaskNodeStatus struct {
	MutableStruct
	Phase              int       `json:"phase,omitempty"`
	PhaseVersion       uint32    `json:"phaseVersion,omitempty"`
	PluginState        []byte    `json:"pState,omitempty"`
	PluginStateVersion uint32    `json:"psv,omitempty"`
	BarrierClockTick   uint32    `json:"tick,omitempty"`
	LastPhaseUpdatedAt time.Time `json:"updAt,omitempty"`
}

func (*TaskNodeStatus) DeepCopy

func (in *TaskNodeStatus) DeepCopy() *TaskNodeStatus

func (*TaskNodeStatus) DeepCopyInto

func (in *TaskNodeStatus) DeepCopyInto(out *TaskNodeStatus)

func (*TaskNodeStatus) Equals added in v0.1.13

func (in *TaskNodeStatus) Equals(other *TaskNodeStatus) bool

func (*TaskNodeStatus) GetBarrierClockTick added in v0.1.13

func (in *TaskNodeStatus) GetBarrierClockTick() uint32

func (TaskNodeStatus) GetLastPhaseUpdatedAt added in v0.1.27

func (in TaskNodeStatus) GetLastPhaseUpdatedAt() time.Time

func (TaskNodeStatus) GetPhase

func (in TaskNodeStatus) GetPhase() int

func (TaskNodeStatus) GetPhaseVersion

func (in TaskNodeStatus) GetPhaseVersion() uint32

func (*TaskNodeStatus) GetPluginState added in v0.1.13

func (in *TaskNodeStatus) GetPluginState() []byte

func (*TaskNodeStatus) GetPluginStateVersion added in v0.1.13

func (in *TaskNodeStatus) GetPluginStateVersion() uint32

func (*TaskNodeStatus) SetBarrierClockTick added in v0.1.13

func (in *TaskNodeStatus) SetBarrierClockTick(tick uint32)

func (TaskNodeStatus) SetLastPhaseUpdatedAt added in v0.1.27

func (in TaskNodeStatus) SetLastPhaseUpdatedAt(updatedAt time.Time)

func (*TaskNodeStatus) SetPhase

func (in *TaskNodeStatus) SetPhase(phase int)

func (*TaskNodeStatus) SetPhaseVersion

func (in *TaskNodeStatus) SetPhaseVersion(version uint32)

func (*TaskNodeStatus) SetPluginState added in v0.1.13

func (in *TaskNodeStatus) SetPluginState(s []byte)

func (*TaskNodeStatus) SetPluginStateVersion added in v0.1.13

func (in *TaskNodeStatus) SetPluginStateVersion(v uint32)

func (*TaskNodeStatus) UpdatePhase

func (in *TaskNodeStatus) UpdatePhase(phase int, phaseVersion uint32)

type TaskPluginOverride added in v0.7.0

type TaskPluginOverride struct {
	PluginIDs             []string
	MissingPluginBehavior admin.PluginOverride_MissingPluginBehavior
}

func (*TaskPluginOverride) DeepCopy added in v0.7.0

func (in *TaskPluginOverride) DeepCopy() *TaskPluginOverride

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskPluginOverride.

func (*TaskPluginOverride) DeepCopyInto added in v0.7.0

func (in *TaskPluginOverride) DeepCopyInto(out *TaskPluginOverride)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TaskSpec

type TaskSpec struct {
	*core.TaskTemplate
}

func (*TaskSpec) CoreTask

func (in *TaskSpec) CoreTask() *core.TaskTemplate

func (*TaskSpec) DeepCopy

func (in *TaskSpec) DeepCopy() *TaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskSpec.

func (*TaskSpec) DeepCopyInto

func (in *TaskSpec) DeepCopyInto(out *TaskSpec)

func (*TaskSpec) MarshalJSON

func (in *TaskSpec) MarshalJSON() ([]byte, error)

func (*TaskSpec) TaskType

func (in *TaskSpec) TaskType() TaskType

func (*TaskSpec) UnmarshalJSON

func (in *TaskSpec) UnmarshalJSON(b []byte) error

type TaskType

type TaskType = string

TaskType is a dynamic enumeration, that is defined by configuration

type WorkflowExecutionIdentifier

type WorkflowExecutionIdentifier struct {
	*core.WorkflowExecutionIdentifier
}

func (*WorkflowExecutionIdentifier) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowExecutionIdentifier.

func (*WorkflowExecutionIdentifier) DeepCopyInto

type WorkflowID

type WorkflowID = string

type WorkflowMeta

type WorkflowMeta struct {
	EventVersion EventVersion `json:"eventVersion,omitempty"`
}

func (*WorkflowMeta) DeepCopy added in v0.7.0

func (in *WorkflowMeta) DeepCopy() *WorkflowMeta

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowMeta.

func (*WorkflowMeta) DeepCopyInto added in v0.7.0

func (in *WorkflowMeta) DeepCopyInto(out *WorkflowMeta)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WorkflowNodePhase added in v0.1.13

type WorkflowNodePhase int
const (
	WorkflowNodePhaseUndefined WorkflowNodePhase = iota
	WorkflowNodePhaseExecuting
	WorkflowNodePhaseFailing
)

type WorkflowNodeSpec

type WorkflowNodeSpec struct {
	// Either one of the two
	LaunchPlanRefID *LaunchPlanRefID `json:"launchPlanRefId,omitempty"`
	// We currently want the SubWorkflow to be completely contained in the node. this is because
	// We use the node status to store the information of the execution.
	// Important Note: This may cause a bloat in case we use the same SubWorkflow in multiple nodes. The recommended
	// technique for that is to use launch plan refs. This is because we will end up executing the launch plan refs as
	// disparate executions in Flyte propeller. This is potentially better as it prevents us from hitting the storage limit
	// in etcd
	//+optional.
	// Workflow *WorkflowSpec `json:"workflow,omitempty"`
	SubWorkflowReference *WorkflowID `json:"subWorkflowRef,omitempty"`
}

func (*WorkflowNodeSpec) DeepCopy

func (in *WorkflowNodeSpec) DeepCopy() *WorkflowNodeSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowNodeSpec.

func (*WorkflowNodeSpec) DeepCopyInto

func (in *WorkflowNodeSpec) DeepCopyInto(out *WorkflowNodeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WorkflowNodeSpec) GetLaunchPlanRefID

func (in *WorkflowNodeSpec) GetLaunchPlanRefID() *LaunchPlanRefID

func (*WorkflowNodeSpec) GetSubWorkflowRef

func (in *WorkflowNodeSpec) GetSubWorkflowRef() *WorkflowID

type WorkflowNodeStatus

type WorkflowNodeStatus struct {
	MutableStruct
	Phase          WorkflowNodePhase    `json:"phase"`
	ExecutionError *core.ExecutionError `json:"executionError"`
}

func (*WorkflowNodeStatus) DeepCopy

func (in *WorkflowNodeStatus) DeepCopy() *WorkflowNodeStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowNodeStatus.

func (*WorkflowNodeStatus) DeepCopyInto

func (in *WorkflowNodeStatus) DeepCopyInto(out *WorkflowNodeStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WorkflowNodeStatus) GetExecutionError added in v0.7.0

func (in *WorkflowNodeStatus) GetExecutionError() *core.ExecutionError

func (*WorkflowNodeStatus) GetWorkflowNodePhase added in v0.1.13

func (in *WorkflowNodeStatus) GetWorkflowNodePhase() WorkflowNodePhase

func (*WorkflowNodeStatus) SetExecutionError added in v0.7.0

func (in *WorkflowNodeStatus) SetExecutionError(executionError *core.ExecutionError)

func (*WorkflowNodeStatus) SetWorkflowNodePhase added in v0.1.13

func (in *WorkflowNodeStatus) SetWorkflowNodePhase(phase WorkflowNodePhase)

type WorkflowOnFailurePolicy added in v0.7.0

type WorkflowOnFailurePolicy core.WorkflowMetadata_OnFailurePolicy

Failure Handling Policy

func WorkflowOnFailurePolicyString added in v0.7.0

func WorkflowOnFailurePolicyString(policy string) (WorkflowOnFailurePolicy, error)

func (WorkflowOnFailurePolicy) MarshalJSON added in v0.7.0

func (in WorkflowOnFailurePolicy) MarshalJSON() ([]byte, error)

func (*WorkflowOnFailurePolicy) UnmarshalJSON added in v0.7.0

func (in *WorkflowOnFailurePolicy) UnmarshalJSON(data []byte) error

type WorkflowPhase

type WorkflowPhase int

WorkflowPhase indicates current state of the Workflow.

const (
	WorkflowPhaseReady WorkflowPhase = iota
	WorkflowPhaseRunning
	WorkflowPhaseSucceeding
	WorkflowPhaseSuccess
	WorkflowPhaseFailing
	WorkflowPhaseFailed
	WorkflowPhaseAborted
	// WorkflowPhaseHandlingFailureNode is the phase the workflow will enter when a failure is detected in the workflow,
	// the workflow has finished cleaning up (aborted running nodes... etc.) and a failure node is declared in the
	// workflow spec. We enter this explicit phase so as to ensure we do not attempt to repeatedly clean up old nodes
	// when handling a workflow event which might yield to seemingly random failures. This phase ensure we are handling,
	// and only so, the failure node until it's done executing or it fails itself.
	// If a failure node fails to execute (a real possibility), the final failure output of the workflow will only include
	// its failure reason. In other words, its failure will mask the original failure for the workflow. It's imperative
	// failure nodes should be very simple, very resilient and very well tested.
	WorkflowPhaseHandlingFailureNode
)

func (WorkflowPhase) String

func (p WorkflowPhase) String() string

type WorkflowSpec

type WorkflowSpec struct {
	ID    WorkflowID           `json:"id"`
	Nodes map[NodeID]*NodeSpec `json:"nodes"`

	// Defines the set of connections (both data dependencies and execution dependencies) that the graph is
	// formed of. The execution engine will respect and follow these connections as it determines which nodes
	// can and should be executed.
	Connections Connections `json:"connections"`

	// Defines a single node to execute in case the system determined the Workflow has failed.
	OnFailure *NodeSpec `json:"onFailure,omitempty"`

	// Defines the declaration of the outputs types and names this workflow is expected to generate.
	Outputs *OutputVarMap `json:"outputs,omitempty"`

	// Defines the data links used to construct the final outputs of the workflow. Bindings will typically
	// refer to specific outputs of a subset of the nodes executed in the Workflow. When executing the end-node,
	// the execution engine will traverse these bindings and assemble the final set of outputs of the workflow.
	OutputBindings []*Binding `json:"outputBindings,omitempty"`

	// Defines the policy for handling failures whether it's to fail immediately, or let the nodes run
	// to completion.
	OnFailurePolicy WorkflowOnFailurePolicy `json:"onFailurePolicy,omitempty"`
}

WorkflowSpec is the spec for the actual Flyte Workflow (DAG)

func (*WorkflowSpec) DeepCopy

func (in *WorkflowSpec) DeepCopy() *WorkflowSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowSpec.

func (*WorkflowSpec) DeepCopyInto

func (in *WorkflowSpec) DeepCopyInto(out *WorkflowSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WorkflowSpec) FromNode

func (in *WorkflowSpec) FromNode(name NodeID) ([]NodeID, error)

func (*WorkflowSpec) GetConnections

func (in *WorkflowSpec) GetConnections() *Connections

func (*WorkflowSpec) GetID

func (in *WorkflowSpec) GetID() WorkflowID

func (*WorkflowSpec) GetNode

func (in *WorkflowSpec) GetNode(nodeID NodeID) (ExecutableNode, bool)

func (*WorkflowSpec) GetNodes

func (in *WorkflowSpec) GetNodes() []NodeID

func (*WorkflowSpec) GetOnFailureNode

func (in *WorkflowSpec) GetOnFailureNode() ExecutableNode

func (*WorkflowSpec) GetOnFailurePolicy added in v0.7.0

func (in *WorkflowSpec) GetOnFailurePolicy() WorkflowOnFailurePolicy

func (*WorkflowSpec) GetOutputBindings

func (in *WorkflowSpec) GetOutputBindings() []*Binding

func (*WorkflowSpec) GetOutputs

func (in *WorkflowSpec) GetOutputs() *OutputVarMap

func (*WorkflowSpec) StartNode

func (in *WorkflowSpec) StartNode() ExecutableNode

func (*WorkflowSpec) ToNode added in v0.7.0

func (in *WorkflowSpec) ToNode(name NodeID) ([]NodeID, error)

type WorkflowStatus

type WorkflowStatus struct {
	Phase           WorkflowPhase `json:"phase"`
	StartedAt       *metav1.Time  `json:"startedAt,omitempty"`
	StoppedAt       *metav1.Time  `json:"stoppedAt,omitempty"`
	LastUpdatedAt   *metav1.Time  `json:"lastUpdatedAt,omitempty"`
	Message         string        `json:"message,omitempty"`
	DataDir         DataReference `json:"dataDir,omitempty"`
	OutputReference DataReference `json:"outputRef,omitempty"`

	NodeStatus map[NodeID]*NodeStatus `json:"nodeStatus,omitempty"`

	// Number of Attempts completed with rounds resulting in error. this is used to cap out poison pill workflows
	// that spin in an error loop. The value should be set at the global level and will be enforced. At the end of
	// the retries the workflow will fail
	FailedAttempts uint32 `json:"failedAttempts,omitempty"`

	// Stores the Error during the Execution of the Workflow. It is optional and usually associated with Failing/Failed state only
	Error *ExecutionError `json:"error,omitempty"`

	// non-Serialized fields
	DataReferenceConstructor storage.ReferenceConstructor `json:"-"`
}

func (*WorkflowStatus) ConstructNodeDataDir

func (in *WorkflowStatus) ConstructNodeDataDir(ctx context.Context, name NodeID) (storage.DataReference, error)

func (*WorkflowStatus) DeepCopy

func (in *WorkflowStatus) DeepCopy() *WorkflowStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowStatus.

func (*WorkflowStatus) DeepCopyInto

func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*WorkflowStatus) Equals

func (in *WorkflowStatus) Equals(other *WorkflowStatus) bool

func (*WorkflowStatus) GetDataDir

func (in *WorkflowStatus) GetDataDir() DataReference

func (*WorkflowStatus) GetExecutionError added in v0.7.0

func (in *WorkflowStatus) GetExecutionError() *core.ExecutionError

func (*WorkflowStatus) GetLastUpdatedAt

func (in *WorkflowStatus) GetLastUpdatedAt() *metav1.Time

func (*WorkflowStatus) GetMessage

func (in *WorkflowStatus) GetMessage() string

func (*WorkflowStatus) GetNodeExecutionStatus

func (in *WorkflowStatus) GetNodeExecutionStatus(ctx context.Context, id NodeID) ExecutableNodeStatus

func (*WorkflowStatus) GetOutputReference

func (in *WorkflowStatus) GetOutputReference() DataReference

func (*WorkflowStatus) GetPhase

func (in *WorkflowStatus) GetPhase() WorkflowPhase

func (*WorkflowStatus) GetStartedAt

func (in *WorkflowStatus) GetStartedAt() *metav1.Time

func (*WorkflowStatus) GetStoppedAt

func (in *WorkflowStatus) GetStoppedAt() *metav1.Time

func (*WorkflowStatus) IncFailedAttempts

func (in *WorkflowStatus) IncFailedAttempts()

func (*WorkflowStatus) IsTerminated

func (in *WorkflowStatus) IsTerminated() bool

func (*WorkflowStatus) SetDataDir

func (in *WorkflowStatus) SetDataDir(d DataReference)

func (*WorkflowStatus) SetMessage

func (in *WorkflowStatus) SetMessage(msg string)

func (*WorkflowStatus) SetOutputReference

func (in *WorkflowStatus) SetOutputReference(reference DataReference)

func (*WorkflowStatus) UpdatePhase

func (in *WorkflowStatus) UpdatePhase(p WorkflowPhase, msg string, err *core.ExecutionError)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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