resources

package
v0.47.2 Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2023 License: Apache-2.0 Imports: 35 Imported by: 13

Documentation

Index

Constants

View Source
const (
	// PipelineTaskStateNone indicates that the execution status of a pipelineTask is unknown
	PipelineTaskStateNone = "None"
	// PipelineTaskStatusPrefix is a prefix of the param representing execution state of pipelineTask
	PipelineTaskStatusPrefix = "tasks."
	// PipelineTaskStatusSuffix is a suffix of the param representing execution state of pipelineTask
	PipelineTaskStatusSuffix = ".status"
)
View Source
const (
	// ReasonConditionCheckFailed indicates that the reason for the failure status is that the
	// condition check associated to the pipeline task evaluated to false
	ReasonConditionCheckFailed = "ConditionCheckFailed"
)

Variables

This section is empty.

Functions

func ApplyContexts added in v0.14.0

func ApplyContexts(spec *v1beta1.PipelineSpec, pipelineName string, pr *v1beta1.PipelineRun) *v1beta1.PipelineSpec

ApplyContexts applies the substitution from $(context.(pipelineRun|pipeline).*) with the specified values. Currently, supports only name substitution. Uses "" as a default if name is not specified.

func ApplyParameters

ApplyParameters applies the params from a PipelineRun.Params to a PipelineSpec.

func ApplyPipelineTaskContexts added in v0.25.0

func ApplyPipelineTaskContexts(pt *v1beta1.PipelineTask) *v1beta1.PipelineTask

ApplyPipelineTaskContexts applies the substitution from $(context.pipelineTask.*) with the specified values. Uses "0" as a default if a value is not available.

func ApplyPipelineTaskStateContext added in v0.25.0

func ApplyPipelineTaskStateContext(state PipelineRunState, replacements map[string]string)

ApplyPipelineTaskStateContext replaces context variables referring to execution status with the specified status

func ApplyReplacements

func ApplyReplacements(p *v1beta1.PipelineSpec, replacements map[string]string, arrayReplacements map[string][]string, objectReplacements map[string]map[string]string) *v1beta1.PipelineSpec

ApplyReplacements replaces placeholders for declared parameters with the specified replacements.

func ApplyTaskResults added in v0.11.0

func ApplyTaskResults(targets PipelineRunState, resolvedResultRefs ResolvedResultRefs)

ApplyTaskResults applies the ResolvedResultRef to each PipelineTask.Params and Pipeline.WhenExpressions in targets

func ApplyTaskResultsToPipelineResults added in v0.20.0

func ApplyTaskResultsToPipelineResults(
	_ context.Context,
	results []v1beta1.PipelineResult,
	taskRunResults map[string][]v1beta1.TaskRunResult,
	customTaskResults map[string][]v1beta1.CustomRunResult,
	taskstatus map[string]string) ([]v1beta1.PipelineRunResult, error)

ApplyTaskResultsToPipelineResults applies the results of completed TasksRuns and Runs to a Pipeline's list of PipelineResults, returning the computed set of PipelineRunResults. References to non-existent TaskResults or failed TaskRuns or Runs result in a PipelineResult being considered invalid and omitted from the returned slice. A nil slice is returned if no results are passed in or all results are invalid.

func ApplyWorkspaces added in v0.17.0

func ApplyWorkspaces(p *v1beta1.PipelineSpec, pr *v1beta1.PipelineRun) *v1beta1.PipelineSpec

ApplyWorkspaces replaces workspace variables in the given pipeline spec with their concrete values.

func GetContextReplacements added in v0.46.0

func GetContextReplacements(pipelineName string, pr *v1beta1.PipelineRun) map[string]string

GetContextReplacements returns the pipelineRun context which can be used to replace context variables in the specifications

func GetNamesOfTaskRuns added in v0.37.0

func GetNamesOfTaskRuns(childRefs []v1beta1.ChildStatusReference, ptName, prName string, combinationCount int) []string

GetNamesOfTaskRuns should return unique names for `TaskRuns` if one has not already been defined, and the existing one otherwise.

func GetPipelineFunc added in v0.18.0

func GetPipelineFunc(ctx context.Context, k8s kubernetes.Interface, tekton clientset.Interface, requester remoteresource.Requester, pipelineRun *v1beta1.PipelineRun) rprp.GetPipeline

GetPipelineFunc is a factory function that will use the given PipelineRef to return a valid GetPipeline function that looks up the pipeline. It uses as context a k8s client, tekton client, namespace, and service account name to return the pipeline. It knows whether it needs to look in the cluster or in a remote location to fetch the reference.

func GetTaskRunName added in v0.13.0

func GetTaskRunName(childRefs []v1beta1.ChildStatusReference, ptName, prName string) string

GetTaskRunName should return a unique name for a `TaskRun` if one has not already been defined, and the existing one otherwise.

func GetVerifiedPipelineFunc added in v0.43.0

func GetVerifiedPipelineFunc(ctx context.Context, k8s kubernetes.Interface, tekton clientset.Interface, requester remoteresource.Requester, pipelineRun *v1beta1.PipelineRun, verificationpolicies []*v1alpha1.VerificationPolicy) rprp.GetPipeline

GetVerifiedPipelineFunc is a wrapper of GetPipelineFunc and return the function to verify the pipeline if there are matching verification policies

func ValidateObjectParamRequiredKeys added in v0.38.0

func ValidateObjectParamRequiredKeys(pipelineParameters []v1beta1.ParamSpec, pipelineRunParameters v1beta1.Params) error

ValidateObjectParamRequiredKeys validates that the required keys of all the object parameters expected by the Pipeline are provided by the PipelineRun.

func ValidateOptionalWorkspaces added in v0.21.0

func ValidateOptionalWorkspaces(pipelineWorkspaces []v1beta1.PipelineWorkspaceDeclaration, state PipelineRunState) error

ValidateOptionalWorkspaces validates that any workspaces in the Pipeline that are marked as optional are also marked optional in the Tasks that receive them. This prevents a situation where a Task requires a workspace but a Pipeline does not offer the same guarantee the workspace will be provided at runtime.

func ValidateParamTypesMatching

func ValidateParamTypesMatching(p *v1beta1.PipelineSpec, pr *v1beta1.PipelineRun) error

ValidateParamTypesMatching validate that parameters in PipelineRun override corresponding parameters in Pipeline of the same type.

func ValidatePipelineResults added in v0.21.0

func ValidatePipelineResults(ps *v1beta1.PipelineSpec, state PipelineRunState) error

ValidatePipelineResults ensures that any result references used by PipelineResults resolve to valid results. This prevents a situation where a PipelineResult references a result in a PipelineTask that doesn't exist or where the user has either misspelled a result name or the referenced task just doesn't return a result with that name.

func ValidatePipelineTaskResults added in v0.21.0

func ValidatePipelineTaskResults(state PipelineRunState) error

ValidatePipelineTaskResults ensures that any result references used by pipeline tasks resolve to valid results. This prevents a situation where a PipelineTask references a result in another PipelineTask that doesn't exist or where the user has either misspelled a result name or the referenced task just doesn't return a result with that name.

func ValidateRequiredParametersProvided added in v0.14.0

func ValidateRequiredParametersProvided(pipelineParameters *v1beta1.ParamSpecs, pipelineRunParameters *v1beta1.Params) error

ValidateRequiredParametersProvided validates that all the parameters expected by the Pipeline are provided by the PipelineRun. Extra Parameters are allowed, the Pipeline will use the Parameters it needs and ignore the other Parameters.

func ValidateTaskRunSpecs added in v0.16.0

func ValidateTaskRunSpecs(p *v1beta1.PipelineSpec, pr *v1beta1.PipelineRun) error

ValidateTaskRunSpecs that the TaskRunSpecs defined by a PipelineRun are correct.

func ValidateWorkspaceBindings added in v0.10.0

func ValidateWorkspaceBindings(p *v1beta1.PipelineSpec, pr *v1beta1.PipelineRun) error

ValidateWorkspaceBindings validates that the Workspaces expected by a Pipeline are provided by a PipelineRun.

Types

type GetRun added in v0.19.0

type GetRun func(name string) (v1beta1.RunObject, error)

GetRun is a function that will retrieve a Run by name.

type LocalPipelineRefResolver added in v0.12.0

type LocalPipelineRefResolver struct {
	Namespace    string
	Tektonclient clientset.Interface
}

LocalPipelineRefResolver uses the current cluster to resolve a pipeline reference.

func (*LocalPipelineRefResolver) GetPipeline added in v0.12.0

GetPipeline will resolve a Pipeline from the local cluster using a versioned Tekton client. It will return an error if it can't find an appropriate Pipeline for any reason. TODO: if we want to set RefSource for in-cluster pipeline, set it here. https://github.com/tektoncd/pipeline/issues/5522

type PipelineRunFacts added in v0.17.0

type PipelineRunFacts struct {
	State           PipelineRunState
	SpecStatus      v1beta1.PipelineRunSpecStatus
	TasksGraph      *dag.Graph
	FinalTasksGraph *dag.Graph
	TimeoutsState   PipelineRunTimeoutsState

	// SkipCache is a hash of PipelineTask names that stores whether a task will be
	// executed or not, because it's either not reachable via the DAG due to the pipeline
	// state, or because it was skipped due to when expressions.
	// We cache this data along the state, because it's expensive to compute, it requires
	// traversing potentially the whole graph; this way it can built incrementally, when
	// needed, via the `Skip` method in pipelinerunresolution.go
	// The skip data is sensitive to changes in the state. The ResetSkippedCache method
	// can be used to clean the cache and force re-computation when needed.
	SkipCache map[string]TaskSkipStatus
}

PipelineRunFacts holds the state of all the components that make up the Pipeline graph that are used to track the PipelineRun state without passing all these components separately. It helps simplify our implementation for getting and scheduling the next tasks. It is a collection of list of ResolvedPipelineTask, graph of DAG tasks, graph of finally tasks, cache of skipped tasks.

func (*PipelineRunFacts) DAGExecutionQueue added in v0.17.0

func (facts *PipelineRunFacts) DAGExecutionQueue() (PipelineRunState, error)

DAGExecutionQueue returns a list of DAG tasks which needs to be scheduled next

func (*PipelineRunFacts) GetFinalTaskNames added in v0.40.0

func (facts *PipelineRunFacts) GetFinalTaskNames() sets.String

GetFinalTaskNames returns a list of all final task names

func (*PipelineRunFacts) GetFinalTasks added in v0.17.0

func (facts *PipelineRunFacts) GetFinalTasks() PipelineRunState

GetFinalTasks returns a list of final tasks which needs to be executed next GetFinalTasks returns final tasks only when all DAG tasks have finished executing or have been skipped

func (*PipelineRunFacts) GetPipelineConditionStatus added in v0.17.0

func (facts *PipelineRunFacts) GetPipelineConditionStatus(ctx context.Context, pr *v1beta1.PipelineRun, logger *zap.SugaredLogger, c clock.PassiveClock) *apis.Condition

GetPipelineConditionStatus will return the Condition that the PipelineRun prName should be updated with, based on the status of the TaskRuns in state.

func (*PipelineRunFacts) GetPipelineTaskStatus added in v0.20.0

func (facts *PipelineRunFacts) GetPipelineTaskStatus() map[string]string

GetPipelineTaskStatus returns the status of a PipelineTask depending on its taskRun the checks are implemented such that the finally tasks are requesting status of the dag tasks

func (*PipelineRunFacts) GetSkippedTasks added in v0.17.0

func (facts *PipelineRunFacts) GetSkippedTasks() []v1beta1.SkippedTask

GetSkippedTasks constructs a list of SkippedTask struct to be included in the PipelineRun Status

func (*PipelineRunFacts) GetTaskNames added in v0.40.0

func (facts *PipelineRunFacts) GetTaskNames() sets.String

GetTaskNames returns a list of all non-final task names

func (*PipelineRunFacts) IsCancelled added in v0.34.0

func (facts *PipelineRunFacts) IsCancelled() bool

IsCancelled returns true if the PipelineRun was cancelled

func (*PipelineRunFacts) IsGracefullyCancelled added in v0.25.0

func (facts *PipelineRunFacts) IsGracefullyCancelled() bool

IsGracefullyCancelled returns true if the PipelineRun was gracefully cancelled

func (*PipelineRunFacts) IsGracefullyStopped added in v0.25.0

func (facts *PipelineRunFacts) IsGracefullyStopped() bool

IsGracefullyStopped returns true if the PipelineRun was gracefully stopped

func (*PipelineRunFacts) IsRunning added in v0.25.0

func (facts *PipelineRunFacts) IsRunning() bool

IsRunning returns true if the PipelineRun is still running tasks in the specified dag

func (*PipelineRunFacts) IsStopping added in v0.17.0

func (facts *PipelineRunFacts) IsStopping() bool

IsStopping returns true if the PipelineRun won't be scheduling any new Task because at least one task already failed or was cancelled in the specified dag

func (*PipelineRunFacts) ResetSkippedCache added in v0.18.1

func (facts *PipelineRunFacts) ResetSkippedCache()

ResetSkippedCache resets the skipped cache in the facts map

type PipelineRunState

type PipelineRunState []*ResolvedPipelineTask

PipelineRunState is a slice of ResolvedPipelineRunTasks the represents the current execution state of the PipelineRun.

func (PipelineRunState) AdjustStartTime added in v0.18.0

func (state PipelineRunState) AdjustStartTime(unadjustedStartTime *metav1.Time) *metav1.Time

AdjustStartTime adjusts potential drift in the PipelineRun's start time.

The StartTime will only adjust earlier, so that the PipelineRun's StartTime is no later than any of its constituent TaskRuns.

This drift could be due to us either failing to record the Run's start time previously, or our own failure to observe a prior update before reconciling the resource again.

func (PipelineRunState) GetChildReferences added in v0.35.0

func (state PipelineRunState) GetChildReferences() []v1beta1.ChildStatusReference

GetChildReferences returns a slice of references, including version, kind, name, and pipeline task name, for all TaskRuns and Runs in the state.

func (PipelineRunState) GetRunsResults added in v0.35.0

func (state PipelineRunState) GetRunsResults() map[string][]v1beta1.CustomRunResult

GetRunsResults returns a map of all successfully completed Runs in the state, with the pipeline task name as the key and the results from the corresponding TaskRun as the value. It only includes runs which have completed successfully.

func (PipelineRunState) GetTaskRunsResults added in v0.35.0

func (state PipelineRunState) GetTaskRunsResults() map[string][]v1beta1.TaskRunResult

GetTaskRunsResults returns a map of all successfully completed TaskRuns in the state, with the pipeline task name as the key and the results from the corresponding TaskRun as the value. It only includes tasks which have completed successfully.

func (PipelineRunState) IsBeforeFirstTaskRun added in v0.12.0

func (state PipelineRunState) IsBeforeFirstTaskRun() bool

IsBeforeFirstTaskRun returns true if the PipelineRun has not yet started its first TaskRun

func (PipelineRunState) ToMap added in v0.11.0

func (state PipelineRunState) ToMap() map[string]*ResolvedPipelineTask

ToMap returns a map that maps pipeline task name to the resolved pipeline run task

type PipelineRunTimeoutsState added in v0.40.0

type PipelineRunTimeoutsState struct {
	StartTime        *time.Time
	FinallyStartTime *time.Time
	PipelineTimeout  *time.Duration
	TasksTimeout     *time.Duration
	FinallyTimeout   *time.Duration
	Clock            clock.PassiveClock
}

PipelineRunTimeoutsState records information about start times and timeouts for the PipelineRun, so that the PipelineRunFacts can reference those values in its functions.

type ResolvedPipelineTask added in v0.38.0

type ResolvedPipelineTask struct {
	TaskRunName  string
	TaskRun      *v1beta1.TaskRun
	TaskRunNames []string
	TaskRuns     []*v1beta1.TaskRun
	// If the PipelineTask is a Custom Task, RunObjectName and RunObject will be set.
	CustomTask     bool
	RunObjectName  string
	RunObject      v1beta1.RunObject
	RunObjectNames []string
	RunObjects     []v1beta1.RunObject
	PipelineTask   *v1beta1.PipelineTask
	ResolvedTask   *resources.ResolvedTask
}

ResolvedPipelineTask contains a PipelineTask and its associated TaskRun(s) or RunObjects, if they exist.

func ResolvePipelineTask added in v0.38.0

func ResolvePipelineTask(
	ctx context.Context,
	pipelineRun v1beta1.PipelineRun,
	getTask resources.GetTask,
	getTaskRun resources.GetTaskRun,
	getRun GetRun,
	pipelineTask v1beta1.PipelineTask,
) (*ResolvedPipelineTask, error)

ResolvePipelineTask retrieves a single Task's instance using the getTask to fetch the spec. If it is unable to retrieve an instance of a referenced Task, it will return an error, otherwise it returns a list of all the Tasks retrieved. It will retrieve the Resources needed for the TaskRuns or RunObjects using the mapping of providedResources.

func (ResolvedPipelineTask) IsCustomTask added in v0.38.0

func (t ResolvedPipelineTask) IsCustomTask() bool

IsCustomTask returns true if the PipelineTask references a Custom Task.

func (*ResolvedPipelineTask) IsFinalTask added in v0.38.0

func (t *ResolvedPipelineTask) IsFinalTask(facts *PipelineRunFacts) bool

IsFinalTask returns true if a task is a finally task

func (*ResolvedPipelineTask) IsFinallySkipped added in v0.38.0

func (t *ResolvedPipelineTask) IsFinallySkipped(facts *PipelineRunFacts) TaskSkipStatus

IsFinallySkipped returns true if a finally task is not executed and skipped due to task result validation failure

func (ResolvedPipelineTask) IsRunning added in v0.40.0

func (t ResolvedPipelineTask) IsRunning() bool

IsRunning returns true only if the task is neither succeeded, cancelled nor failed

func (*ResolvedPipelineTask) Skip added in v0.38.0

Skip returns true if a PipelineTask will not be run because (1) its When Expressions evaluated to false (2) its Condition Checks failed (3) its parent task was skipped (4) Pipeline is in stopping state (one of the PipelineTasks failed) (5) Pipeline is gracefully cancelled or stopped

type ResolvedResultRef added in v0.11.0

type ResolvedResultRef struct {
	Value           v1beta1.ResultValue
	ResultReference v1beta1.ResultRef
	FromTaskRun     string
	FromRun         string
}

ResolvedResultRef represents a result ref reference that has been fully resolved (value has been populated). If the value is from a Result, then the ResultReference will be populated to point to the ResultReference which resulted in the value

type ResolvedResultRefs added in v0.11.0

type ResolvedResultRefs []*ResolvedResultRef

ResolvedResultRefs represents all of the ResolvedResultRef for a pipeline task

func ResolveResultRef added in v0.21.0

func ResolveResultRef(pipelineRunState PipelineRunState, target *ResolvedPipelineTask) (ResolvedResultRefs, string, error)

ResolveResultRef resolves any ResultReference that are found in the target ResolvedPipelineTask

func ResolveResultRefs added in v0.11.0

func ResolveResultRefs(pipelineRunState PipelineRunState, targets PipelineRunState) (ResolvedResultRefs, string, error)

ResolveResultRefs resolves any ResultReference that are found in the target ResolvedPipelineTask

type TaskNotFoundError

type TaskNotFoundError struct {
	Name string
	Msg  string
}

TaskNotFoundError indicates that the resolution failed because a referenced Task couldn't be retrieved

func (*TaskNotFoundError) Error

func (e *TaskNotFoundError) Error() string

type TaskSkipStatus added in v0.27.0

type TaskSkipStatus struct {
	IsSkipped      bool
	SkippingReason v1beta1.SkippingReason
}

TaskSkipStatus stores whether a task was skipped and why

Jump to

Keyboard shortcuts

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