resources

package
v0.18.1 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2020 License: Apache-2.0 Imports: 26 Imported by: 13

Documentation

Index

Constants

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

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

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

func ApplyReplacements

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

ApplyReplacements replaces placeholders for declared parameters with the specified replacements.

func ApplyResourceSubstitution

func ApplyResourceSubstitution(step *v1beta1.Step, resolvedResources map[string]*resourcev1alpha1.PipelineResource, conditionResources []v1beta1.ResourceDeclaration, images pipeline.Images) error

ApplyResourceSubstitution applies the substitution from values in resources which are referenced in spec as subitems of the replacementStr.

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 ApplyWorkspaces added in v0.17.0

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

func GetInputSteps

func GetInputSteps(inputs map[string]*resourcev1alpha1.PipelineResource, inputResources []v1beta1.PipelineTaskInputResource, storageBasePath string) []v1beta1.TaskResourceBinding

GetInputSteps will add the correct `path` to the input resources for pt. If the resources are provided by a previous task, the correct `path` will be used so that the resource provided by that task will be used.

func GetOutputSteps

func GetOutputSteps(outputs map[string]*resourcev1alpha1.PipelineResource, taskName, storageBasePath string) []v1beta1.TaskResourceBinding

GetOutputSteps will add the correct `path` to the output resources for pt

func GetPipelineData added in v0.8.0

func GetPipelineData(ctx context.Context, pipelineRun *v1beta1.PipelineRun, getPipeline GetPipeline) (*metav1.ObjectMeta, *v1beta1.PipelineSpec, error)

GetPipelineData will retrieve the Pipeline metadata and Spec associated with the provided PipelineRun. This can come from a reference Pipeline or from the PipelineRun's metadata and embedded PipelineSpec.

func GetResourcesFromBindings

func GetResourcesFromBindings(pr *v1beta1.PipelineRun, getResource resources.GetResource) (map[string]*resourcev1alpha1.PipelineResource, error)

GetResourcesFromBindings will retrieve all Resources bound in PipelineRun pr and return a map from the declared name of the PipelineResource (which is how the PipelineResource will be referred to in the PipelineRun) to the PipelineResource, obtained via getResource.

func GetTaskRunName added in v0.13.0

func GetTaskRunName(taskRunsStatus map[string]*v1beta1.PipelineRunTaskRunStatus, 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 ResolvePipelineTaskResources added in v0.8.0

func ResolvePipelineTaskResources(pt v1beta1.PipelineTask, ts *v1beta1.TaskSpec, taskName string, kind v1beta1.TaskKind, providedResources map[string]*resourcev1alpha1.PipelineResource) (*resources.ResolvedTaskResources, error)

ResolvePipelineTaskResources matches PipelineResources referenced by pt inputs and outputs with the providedResources and returns an instance of ResolvedTaskResources.

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 ValidateRequiredParametersProvided added in v0.14.0

func ValidateRequiredParametersProvided(pipelineParameters *[]v1beta1.ParamSpec, pipelineRunParameters *[]v1beta1.Param) 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 ValidateResourceBindings added in v0.8.0

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

ValidateResourceBindings validate that the PipelineResources declared in Pipeline p are bound in PipelineRun.

func ValidateServiceaccountMapping added in v0.13.0

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

ValidateServiceaccountMapping validates that the ServiceAccountNames defined by a PipelineRun are not correct.

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.

func WrapSteps

func WrapSteps(tr *v1beta1.TaskRunSpec, pt *v1beta1.PipelineTask, inputs, outputs map[string]*resourcev1alpha1.PipelineResource, storageBasePath string)

WrapSteps will add the correct `paths` to all of the inputs and outputs for pt

Types

type ConditionNotFoundError

type ConditionNotFoundError struct {
	Name string
	Msg  string
}

ConditionNotFoundError is used to track failures to the

func (*ConditionNotFoundError) Error

func (e *ConditionNotFoundError) Error() string

type GetCondition

type GetCondition func(string) (*v1alpha1.Condition, error)

GetCondition is a function used to retrieve PipelineConditions.

type GetPipeline added in v0.8.0

type GetPipeline func(context.Context, string) (v1beta1.PipelineInterface, error)

GetPipeline is a function used to retrieve Pipelines.

func GetPipelineFunc added in v0.18.0

func GetPipelineFunc(ctx context.Context, k8s kubernetes.Interface, tekton clientset.Interface, pipelineRun *v1beta1.PipelineRun) (GetPipeline, error)

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 image to fetch the reference.

type GetTaskRun

type GetTaskRun func(name string) (*v1beta1.TaskRun, error)

GetTaskRun is a function that will retrieve the TaskRun 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.

type PipelineRunFacts added in v0.17.0

type PipelineRunFacts struct {
	State           PipelineRunState
	TasksGraph      *dag.Graph
	FinalTasksGraph *dag.Graph

	// 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 has failed conditions.
	// 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]bool
}

PipelineRunFacts is a collection of list of ResolvedPipelineTask, graph of DAG tasks, and graph of finally 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) GetFinalTasks added in v0.17.0

func (facts *PipelineRunFacts) GetFinalTasks() PipelineRunState

GetFinalTasks returns a list of final tasks without any taskRun associated with it GetFinalTasks returns final tasks only when all DAG tasks have finished executing successfully or skipped or any one DAG task resulted in failure

func (*PipelineRunFacts) GetPipelineConditionStatus added in v0.17.0

func (facts *PipelineRunFacts) GetPipelineConditionStatus(pr *v1beta1.PipelineRun, logger *zap.SugaredLogger) *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) 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) 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 []*ResolvedPipelineRunTask

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) GetTaskRunsStatus added in v0.17.0

func (state PipelineRunState) GetTaskRunsStatus(pr *v1beta1.PipelineRun) map[string]*v1beta1.PipelineRunTaskRunStatus

GetTaskRunsStatus returns a map of taskrun name and the taskrun ignore a nil taskrun in pipelineRunState, otherwise, capture taskrun object from PipelineRun Status update taskrun status based on the pipelineRunState before returning it in the map

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]*ResolvedPipelineRunTask

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

type ResolvedConditionCheck

type ResolvedConditionCheck struct {
	ConditionRegisterName string
	PipelineTaskCondition *v1beta1.PipelineTaskCondition
	ConditionCheckName    string
	Condition             *v1alpha1.Condition
	ConditionCheck        *v1beta1.ConditionCheck
	// Resolved resources is a map of pipeline resources for this condition
	// keyed by the bound resource name (i.e. the name used in PipelineTaskCondition.Resources)
	ResolvedResources map[string]*resourcev1alpha1.PipelineResource
	// contains filtered or unexported fields
}

ResolvedConditionCheck contains a Condition and its associated ConditionCheck, if it exists. ConditionCheck can be nil to represent there being no ConditionCheck (i.e the condition has not been evaluated).

func (*ResolvedConditionCheck) ConditionToTaskSpec

func (rcc *ResolvedConditionCheck) ConditionToTaskSpec() (*v1beta1.TaskSpec, error)

ConditionToTaskSpec creates a TaskSpec from a given Condition

func (*ResolvedConditionCheck) NewConditionCheckStatus

func (rcc *ResolvedConditionCheck) NewConditionCheckStatus() *v1beta1.ConditionCheckStatus

NewConditionCheckStatus creates a ConditionCheckStatus from a ConditionCheck

func (*ResolvedConditionCheck) ToTaskResourceBindings

func (rcc *ResolvedConditionCheck) ToTaskResourceBindings() []v1beta1.TaskResourceBinding

type ResolvedPipelineRunTask

type ResolvedPipelineRunTask struct {
	TaskRunName           string
	TaskRun               *v1beta1.TaskRun
	PipelineTask          *v1beta1.PipelineTask
	ResolvedTaskResources *resources.ResolvedTaskResources
	// ConditionChecks ~~TaskRuns but for evaling conditions
	ResolvedConditionChecks TaskConditionCheckState // Could also be a TaskRun or maybe just a Pod?
}

ResolvedPipelineRunTask contains a Task and its associated TaskRun, if it exists. TaskRun can be nil to represent there being no TaskRun.

func ResolvePipelineRunTask added in v0.18.0

func ResolvePipelineRunTask(
	ctx context.Context,
	pipelineRun v1beta1.PipelineRun,
	getTask resources.GetTask,
	getTaskRun resources.GetTaskRun,
	getCondition GetCondition,
	task v1beta1.PipelineTask,
	providedResources map[string]*resourcev1alpha1.PipelineResource,
) (*ResolvedPipelineRunTask, error)

ResolvePipelineRunTask 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 of the Tasks retrieved. It will retrieve the Resources needed for the TaskRun using the mapping of providedResources.

func (ResolvedPipelineRunTask) IsCancelled added in v0.11.0

func (t ResolvedPipelineRunTask) IsCancelled() bool

IsCancelled returns true only if the taskrun itself has cancelled

func (ResolvedPipelineRunTask) IsDone

IsDone returns true only if the task is skipped, succeeded or failed

func (ResolvedPipelineRunTask) IsFailure

func (t ResolvedPipelineRunTask) IsFailure() bool

IsFailure returns true only if the taskrun itself has failed

func (ResolvedPipelineRunTask) IsStarted added in v0.14.0

func (t ResolvedPipelineRunTask) IsStarted() bool

IsStarted returns true only if the PipelineRunTask itself has a TaskRun associated

func (ResolvedPipelineRunTask) IsSuccessful

func (t ResolvedPipelineRunTask) IsSuccessful() bool

IsSuccessful returns true only if the taskrun itself has completed successfully

func (*ResolvedPipelineRunTask) Skip added in v0.16.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) Note that this means Skip returns false if a conditionCheck is in progress

type ResolvedResultRef added in v0.11.0

type ResolvedResultRef struct {
	Value           v1beta1.ArrayOrString
	ResultReference v1beta1.ResultRef
	FromTaskRun     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 ResolvePipelineResultRefs added in v0.13.0

func ResolvePipelineResultRefs(pipelineStatus v1beta1.PipelineRunStatus, pipelineResults []v1beta1.PipelineResult) ResolvedResultRefs

ResolvePipelineResultRefs takes a list of PipelineResults and resolves any references they include to Task results in the given PipelineRunStatus

func ResolveResultRefs added in v0.11.0

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

ResolveResultRefs resolves any ResultReference that are found in the target ResolvedPipelineRunTask

type TaskConditionCheckState

type TaskConditionCheckState []*ResolvedConditionCheck

TaskConditionCheckState is a slice of ResolvedConditionCheck the represents the current execution state of Conditions for a Task in a pipeline run.

func (TaskConditionCheckState) HasStarted

func (state TaskConditionCheckState) HasStarted() bool

HasStarted returns true if the conditionChecks for a given object have been created

func (TaskConditionCheckState) IsDone

func (state TaskConditionCheckState) IsDone() bool

IsDone returns true if the status for all conditionChecks for a task indicate that they are done

func (TaskConditionCheckState) IsSuccess

func (state TaskConditionCheckState) IsSuccess() bool

IsSuccess returns true if the status for all conditionChecks for a task indicate they have completed successfully

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

Jump to

Keyboard shortcuts

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