executors

package
v0.0.0-...-267b159 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2023 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IDFromObject

func IDFromObject(obj client.Object, op string) []byte

Types

type Client

type Client interface {
	// GetClient returns a client configured with the Config
	GetClient() client.Client

	// GetCache returns a cache.Cache
	GetCache() cache.Cache
}

Client is a friendlier controller-runtime client that gets passed to executors

type ClientBuilder

type ClientBuilder interface {
	// Build returns a new client.
	Build(cache cache.Cache, config *rest.Config, options client.Options) (client.Client, error)
}

ClientBuilder builder is the interface for the client builder.

type ControlFlow

type ControlFlow interface {
	CurrentParallelism() uint32
	IncrementParallelism() uint32
}

func InitializeControlFlow

func InitializeControlFlow() ControlFlow

type DAGStructure

type DAGStructure interface {
	// Lookup for upstream edges, find all node ids from which this node can be reached.
	ToNode(id v1alpha1.NodeID) ([]v1alpha1.NodeID, error)
	// Lookup for downstream edges, find all node ids that can be reached from the given node id.
	FromNode(id v1alpha1.NodeID) ([]v1alpha1.NodeID, error)
}

An interface that captures the Directed Acyclic Graph structure in which the nodes are connected. If NodeLookup and DAGStructure are used together a traversal can be implemented.

func NewLeafNodeDAGStructure

func NewLeafNodeDAGStructure(leafNode v1alpha1.NodeID, parentNodes ...v1alpha1.NodeID) DAGStructure

Returns a new DAGStructure for a leafNode. i.e., there are only incoming edges and no outgoing edges. Also there is no StartNode for this Structure

type DAGStructureWithStartNode

type DAGStructureWithStartNode interface {
	DAGStructure
	// The Starting node for the DAG
	StartNode() v1alpha1.ExecutableNode
}

type ExecutionContext

func NewExecutionContext

func NewExecutionContext(immExecContext ImmutableExecutionContext, tasksGetter TaskDetailsGetter, workflowGetter SubWorkflowGetter, parentInfo ImmutableParentInfo, flow ControlFlow) ExecutionContext

func NewExecutionContextWithParentInfo

func NewExecutionContextWithParentInfo(prevExecContext ExecutionContext, parentInfo ImmutableParentInfo) ExecutionContext

func NewExecutionContextWithTasksGetter

func NewExecutionContextWithTasksGetter(prevExecContext ExecutionContext, taskGetter TaskDetailsGetter) ExecutionContext

func NewExecutionContextWithWorkflowGetter

func NewExecutionContextWithWorkflowGetter(prevExecContext ExecutionContext, getter SubWorkflowGetter) ExecutionContext

type FailureNodeLookup

type FailureNodeLookup struct {
	NodeLookup
	FailureNode       v1alpha1.ExecutableNode
	FailureNodeStatus v1alpha1.ExecutableNodeStatus
}

func (FailureNodeLookup) FromNode

func (f FailureNodeLookup) FromNode(id v1alpha1.NodeID) ([]v1alpha1.NodeID, error)

func (FailureNodeLookup) GetNode

func (FailureNodeLookup) GetNodeExecutionStatus

func (f FailureNodeLookup) GetNodeExecutionStatus(ctx context.Context, id v1alpha1.NodeID) v1alpha1.ExecutableNodeStatus

func (FailureNodeLookup) ToNode

type FallbackClientBuilder

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

func NewFallbackClientBuilder

func NewFallbackClientBuilder(scope promutils.Scope) *FallbackClientBuilder

NewFallbackClientBuilder Creates a new k8s client that uses the cached client for reads and falls back to making API calls if it failed. Write calls will always go to raw client directly.

func (*FallbackClientBuilder) Build

func (f *FallbackClientBuilder) Build(_ cache.Cache, config *rest.Config, options client.Options) (client.Client, error)

type ImmutableExecutionContext

type ImmutableExecutionContext interface {
	v1alpha1.Meta
	GetID() v1alpha1.WorkflowID
	GetOnFailurePolicy() v1alpha1.WorkflowOnFailurePolicy
	GetExecutionConfig() v1alpha1.ExecutionConfig
}

type ImmutableParentInfo

type ImmutableParentInfo interface {
	GetUniqueID() v1alpha1.NodeID
	CurrentAttempt() uint32
}

func NewParentInfo

func NewParentInfo(uniqueID string, currentAttempts uint32) ImmutableParentInfo

type NodeLookup

type NodeLookup interface {
	GetNode(nodeID v1alpha1.NodeID) (v1alpha1.ExecutableNode, bool)
	GetNodeExecutionStatus(ctx context.Context, id v1alpha1.NodeID) v1alpha1.ExecutableNodeStatus

	// Lookup for upstream edges, find all node ids from which this node can be reached.
	ToNode(id v1alpha1.NodeID) ([]v1alpha1.NodeID, error)
	// Lookup for downstream edges, find all node ids that can be reached from the given node id.
	FromNode(id v1alpha1.NodeID) ([]v1alpha1.NodeID, error)
}

NodeLookup provides a structure that enables looking up all nodes within the current execution hierarchy/context. NOTE: execution hierarchy may change the nodes available, this is because when a SubWorkflow is being executed, only the nodes within the subworkflow are visible

func NewFailureNodeLookup

func NewFailureNodeLookup(nodeLookup NodeLookup, failureNode v1alpha1.ExecutableNode, failureNodeStatus v1alpha1.ExecutableNodeStatus) NodeLookup

func NewNodeLookup

Returns a Contextual NodeLookup using the given NodeGetter and a separate NodeStatusGetter. Very useful in Subworkflows where the Subworkflow is the reservoir of the nodes, but the status for these nodes maybe stored int he Top-level workflow node itself.

func NewTestNodeLookup

Returns a new NodeLookup useful in Testing. Not recommended to be used in production

type ParentInfoGetter

type ParentInfoGetter interface {
	GetParentInfo() ImmutableParentInfo
}

type SubWorkflowGetter

type SubWorkflowGetter interface {
	FindSubWorkflow(subID v1alpha1.WorkflowID) v1alpha1.ExecutableSubWorkflow
}

type TaskDetailsGetter

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

type Workflow

type Workflow interface {
	Initialize(ctx context.Context) error
	HandleNebulaWorkflow(ctx context.Context, w *v1alpha1.NebulaWorkflow) error
	HandleAbortedWorkflow(ctx context.Context, w *v1alpha1.NebulaWorkflow, maxRetries uint32) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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