PipelineRuns
This document defines PipelineRuns
and their capabilities.
On its own, a Pipeline
declares what Tasks
to
run, and the order they run in. To execute the Tasks
in the Pipeline
, you must create a PipelineRun
.
Creation of a PipelineRun
will trigger the creation ofTaskRuns
for each Task
in your pipeline.
Syntax
To define a configuration file for a PipelineRun
resource, you can specify the
following fields:
- Required:
- [
apiVersion
][kubernetes-overview] - Specifies the API version, for exampletekton.dev/v1alpha1
. - [
kind
][kubernetes-overview] - Specify thePipelineRun
resource object. - [
metadata
][kubernetes-overview] - Specifies data to uniquely identify thePipelineRun
resource object, for example aname
. - [
spec
][kubernetes-overview] - Specifies the configuration information for
yourPipelineRun
resource object.pipelineRef
ortaskSpec
- Specifies thePipeline
you
want to run.trigger
- Provides data about what created thisPipelineRun
. The only
type at this time ismanual
.
- [
Optional:
resources
- Specifies whichPipelineResources
to use for thisPipelineRun
.serviceAccount
- Specifies aServiceAccount
resource
object that enables your build to run with the defined authentication
information.timeout
- Specifies timeout after which thePipelineRun
will fail.- [
nodeSelector
] - A selector which must be true for the pod to fit on a
node. The selector which must match a node’s labels for the pod to be
scheduled on that node. More info:
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ [
affinity
] - The pod’s scheduling constraints. More info:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#node-affinity-beta-feature
[kubernetes-overview]:
https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields
Resources
When running a Pipeline
, you will need to specify thePipelineResources
to use with it. One Pipeline
may need to
be run with different PipelineResources
in cases such as:
- When triggering the run of a
Pipeline
against a pull request, the triggering
system must specify the commitish of a gitPipelineResource
to use - When invoking a
Pipeline
manually against one’s own setup, one will need to
ensure that one’s own GitHub fork (via the gitPipelineResource
), image
registry (via the imagePipelineResource
) and Kubernetes cluster (via the
clusterPipelineResource
).
Specify the PipelineResources
in the PipelineRun using the resources
section
in the PipelineRun
spec, for example:
spec:
resources:
- name: source-repo
resourceRef:
name: skaffold-git
- name: web-image
resourceRef:
name: skaffold-image-leeroy-web
- name: app-image
resourceRef:
name: skaffold-image-leeroy-app
Service Account
Specifies the name
of a ServiceAccount
resource object. Use theserviceAccount
field to run your Pipeline
with the privileges of the
specified service account. If no serviceAccount
field is specified, your
resulting TaskRuns
run using thedefault
service account
that is in the
namespace
of the TaskRun
resource object.
For examples and more information about specifying service accounts, see theServiceAccount
reference topic.
Cancelling a PipelineRun
In order to cancel a running pipeline (PipelineRun
), you need to update its
spec to mark it as cancelled. Related TaskRun
instances will be marked as
cancelled and running Pods will be deleted.
apiVersion: tekton.dev/v1alpha1
kind: PipelineRun
metadata:
name: go-example-git
spec:
# […]
status: "PipelineRunCancelled"
Except as otherwise noted, the content of this page is licensed under the
Creative Commons Attribution 4.0 License,
and code samples are licensed under the
Apache 2.0 License.