Pipeline API

API Reference

Packages

resolution.tekton.dev/v1alpha1

Resource Types

ResolutionRequest

ResolutionRequest is an object for requesting the content of a Tekton resource like a pipeline.yaml.

Field Description Default Validation
apiVersion string resolution.tekton.dev/v1alpha1
kind string ResolutionRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec ResolutionRequestSpec Spec holds the information for the request part of the resource request. Optional: {}
status ResolutionRequestStatus Status communicates the state of the request and, ultimately,
the content of the resolved resource.
Optional: {}

ResolutionRequestSpec

ResolutionRequestSpec are all the fields in the spec of the ResolutionRequest CRD.

Appears in:

Field Description Default Validation
params object (keys:string, values:string) Parameters are the runtime attributes passed to
the resolver to help it figure out how to resolve the
resource being requested. For example: repo URL, commit SHA,
path to file, the kind of authentication to leverage, etc.
Optional: {}

ResolutionRequestStatus

ResolutionRequestStatus are all the fields in a ResolutionRequest’s status subresource.

Appears in:

Field Description Default Validation
observedGeneration integer ObservedGeneration is the ‘Generation’ of the Service that
was last processed by the controller.
Optional: {}
conditions Conditions Conditions the latest available observations of a resource’s current state. Optional: {}
annotations object (keys:string, values:string) Annotations is additional Status fields for the Resource to save some
additional State as well as convey more information to the user. This is
roughly akin to Annotations on any k8s resource, just the reconciler conveying
richer information outwards.
data string Data is a string representation of the resolved content
of the requested resource in-lined into the ResolutionRequest
object.
refSource RefSource RefSource is the source reference of the remote data that records where the remote
file came from including the url, digest and the entrypoint.
Schemaless: {}

ResolutionRequestStatusFields

ResolutionRequestStatusFields are the ResolutionRequest-specific fields for the status subresource.

Appears in:

Field Description Default Validation
data string Data is a string representation of the resolved content
of the requested resource in-lined into the ResolutionRequest
object.
refSource RefSource RefSource is the source reference of the remote data that records where the remote
file came from including the url, digest and the entrypoint.
Schemaless: {}

resolution.tekton.dev/v1beta1

Resource Types

ResolutionRequest

ResolutionRequest is an object for requesting the content of a Tekton resource like a pipeline.yaml.

Field Description Default Validation
apiVersion string resolution.tekton.dev/v1beta1
kind string ResolutionRequest
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec ResolutionRequestSpec Spec holds the information for the request part of the resource request. Optional: {}
status ResolutionRequestStatus Status communicates the state of the request and, ultimately,
the content of the resolved resource.
Optional: {}

ResolutionRequestSpec

ResolutionRequestSpec are all the fields in the spec of the ResolutionRequest CRD.

Appears in:

Field Description Default Validation
params Param array Parameters are the runtime attributes passed to
the resolver to help it figure out how to resolve the
resource being requested. For example: repo URL, commit SHA,
path to file, the kind of authentication to leverage, etc.
Optional: {}
url string URL is the runtime url passed to the resolver
to help it figure out how to resolver the resource being
requested.
This is currently at an ALPHA stability level and subject to
alpha API compatibility policies.
Optional: {}

ResolutionRequestStatus

ResolutionRequestStatus are all the fields in a ResolutionRequest’s status subresource.

Appears in:

Field Description Default Validation
observedGeneration integer ObservedGeneration is the ‘Generation’ of the Service that
was last processed by the controller.
Optional: {}
conditions Conditions Conditions the latest available observations of a resource’s current state. Optional: {}
annotations object (keys:string, values:string) Annotations is additional Status fields for the Resource to save some
additional State as well as convey more information to the user. This is
roughly akin to Annotations on any k8s resource, just the reconciler conveying
richer information outwards.
data string Data is a string representation of the resolved content
of the requested resource in-lined into the ResolutionRequest
object.
source RefSource Deprecated: Use RefSource instead Schemaless: {}
refSource RefSource RefSource is the source reference of the remote data that records the url, digest
and the entrypoint.
Schemaless: {}

ResolutionRequestStatusFields

ResolutionRequestStatusFields are the ResolutionRequest-specific fields for the status subresource.

Appears in:

Field Description Default Validation
data string Data is a string representation of the resolved content
of the requested resource in-lined into the ResolutionRequest
object.
source RefSource Deprecated: Use RefSource instead Schemaless: {}
refSource RefSource RefSource is the source reference of the remote data that records the url, digest
and the entrypoint.
Schemaless: {}

tekton.dev/unversioned

Package pod contains non-versioned pod configuration

Volumes

Underlying type: Volume

Appears in:

Field Description Default Validation
name string name of the volume.
Must be a DNS_LABEL and unique within the pod.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
hostPath HostPathVolumeSource hostPath represents a pre-existing file or directory on the host
machine that is directly exposed to the container. This is generally
used for system agents or other privileged things that are allowed
to see the host machine. Most containers will NOT need this.
More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Optional: {}
emptyDir EmptyDirVolumeSource emptyDir represents a temporary directory that shares a pod’s lifetime.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Optional: {}
gcePersistentDisk GCEPersistentDiskVolumeSource gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
Optional: {}
awsElasticBlockStore AWSElasticBlockStoreVolumeSource awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
Optional: {}
gitRepo GitRepoVolumeSource gitRepo represents a git repository at a particular revision.
Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod’s container.
Optional: {}
secret SecretVolumeSource secret represents a secret that should populate this volume.
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
Optional: {}
nfs NFSVolumeSource nfs represents an NFS mount on the host that shares a pod’s lifetime
More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Optional: {}
iscsi ISCSIVolumeSource iscsi represents an ISCSI Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
Optional: {}
glusterfs GlusterfsVolumeSource glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime.
Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
Optional: {}
persistentVolumeClaim PersistentVolumeClaimVolumeSource persistentVolumeClaimVolumeSource represents a reference to a
PersistentVolumeClaim in the same namespace.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Optional: {}
rbd RBDVolumeSource rbd represents a Rados Block Device mount on the host that shares a pod’s lifetime.
Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
Optional: {}
flexVolume FlexVolumeSource flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
Optional: {}
cinder CinderVolumeSource cinder represents a cinder volume attached and mounted on kubelets host machine.
Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
Optional: {}
cephfs CephFSVolumeSource cephFS represents a Ceph FS mount on the host that shares a pod’s lifetime.
Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
Optional: {}
flocker FlockerVolumeSource flocker represents a Flocker volume attached to a kubelet’s host machine. This depends on the Flocker control service being running.
Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
Optional: {}
downwardAPI DownwardAPIVolumeSource downwardAPI represents downward API about the pod that should populate this volume Optional: {}
fc FCVolumeSource fc represents a Fibre Channel resource that is attached to a kubelet’s host machine and then exposed to the pod. Optional: {}
azureFile AzureFileVolumeSource azureFile represents an Azure File Service mount on the host and bind mount to the pod.
Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
are redirected to the file.csi.azure.com CSI driver.
Optional: {}
configMap ConfigMapVolumeSource configMap represents a configMap that should populate this volume Optional: {}
vsphereVolume VsphereVirtualDiskVolumeSource vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
are redirected to the csi.vsphere.vmware.com CSI driver.
Optional: {}
quobyte QuobyteVolumeSource quobyte represents a Quobyte mount on the host that shares a pod’s lifetime.
Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
Optional: {}
azureDisk AzureDiskVolumeSource azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
are redirected to the disk.csi.azure.com CSI driver.
Optional: {}
photonPersistentDisk PhotonPersistentDiskVolumeSource photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
projected ProjectedVolumeSource projected items for all in one resources secrets, configmaps, and downward API
portworxVolume PortworxVolumeSource portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
is on.
Optional: {}
scaleIO ScaleIOVolumeSource scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
Optional: {}
storageos StorageOSVolumeSource storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
Optional: {}
csi CSIVolumeSource csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Optional: {}
ephemeral EphemeralVolumeSource ephemeral represents a volume that is handled by a cluster storage driver.
The volume’s lifecycle is tied to the pod that defines it - it will be created before the pod starts,
and deleted when the pod is removed.
Use this if:
a) the volume is only needed while the pod runs,
b) features of normal volumes like restoring from snapshot or capacity
tracking are needed,
c) the storage driver is specified through a storage class, and
d) the storage driver supports dynamic volume provisioning through
a PersistentVolumeClaim (see EphemeralVolumeSource for more
information on the connection between this volume type
and PersistentVolumeClaim).
Use PersistentVolumeClaim or one of the vendor-specific
APIs for volumes that persist for longer than the lifecycle
of an individual pod.
Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
be used that way - see the documentation of the driver for
more information.
A pod can use both types of ephemeral volumes and
persistent volumes at the same time.
Optional: {}
image ImageVolumeSource image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet’s host machine.
The volume is resolved at pod startup depending on which PullPolicy value is provided:
- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn’t present.
- IfNotPresent: the kubelet pulls if the reference isn’t already present on disk. Container creation will fail if the reference isn’t present and the pull fails.
The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
The OCI object gets mounted in a single directory (spec.containers[].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
The volume will be mounted read-only (ro) and non-executable files (noexec).
Sub path mounts for containers are not supported (spec.containers[
].volumeMounts.subpath) before 1.33.
The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
Optional: {}

tekton.dev/v1

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package v1 contains API Schema definitions for the pipeline v1 API group

Resource Types

Algorithm

Underlying type: string

Algorithm Standard cryptographic hash algorithm

Appears in:

Artifact

Artifact represents an artifact within a system, potentially containing multiple values associated with it.

Appears in:

Field Description Default Validation
name string The artifact’s identifying category name
values ArtifactValue array A collection of values related to the artifact
buildOutput boolean Indicate if the artifact is a build output or a by-product

ArtifactValue

ArtifactValue represents a specific value or data element within an Artifact.

Appears in:

Field Description Default Validation
digest object (keys:Algorithm, values:string)
uri string

Artifacts

Artifacts represents the collection of input and output artifacts associated with a task run or a similar process. Artifacts in this context are units of data or resources that the process either consumes as input or produces as output.

Appears in:

Field Description Default Validation
inputs Artifact array
outputs Artifact array

ChildStatusReference

ChildStatusReference is used to point to the statuses of individual TaskRuns and Runs within this PipelineRun.

Appears in:

Field Description Default Validation
name string Name is the name of the TaskRun or Run this is referencing.
displayName string DisplayName is a user-facing name of the pipelineTask that may be
used to populate a UI.
pipelineTaskName string PipelineTaskName is the name of the PipelineTask this is referencing.
whenExpressions WhenExpression array WhenExpressions is the list of checks guarding the execution of the PipelineTask Optional: {}

Combination

Underlying type: object

Combination is a map, mainly defined to hold a single combination from a Matrix with key as param.Name and value as param.Value

Appears in:

EmbeddedTask

EmbeddedTask is used to define a Task inline within a Pipeline’s PipelineTasks.

Appears in:

Field Description Default Validation
spec RawExtension Spec is a specification of a custom task Optional: {}
metadata PipelineTaskMetadata Refer to Kubernetes API documentation for fields of metadata. Optional: {}
params ParamSpecs Params is a list of input parameters required to run the task. Params
must be supplied as inputs in TaskRuns unless they declare a default
value.
Optional: {}
displayName string DisplayName is a user-facing name of the task that may be
used to populate a UI.
Optional: {}
description string Description is a user-facing description of the task that may be
used to populate a UI.
Optional: {}
steps Step array Steps are the steps of the build; each step is run sequentially with the
source mounted into /workspace.
volumes Volumes Volumes is a collection of volumes that are available to mount into the
steps of the build.
See Pod.spec.volumes (API version: v1)
Schemaless: {}
stepTemplate StepTemplate StepTemplate can be used as the basis for all step containers within the
Task, so that the steps inherit settings on the base container.
sidecars Sidecar array Sidecars are run alongside the Task’s step containers. They begin before
the steps start and end after the steps complete.
workspaces WorkspaceDeclaration array Workspaces are the volumes that this Task requires.
results TaskResult array Results are values that this Task can output

Matrix

Matrix is used to fan out Tasks in a Pipeline

Appears in:

Field Description Default Validation
params Params Params is a list of parameters used to fan out the pipelineTask
Params takes only Parameters of type "array"
Each array element is supplied to the PipelineTask by substituting params of type "string" in the underlying Task.
The names of the params in the Matrix must match the names of the params in the underlying Task that they will be substituting.

OnErrorType

Underlying type: string

OnErrorType defines a list of supported exiting behavior of a container on error

Appears in:

Field Description
stopAndFail StopAndFail indicates exit the taskRun if the container exits with non-zero exit code
continue Continue indicates continue executing the rest of the steps irrespective of the container exit code

Param

Param declares an ParamValues to use for the parameter called name.

Appears in:

Field Description Default Validation
name string
value ParamValue Schemaless: {}

ParamSpec

ParamSpec defines arbitrary parameters needed beyond typed inputs (such as resources). Parameter values are provided by users as inputs on a TaskRun or PipelineRun.

Appears in:

Field Description Default Validation
name string Name declares the name by which a parameter is referenced.
type ParamType Type is the user-specified type of the parameter. The possible types
are currently “string”, “array” and “object”, and “string” is the default.
Optional: {}
description string Description is a user-facing description of the parameter that may be
used to populate a UI.
Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs parameter. Optional: {}
default ParamValue Default is the value a parameter takes if no input value is supplied. If
default is set, a Task may be executed without a supplied value for the
parameter.
Schemaless: {}
Optional: {}
enum string array Enum declares a set of allowed param input values for tasks/pipelines that can be validated.
If Enum is not set, no input validation is performed for the param.
Optional: {}

ParamSpecs

Underlying type: ParamSpec

ParamSpecs is a list of ParamSpec

Appears in:

Field Description Default Validation
name string Name declares the name by which a parameter is referenced.
type ParamType Type is the user-specified type of the parameter. The possible types
are currently “string”, “array” and “object”, and “string” is the default.
Optional: {}
description string Description is a user-facing description of the parameter that may be
used to populate a UI.
Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs parameter. Optional: {}
default ParamValue Default is the value a parameter takes if no input value is supplied. If
default is set, a Task may be executed without a supplied value for the
parameter.
Schemaless: {}
Optional: {}
enum string array Enum declares a set of allowed param input values for tasks/pipelines that can be validated.
If Enum is not set, no input validation is performed for the param.
Optional: {}

ParamType

Underlying type: string

ParamType indicates the type of an input parameter; Used to distinguish between a single string and an array of strings.

Appears in:

Field Description
string
array
object

ParamValue

ParamValue is a type that can hold a single string, string array, or string map. Used in JSON unmarshalling so that a single JSON field can accept either an individual string or an array of strings.

Appears in:

Field Description Default Validation
Type ParamType
StringVal string
ArrayVal string array
ObjectVal object (keys:string, values:string)

Params

Underlying type: Param

Params is a list of Param

Appears in:

Field Description Default Validation
name string
value ParamValue Schemaless: {}

Pipeline

Pipeline describes a list of Tasks to execute. It expresses how outputs of tasks feed into inputs of subsequent tasks.

Field Description Default Validation
apiVersion string tekton.dev/v1
kind string Pipeline
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec PipelineSpec Spec holds the desired state of the Pipeline from the client Optional: {}

PipelineRef

PipelineRef can be used to refer to a specific instance of a Pipeline.

Appears in:

Field Description Default Validation
name string Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
apiVersion string API version of the referent Optional: {}
ResolverRef ResolverRef ResolverRef allows referencing a Pipeline in a remote location
like a git repo. This field is only supported when the alpha
feature gate is enabled.
Optional: {}

PipelineResult

Underlying type: struct{Name string “json:"name"”; Type ResultsType “json:"type,omitempty"”; Description string “json:"description"”; Value ResultValue “json:"value"”}

PipelineResult used to describe the results of a pipeline

Appears in:

PipelineRun

PipelineRun represents a single execution of a Pipeline. PipelineRuns are how the graph of Tasks declared in a Pipeline are executed; they specify inputs to Pipelines such as parameter values and capture operational aspects of the Tasks execution such as service account and tolerations. Creating a PipelineRun creates TaskRuns for Tasks in the referenced Pipeline.

Field Description Default Validation
apiVersion string tekton.dev/v1
kind string PipelineRun
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec PipelineRunSpec Optional: {}
status PipelineRunStatus Optional: {}

PipelineRunResult

PipelineRunResult used to describe the results of a pipeline

Appears in:

Field Description Default Validation
name string Name is the result’s name as declared by the Pipeline
value ResultValue Value is the result returned from the execution of this PipelineRun Schemaless: {}

PipelineRunSpec

PipelineRunSpec defines the desired state of PipelineRun

Appears in:

Field Description Default Validation
pipelineRef PipelineRef Optional: {}
pipelineSpec PipelineSpec Specifying PipelineSpec can be disabled by setting
disable-inline-spec feature flag.
See Pipeline.spec (API version: tekton.dev/v1)
Schemaless: {}
Optional: {}
params Params Params is a list of parameter names and values.
status PipelineRunSpecStatus Used for cancelling a pipelinerun (and maybe more later on) Optional: {}
timeouts TimeoutFields Time after which the Pipeline times out.
Currently three keys are accepted in the map
pipeline, tasks and finally
with Timeouts.pipeline >= Timeouts.tasks + Timeouts.finally
Optional: {}
taskRunTemplate PipelineTaskRunTemplate TaskRunTemplate represent template of taskrun Optional: {}
workspaces WorkspaceBinding array Workspaces holds a set of workspace bindings that must match names
with those declared in the pipeline.
Optional: {}
taskRunSpecs PipelineTaskRunSpec array TaskRunSpecs holds a set of runtime specs Optional: {}
managedBy string ManagedBy indicates which controller is responsible for reconciling
this resource. If unset or set to “tekton.dev/pipeline”, the default
Tekton controller will manage this resource.
This field is immutable.
Optional: {}

PipelineRunSpecStatus

Underlying type: string

PipelineRunSpecStatus defines the pipelinerun spec status the user can provide

Appears in:

PipelineRunStatus

PipelineRunStatus defines the observed state of PipelineRun

Appears in:

Field Description Default Validation
observedGeneration integer ObservedGeneration is the ‘Generation’ of the Service that
was last processed by the controller.
Optional: {}
conditions Conditions Conditions the latest available observations of a resource’s current state. Optional: {}
annotations object (keys:string, values:string) Annotations is additional Status fields for the Resource to save some
additional State as well as convey more information to the user. This is
roughly akin to Annotations on any k8s resource, just the reconciler conveying
richer information outwards.
startTime Time StartTime is the time the PipelineRun is actually started.
completionTime Time CompletionTime is the time the PipelineRun completed.
results PipelineRunResult array Results are the list of results written out by the pipeline task’s containers Optional: {}
pipelineSpec PipelineSpec PipelineSpec contains the exact spec used to instantiate the run.
See Pipeline.spec (API version: tekton.dev/v1)
Schemaless: {}
skippedTasks SkippedTask array list of tasks that were skipped due to when expressions evaluating to false Optional: {}
childReferences ChildStatusReference array list of TaskRun and Run names, PipelineTask names, and API versions/kinds for children of this PipelineRun. Optional: {}
finallyStartTime Time FinallyStartTime is when all non-finally tasks have been completed and only finally tasks are being executed. Optional: {}
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

PipelineRunStatusFields

PipelineRunStatusFields holds the fields of PipelineRunStatus’ status. This is defined separately and inlined so that other types can readily consume these fields via duck typing.

Appears in:

Field Description Default Validation
startTime Time StartTime is the time the PipelineRun is actually started.
completionTime Time CompletionTime is the time the PipelineRun completed.
results PipelineRunResult array Results are the list of results written out by the pipeline task’s containers Optional: {}
pipelineSpec PipelineSpec PipelineSpec contains the exact spec used to instantiate the run.
See Pipeline.spec (API version: tekton.dev/v1)
Schemaless: {}
skippedTasks SkippedTask array list of tasks that were skipped due to when expressions evaluating to false Optional: {}
childReferences ChildStatusReference array list of TaskRun and Run names, PipelineTask names, and API versions/kinds for children of this PipelineRun. Optional: {}
finallyStartTime Time FinallyStartTime is when all non-finally tasks have been completed and only finally tasks are being executed. Optional: {}
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

PipelineSpec

PipelineSpec defines the desired state of Pipeline.

Appears in:

Field Description Default Validation
displayName string DisplayName is a user-facing name of the pipeline that may be
used to populate a UI.
Optional: {}
description string Description is a user-facing description of the pipeline that may be
used to populate a UI.
Optional: {}
tasks PipelineTask array Tasks declares the graph of Tasks that execute when this Pipeline is run.
params ParamSpecs Params declares a list of input parameters that must be supplied when
this Pipeline is run.
workspaces PipelineWorkspaceDeclaration array Workspaces declares a set of named workspaces that are expected to be
provided by a PipelineRun.
Optional: {}
results PipelineResult array Results are values that this pipeline can output once run Optional: {}
finally PipelineTask array Finally declares the list of Tasks that execute just before leaving the Pipeline
i.e. either after all Tasks are finished executing successfully
or after a failure which would result in ending the Pipeline

PipelineTask

PipelineTask defines a task in a Pipeline, passing inputs from both Params and from the output of previous tasks.

Appears in:

Field Description Default Validation
name string Name is the name of this task within the context of a Pipeline. Name is
used as a coordinate with the from and runAfter fields to establish
the execution order of tasks relative to one another.
displayName string DisplayName is the display name of this task within the context of a Pipeline.
This display name may be used to populate a UI.
Optional: {}
description string Description is the description of this task within the context of a Pipeline.
This description may be used to populate a UI.
Optional: {}
taskRef TaskRef TaskRef is a reference to a task definition. Optional: {}
taskSpec EmbeddedTask TaskSpec is a specification of a task
Specifying TaskSpec can be disabled by setting
disable-inline-spec feature flag.
See Task.spec (API version: tekton.dev/v1)
Schemaless: {}
Optional: {}
when WhenExpressions When is a list of when expressions that need to be true for the task to run Optional: {}
retries integer Retries represents how many times this task should be retried in case of task failure: ConditionSucceeded set to False Optional: {}
runAfter string array RunAfter is the list of PipelineTask names that should be executed before
this Task executes. (Used to force a specific ordering in graph execution.)
Optional: {}
params Params Parameters declares parameters passed to this task. Optional: {}
matrix Matrix Matrix declares parameters used to fan out this task. Optional: {}
workspaces WorkspacePipelineTaskBinding array Workspaces maps workspaces from the pipeline spec to the workspaces
declared in the Task.
Optional: {}
timeout Duration Duration after which the TaskRun times out. Defaults to 1 hour.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
pipelineRef PipelineRef PipelineRef is a reference to a pipeline definition.
This is an alpha field. You must set the “enable-api-fields” feature flag
to “alpha” for this field to be supported. When enabled, the referenced
Pipeline is executed as a child PipelineRun owned by the parent PipelineRun.
Optional: {}
pipelineSpec PipelineSpec PipelineSpec is a specification of a pipeline.
This is an alpha field. You must set the “enable-api-fields” feature flag
to “alpha” for this field to be supported. When enabled, the embedded
Pipeline is executed as a child PipelineRun owned by the parent PipelineRun.
Specifying PipelineSpec can be disabled by setting
disable-inline-spec feature flag.
See Pipeline.spec (API version: tekton.dev/v1)
Schemaless: {}
Optional: {}
onError PipelineTaskOnErrorType OnError defines the exiting behavior of a PipelineRun on error
can be set to [ continue | stopAndFail ]
Optional: {}

PipelineTaskMetadata

PipelineTaskMetadata contains the labels or annotations for an EmbeddedTask

Appears in:

Field Description Default Validation
labels object (keys:string, values:string) Optional: {}
annotations object (keys:string, values:string) Optional: {}

PipelineTaskOnErrorType

Underlying type: string

PipelineTaskOnErrorType defines a list of supported failure handling behaviors of a PipelineTask on error

Appears in:

Field Description
stopAndFail PipelineTaskStopAndFail indicates to stop and fail the PipelineRun if the PipelineTask fails
continue PipelineTaskContinue indicates to continue executing the rest of the DAG when the PipelineTask fails

PipelineTaskRunSpec

PipelineTaskRunSpec can be used to configure specific specs for a concrete Task

Appears in:

Field Description Default Validation
pipelineTaskName string
serviceAccountName string
podTemplate PodTemplate
stepSpecs TaskRunStepSpec array
sidecarSpecs TaskRunSidecarSpec array
metadata PipelineTaskMetadata Refer to Kubernetes API documentation for fields of metadata. Optional: {}
computeResources ResourceRequirements Compute resources to use for this TaskRun
timeout Duration Duration after which the TaskRun times out. Overrides the timeout specified
on the Task’s spec if specified. Takes lower precedence to PipelineRun’s
spec.timeouts.tasks
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}

PipelineTaskRunTemplate

PipelineTaskRunTemplate is used to specify run specifications for all Task in pipelinerun.

Appears in:

Field Description Default Validation
podTemplate PodTemplate Optional: {}
serviceAccountName string Optional: {}

PipelineWorkspaceDeclaration

Underlying type: struct{Name string “json:"name"”; Description string “json:"description,omitempty"”; Optional bool “json:"optional,omitempty"”}

PipelineWorkspaceDeclaration creates a named slot in a Pipeline that a PipelineRun is expected to populate with a workspace binding.

Appears in:

PropertySpec

PropertySpec defines the struct for object keys

Appears in:

Field Description Default Validation
type ParamType

Provenance

Provenance contains metadata about resources used in the TaskRun/PipelineRun such as the source from where a remote build definition was fetched. This field aims to carry minimum amoumt of metadata in *Run status so that Tekton Chains can capture them in the provenance.

Appears in:

Field Description Default Validation
refSource RefSource RefSource identifies the source where a remote task/pipeline came from.
featureFlags FeatureFlags FeatureFlags identifies the feature flags that were used during the task/pipeline run

Ref

Ref can be used to refer to a specific instance of a StepAction.

Appears in:

Field Description Default Validation
name string Name of the referenced step
ResolverRef ResolverRef ResolverRef allows referencing a StepAction in a remote location
like a git repo.
Optional: {}

RefSource

RefSource contains the information that can uniquely identify where a remote built definition came from i.e. Git repositories, Tekton Bundles in OCI registry and hub.

Appears in:

Field Description Default Validation
uri string URI indicates the identity of the source of the build definition.
Example: “https://github.com/tektoncd/catalog"
digest object (keys:string, values:string) Digest is a collection of cryptographic digests for the contents of the artifact specified by URI.
Example: {“sha1”: “f99d13e554ffcb696dee719fa85b695cb5b0f428”}
entryPoint string EntryPoint identifies the entry point into the build. This is often a path to a
build definition file and/or a target label within that file.
Example: “task/git-clone/0.10/git-clone.yaml”

ResolverName

Underlying type: string

ResolverName is the name of a resolver from which a resource can be requested.

Appears in:

ResolverRef

ResolverRef can be used to refer to a Pipeline or Task in a remote location like a git repo. This feature is in beta and these fields are only available when the beta feature gate is enabled.

Appears in:

Field Description Default Validation
resolver ResolverName Resolver is the name of the resolver that should perform
resolution of the referenced Tekton resource, such as “git”.
Optional: {}
params Params Params contains the parameters used to identify the
referenced Tekton resource. Example entries might include
“repo” or “path” but the set of params ultimately depends on
the chosen resolver.
Optional: {}

ResultsType

Underlying type: string

ResultsType indicates the type of a result; Used to distinguish between a single string and an array of strings. Note that there is ResultType used to find out whether a RunResult is from a task result or not, which is different from this ResultsType.

Appears in:

Field Description
string
array
object

RetriesStatus

Underlying type: TaskRunStatus

Appears in:

Field Description Default Validation
Status Status
TaskRunStatusFields TaskRunStatusFields TaskRunStatusFields inlines the status fields.

Sidecar

Sidecar has nearly the same data structure as Step but does not have the ability to timeout.

Appears in:

Field Description Default Validation
name string Name of the Sidecar specified as a DNS_LABEL.
Each Sidecar in a Task must have a unique name (DNS_LABEL).
Cannot be updated.
image string Image reference name.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Sidecar’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Sidecar’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
workingDir string Sidecar’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
ports ContainerPort array List of ports to expose from the Sidecar. Exposing a port here gives
the system additional information about the network connections a
container uses, but is primarily informational. Not specifying a port here
DOES NOT prevent that port from being exposed. Any port which is
listening on the default “0.0.0.0” address inside a container will be
accessible from the network.
Cannot be updated.
Optional: {}
envFrom EnvFromSource array List of sources to populate environment variables in the Sidecar.
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
will be reported as an event when the container is starting. When a key exists in multiple
sources, the value associated with the last source will take precedence.
Values defined by an Env with a duplicate key will take precedence.
Cannot be updated.
Optional: {}
env EnvVar array List of environment variables to set in the Sidecar.
Cannot be updated.
Optional: {}
computeResources ResourceRequirements ComputeResources required by this Sidecar.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Sidecar’s filesystem.
Cannot be updated.
Optional: {}
volumeDevices VolumeDevice array volumeDevices is the list of block devices to be used by the Sidecar. Optional: {}
livenessProbe Probe Periodic probe of Sidecar liveness.
Container will be restarted if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Optional: {}
readinessProbe Probe Periodic probe of Sidecar service readiness.
Container will be removed from service endpoints if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Optional: {}
startupProbe Probe StartupProbe indicates that the Pod the Sidecar is running in has successfully initialized.
If specified, no other probes are executed until this completes successfully.
If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
This can be used to provide different probe parameters at the beginning of a Pod’s lifecycle,
when it might take a long time to load data or warm a cache, than during steady-state operation.
This cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Optional: {}
lifecycle Lifecycle Actions that the management system should take in response to Sidecar lifecycle events.
Cannot be updated.
Optional: {}
terminationMessagePath string Optional: Path at which the file to which the Sidecar’s termination message
will be written is mounted into the Sidecar’s filesystem.
Message written is intended to be brief final status, such as an assertion failure message.
Will be truncated by the node if greater than 4096 bytes. The total message length across
all containers will be limited to 12kb.
Defaults to /dev/termination-log.
Cannot be updated.
Optional: {}
terminationMessagePolicy TerminationMessagePolicy Indicate how the termination message should be populated. File will use the contents of
terminationMessagePath to populate the Sidecar status message on both success and failure.
FallbackToLogsOnError will use the last chunk of Sidecar log output if the termination
message file is empty and the Sidecar exited with an error.
The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
Defaults to File.
Cannot be updated.
Optional: {}
imagePullPolicy PullPolicy Image pull policy.
One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Sidecar should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Optional: {}
stdin boolean Whether this Sidecar should allocate a buffer for stdin in the container runtime. If this
is not set, reads from stdin in the Sidecar will always result in EOF.
Default is false.
Optional: {}
stdinOnce boolean Whether the container runtime should close the stdin channel after it has been opened by
a single attach. When stdin is true the stdin stream will remain open across multiple attach
sessions. If stdinOnce is set to true, stdin is opened on Sidecar start, is empty until the
first client attaches to stdin, and then remains open and accepts data until the client disconnects,
at which time stdin is closed and remains closed until the Sidecar is restarted. If this
flag is false, a container processes that reads from stdin will never receive an EOF.
Default is false
Optional: {}
tty boolean Whether this Sidecar should allocate a TTY for itself, also requires ‘stdin’ to be true.
Default is false.
Optional: {}
script string Script is the contents of an executable file to execute.
If Script is not empty, the Step cannot have an Command or Args.
Optional: {}
workspaces WorkspaceUsage array This is an alpha field. You must set the “enable-api-fields” feature flag to “alpha”
for this field to be supported.
Workspaces is a list of workspaces from the Task that this Sidecar wants
exclusive access to. Adding a workspace to this list means that any
other Step or Sidecar that does not also request this Workspace will
not have access to it.
Optional: {}
restartPolicy ContainerRestartPolicy RestartPolicy refers to kubernetes RestartPolicy. It can only be set for an
initContainer and must have it’s policy set to “Always”. It is currently
left optional to help support Kubernetes versions prior to 1.29 when this feature
was introduced.
Optional: {}

SidecarState

SidecarState reports the results of running a sidecar in a Task.

Appears in:

Field Description Default Validation
waiting ContainerStateWaiting Details about a waiting container Optional: {}
running ContainerStateRunning Details about a running container Optional: {}
terminated ContainerStateTerminated Details about a terminated container Optional: {}
name string
container string
imageID string

SkippedTask

SkippedTask is used to describe the Tasks that were skipped due to their When Expressions evaluating to False. This is a struct because we are looking into including more details about the When Expressions that caused this Task to be skipped.

Appears in:

Field Description Default Validation
name string Name is the Pipeline Task name
reason SkippingReason Reason is the cause of the PipelineTask being skipped.
whenExpressions WhenExpression array WhenExpressions is the list of checks guarding the execution of the PipelineTask Optional: {}

SkippingReason

Underlying type: string

SkippingReason explains why a PipelineTask was skipped.

Appears in:

Field Description
When Expressions evaluated to false WhenExpressionsSkip means the task was skipped due to at least one of its when expressions evaluating to false
Parent Tasks were skipped ParentTasksSkip means the task was skipped because its parent was skipped
PipelineRun was stopping StoppingSkip means the task was skipped because the pipeline run is stopping
PipelineRun was gracefully cancelled GracefullyCancelledSkip means the task was skipped because the pipeline run has been gracefully cancelled
PipelineRun was gracefully stopped GracefullyStoppedSkip means the task was skipped because the pipeline run has been gracefully stopped
Results were missing MissingResultsSkip means the task was skipped because it’s missing necessary results
PipelineRun timeout has been reached PipelineTimedOutSkip means the task was skipped because the PipelineRun has passed its overall timeout.
PipelineRun Tasks timeout has been reached TasksTimedOutSkip means the task was skipped because the PipelineRun has passed its Timeouts.Tasks.
PipelineRun Finally timeout has been reached FinallyTimedOutSkip means the task was skipped because the PipelineRun has passed its Timeouts.Finally.
Matrix Parameters have an empty array EmptyArrayInMatrixParams means the task was skipped because Matrix parameters contain empty array.
None None means the task was not skipped

Step

Step runs a subcomponent of a Task

Appears in:

Field Description Default Validation
name string Name of the Step specified as a DNS_LABEL.
Each Step in a Task must have a unique name.
displayName string DisplayName is a user-facing name of the step that may be
used to populate a UI.
Optional: {}
image string Docker image name.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
workingDir string Step’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
envFrom EnvFromSource array List of sources to populate environment variables in the Step.
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
will be reported as an event when the Step is starting. When a key exists in multiple
sources, the value associated with the last source will take precedence.
Values defined by an Env with a duplicate key will take precedence.
Cannot be updated.
Optional: {}
env EnvVar array List of environment variables to set in the Step.
Cannot be updated.
Optional: {}
computeResources ResourceRequirements ComputeResources required by this Step.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Step’s filesystem.
Cannot be updated.
Optional: {}
volumeDevices VolumeDevice array volumeDevices is the list of block devices to be used by the Step. Optional: {}
imagePullPolicy PullPolicy Image pull policy.
One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Step should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Optional: {}
script string Script is the contents of an executable file to execute.
If Script is not empty, the Step cannot have an Command and the Args will be passed to the Script.
Optional: {}
timeout Duration Timeout is the time after which the step times out. Defaults to never.
Refer to Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
workspaces WorkspaceUsage array This is an alpha field. You must set the “enable-api-fields” feature flag to “alpha”
for this field to be supported.
Workspaces is a list of workspaces from the Task that this Step wants
exclusive access to. Adding a workspace to this list means that any
other Step or Sidecar that does not also request this Workspace will
not have access to it.
Optional: {}
onError OnErrorType OnError defines the exiting behavior of a container on error
can be set to [ continue | stopAndFail ]
stdoutConfig StepOutputConfig Stores configuration for the stdout stream of the step. Optional: {}
stderrConfig StepOutputConfig Stores configuration for the stderr stream of the step. Optional: {}
ref Ref Contains the reference to an existing StepAction. Optional: {}
params Params Params declares parameters passed to this step action. Optional: {}
results StepResult array Results declares StepResults produced by the Step.
It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
It cannot be used when referencing StepActions using [v1.Step.Ref].
The Results declared by the StepActions will be stored here instead.
Optional: {}
when StepWhenExpressions When is a list of when expressions that need to be true for the task to run Optional: {}

StepOutputConfig

StepOutputConfig stores configuration for a step output stream.

Appears in:

Field Description Default Validation
path string Path to duplicate stdout stream to on container’s local filesystem. Optional: {}

StepResult

StepResult used to describe the Results of a Step.

Appears in:

Field Description Default Validation
name string Name the given name
type ResultsType The possible types are ‘string’, ‘array’, and ‘object’, with ‘string’ as the default. Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs results. Optional: {}
description string Description is a human-readable description of the result Optional: {}

StepState

StepState reports the results of running a step in a Task.

Appears in:

Field Description Default Validation
waiting ContainerStateWaiting Details about a waiting container Optional: {}
running ContainerStateRunning Details about a running container Optional: {}
terminated ContainerStateTerminated Details about a terminated container Optional: {}
name string
container string
imageID string
results TaskRunStepResult array
provenance Provenance
terminationReason string
inputs TaskRunStepArtifact array
outputs TaskRunStepArtifact array

StepTemplate

StepTemplate is a template for a Step

Appears in:

Field Description Default Validation
image string Image reference name.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Step’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Step’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
workingDir string Step’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
envFrom EnvFromSource array List of sources to populate environment variables in the Step.
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
will be reported as an event when the Step is starting. When a key exists in multiple
sources, the value associated with the last source will take precedence.
Values defined by an Env with a duplicate key will take precedence.
Cannot be updated.
Optional: {}
env EnvVar array List of environment variables to set in the Step.
Cannot be updated.
Optional: {}
computeResources ResourceRequirements ComputeResources required by this Step.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Step’s filesystem.
Cannot be updated.
Optional: {}
volumeDevices VolumeDevice array volumeDevices is the list of block devices to be used by the Step. Optional: {}
imagePullPolicy PullPolicy Image pull policy.
One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Step should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Optional: {}

Task

Task represents a collection of sequential steps that are run as part of a Pipeline using a set of inputs and producing a set of outputs. Tasks execute when TaskRuns are created that provide the input parameters and resources and output resources the Task requires.

Field Description Default Validation
apiVersion string tekton.dev/v1
kind string Task
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec TaskSpec Spec holds the desired state of the Task from the client Optional: {}

TaskBreakpoints

TaskBreakpoints defines the breakpoint config for a particular Task

Appears in:

Field Description Default Validation
onFailure string if enabled, pause TaskRun on failure of a step
failed step will not exit
Optional: {}
beforeSteps string array Optional: {}

TaskKind

Underlying type: string

TaskKind defines the type of Task used by the pipeline.

Appears in:

Field Description
Task NamespacedTaskKind indicates that the task type has a namespaced scope.

TaskRef

TaskRef can be used to refer to a specific instance of a task.

Appears in:

Field Description Default Validation
name string Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
kind TaskKind TaskKind indicates the Kind of the Task:
1. Namespaced Task when Kind is set to “Task”. If Kind is “”, it defaults to “Task”.
2. Custom Task when Kind is non-empty and APIVersion is non-empty
apiVersion string API version of the referent
Note: A Task with non-empty APIVersion and Kind is considered a Custom Task
Optional: {}
ResolverRef ResolverRef ResolverRef allows referencing a Task in a remote location
like a git repo. This field is only supported when the alpha
feature gate is enabled.
Optional: {}

TaskResult

TaskResult used to describe the results of a task

Appears in:

Field Description Default Validation
name string Name the given name
type ResultsType Type is the user-specified type of the result. The possible type
is currently “string” and will support “array” in following work.
Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs results. Optional: {}
description string Description is a human-readable description of the result Optional: {}
value ResultValue Value the expression used to retrieve the value of the result from an underlying Step. Schemaless: {}
Optional: {}

TaskRun

TaskRun represents a single execution of a Task. TaskRuns are how the steps specified in a Task are executed; they specify the parameters and resources used to run the steps in a Task.

Field Description Default Validation
apiVersion string tekton.dev/v1
kind string TaskRun
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec TaskRunSpec Optional: {}
status TaskRunStatus Optional: {}

TaskRunDebug

TaskRunDebug defines the breakpoint config for a particular TaskRun

Appears in:

Field Description Default Validation
breakpoints TaskBreakpoints Optional: {}

TaskRunResult

TaskRunResult used to describe the results of a task

Appears in:

Field Description Default Validation
name string Name the given name
type ResultsType Type is the user-specified type of the result. The possible type
is currently “string” and will support “array” in following work.
Optional: {}
value ResultValue Value the given value of the result Schemaless: {}

TaskRunSidecarSpec

TaskRunSidecarSpec is used to override the values of a Sidecar in the corresponding Task.

Appears in:

Field Description Default Validation
name string The name of the Sidecar to override.
computeResources ResourceRequirements The resource requirements to apply to the Sidecar.

TaskRunSpec

TaskRunSpec defines the desired state of TaskRun

Appears in:

Field Description Default Validation
debug TaskRunDebug Optional: {}
params Params Optional: {}
serviceAccountName string Optional: {}
taskRef TaskRef no more than one of the TaskRef and TaskSpec may be specified. Optional: {}
taskSpec TaskSpec Specifying TaskSpec can be disabled by setting
disable-inline-spec feature flag.
See Task.spec (API version: tekton.dev/v1)
Schemaless: {}
Optional: {}
status TaskRunSpecStatus Used for cancelling a TaskRun (and maybe more later on) Optional: {}
statusMessage TaskRunSpecStatusMessage Status message for cancellation. Optional: {}
retries integer Retries represents how many times this TaskRun should be retried in the event of task failure. Optional: {}
timeout Duration Time after which one retry attempt times out. Defaults to 1 hour.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
podTemplate PodTemplate PodTemplate holds pod specific configuration
workspaces WorkspaceBinding array Workspaces is a list of WorkspaceBindings from volumes to workspaces. Optional: {}
stepSpecs TaskRunStepSpec array Specs to apply to Steps in this TaskRun.
If a field is specified in both a Step and a StepSpec,
the value from the StepSpec will be used.
This field is only supported when the alpha feature gate is enabled.
Optional: {}
sidecarSpecs TaskRunSidecarSpec array Specs to apply to Sidecars in this TaskRun.
If a field is specified in both a Sidecar and a SidecarSpec,
the value from the SidecarSpec will be used.
This field is only supported when the alpha feature gate is enabled.
Optional: {}
computeResources ResourceRequirements Compute resources to use for this TaskRun
managedBy string ManagedBy indicates which controller is responsible for reconciling
this resource. If unset or set to “tekton.dev/pipeline”, the default
Tekton controller will manage this resource.
This field is immutable.
Optional: {}

TaskRunSpecStatus

Underlying type: string

TaskRunSpecStatus defines the TaskRun spec status the user can provide

Appears in:

TaskRunSpecStatusMessage

Underlying type: string

TaskRunSpecStatusMessage defines human readable status messages for the TaskRun.

Appears in:

Field Description
TaskRun cancelled as the PipelineRun it belongs to has been cancelled. TaskRunCancelledByPipelineMsg indicates that the PipelineRun of which this
TaskRun was a part of has been cancelled.
TaskRun cancelled as the PipelineRun it belongs to has timed out. TaskRunCancelledByPipelineTimeoutMsg indicates that the TaskRun was cancelled because the PipelineRun running it timed out.

TaskRunStatus

TaskRunStatus defines the observed state of TaskRun

Appears in:

Field Description Default Validation
observedGeneration integer ObservedGeneration is the ‘Generation’ of the Service that
was last processed by the controller.
Optional: {}
conditions Conditions Conditions the latest available observations of a resource’s current state. Optional: {}
annotations object (keys:string, values:string) Annotations is additional Status fields for the Resource to save some
additional State as well as convey more information to the user. This is
roughly akin to Annotations on any k8s resource, just the reconciler conveying
richer information outwards.
podName string PodName is the name of the pod responsible for executing this task’s steps.
startTime Time StartTime is the time the build is actually started.
completionTime Time CompletionTime is the time the build completed.
steps StepState array Steps describes the state of each build step container. Optional: {}
retriesStatus RetriesStatus RetriesStatus contains the history of TaskRunStatus in case of a retry in order to keep record of failures.
All TaskRunStatus stored in RetriesStatus will have no date within the RetriesStatus as is redundant.
Schemaless: {}
Optional: {}
results TaskRunResult array Results are the list of results written out by the task’s containers Optional: {}
artifacts Artifacts Artifacts are the list of artifacts written out by the task’s containers Optional: {}
sidecars SidecarState array The list has one entry per sidecar in the manifest. Each entry is
represents the imageid of the corresponding sidecar.
taskSpec TaskSpec TaskSpec contains the Spec from the dereferenced Task definition used to instantiate this TaskRun.
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

TaskRunStatusFields

TaskRunStatusFields holds the fields of TaskRun’s status. This is defined separately and inlined so that other types can readily consume these fields via duck typing.

Appears in:

Field Description Default Validation
podName string PodName is the name of the pod responsible for executing this task’s steps.
startTime Time StartTime is the time the build is actually started.
completionTime Time CompletionTime is the time the build completed.
steps StepState array Steps describes the state of each build step container. Optional: {}
retriesStatus RetriesStatus RetriesStatus contains the history of TaskRunStatus in case of a retry in order to keep record of failures.
All TaskRunStatus stored in RetriesStatus will have no date within the RetriesStatus as is redundant.
Schemaless: {}
Optional: {}
results TaskRunResult array Results are the list of results written out by the task’s containers Optional: {}
artifacts Artifacts Artifacts are the list of artifacts written out by the task’s containers Optional: {}
sidecars SidecarState array The list has one entry per sidecar in the manifest. Each entry is
represents the imageid of the corresponding sidecar.
taskSpec TaskSpec TaskSpec contains the Spec from the dereferenced Task definition used to instantiate this TaskRun.
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

TaskRunStepSpec

TaskRunStepSpec is used to override the values of a Step in the corresponding Task.

Appears in:

Field Description Default Validation
name string The name of the Step to override.
computeResources ResourceRequirements The resource requirements to apply to the Step.

TaskSpec

TaskSpec defines the desired state of Task.

Appears in:

Field Description Default Validation
params ParamSpecs Params is a list of input parameters required to run the task. Params
must be supplied as inputs in TaskRuns unless they declare a default
value.
Optional: {}
displayName string DisplayName is a user-facing name of the task that may be
used to populate a UI.
Optional: {}
description string Description is a user-facing description of the task that may be
used to populate a UI.
Optional: {}
steps Step array Steps are the steps of the build; each step is run sequentially with the
source mounted into /workspace.
volumes Volumes Volumes is a collection of volumes that are available to mount into the
steps of the build.
See Pod.spec.volumes (API version: v1)
Schemaless: {}
stepTemplate StepTemplate StepTemplate can be used as the basis for all step containers within the
Task, so that the steps inherit settings on the base container.
sidecars Sidecar array Sidecars are run alongside the Task’s step containers. They begin before
the steps start and end after the steps complete.
workspaces WorkspaceDeclaration array Workspaces are the volumes that this Task requires.
results TaskResult array Results are values that this Task can output

TimeoutFields

TimeoutFields allows granular specification of pipeline, task, and finally timeouts

Appears in:

Field Description Default Validation
pipeline Duration Pipeline sets the maximum allowed duration for execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value.
tasks Duration Tasks sets the maximum allowed duration of this pipeline’s tasks
finally Duration Finally sets the maximum allowed duration of this pipeline’s finally

Volumes

Underlying type: Volume

Appears in:

Field Description Default Validation
name string name of the volume.
Must be a DNS_LABEL and unique within the pod.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
hostPath HostPathVolumeSource hostPath represents a pre-existing file or directory on the host
machine that is directly exposed to the container. This is generally
used for system agents or other privileged things that are allowed
to see the host machine. Most containers will NOT need this.
More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Optional: {}
emptyDir EmptyDirVolumeSource emptyDir represents a temporary directory that shares a pod’s lifetime.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Optional: {}
gcePersistentDisk GCEPersistentDiskVolumeSource gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
Optional: {}
awsElasticBlockStore AWSElasticBlockStoreVolumeSource awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
Optional: {}
gitRepo GitRepoVolumeSource gitRepo represents a git repository at a particular revision.
Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod’s container.
Optional: {}
secret SecretVolumeSource secret represents a secret that should populate this volume.
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
Optional: {}
nfs NFSVolumeSource nfs represents an NFS mount on the host that shares a pod’s lifetime
More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Optional: {}
iscsi ISCSIVolumeSource iscsi represents an ISCSI Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
Optional: {}
glusterfs GlusterfsVolumeSource glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime.
Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
Optional: {}
persistentVolumeClaim PersistentVolumeClaimVolumeSource persistentVolumeClaimVolumeSource represents a reference to a
PersistentVolumeClaim in the same namespace.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Optional: {}
rbd RBDVolumeSource rbd represents a Rados Block Device mount on the host that shares a pod’s lifetime.
Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
Optional: {}
flexVolume FlexVolumeSource flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
Optional: {}
cinder CinderVolumeSource cinder represents a cinder volume attached and mounted on kubelets host machine.
Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
Optional: {}
cephfs CephFSVolumeSource cephFS represents a Ceph FS mount on the host that shares a pod’s lifetime.
Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
Optional: {}
flocker FlockerVolumeSource flocker represents a Flocker volume attached to a kubelet’s host machine. This depends on the Flocker control service being running.
Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
Optional: {}
downwardAPI DownwardAPIVolumeSource downwardAPI represents downward API about the pod that should populate this volume Optional: {}
fc FCVolumeSource fc represents a Fibre Channel resource that is attached to a kubelet’s host machine and then exposed to the pod. Optional: {}
azureFile AzureFileVolumeSource azureFile represents an Azure File Service mount on the host and bind mount to the pod.
Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
are redirected to the file.csi.azure.com CSI driver.
Optional: {}
configMap ConfigMapVolumeSource configMap represents a configMap that should populate this volume Optional: {}
vsphereVolume VsphereVirtualDiskVolumeSource vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
are redirected to the csi.vsphere.vmware.com CSI driver.
Optional: {}
quobyte QuobyteVolumeSource quobyte represents a Quobyte mount on the host that shares a pod’s lifetime.
Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
Optional: {}
azureDisk AzureDiskVolumeSource azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
are redirected to the disk.csi.azure.com CSI driver.
Optional: {}
photonPersistentDisk PhotonPersistentDiskVolumeSource photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
projected ProjectedVolumeSource projected items for all in one resources secrets, configmaps, and downward API
portworxVolume PortworxVolumeSource portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
is on.
Optional: {}
scaleIO ScaleIOVolumeSource scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
Optional: {}
storageos StorageOSVolumeSource storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
Optional: {}
csi CSIVolumeSource csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Optional: {}
ephemeral EphemeralVolumeSource ephemeral represents a volume that is handled by a cluster storage driver.
The volume’s lifecycle is tied to the pod that defines it - it will be created before the pod starts,
and deleted when the pod is removed.
Use this if:
a) the volume is only needed while the pod runs,
b) features of normal volumes like restoring from snapshot or capacity
tracking are needed,
c) the storage driver is specified through a storage class, and
d) the storage driver supports dynamic volume provisioning through
a PersistentVolumeClaim (see EphemeralVolumeSource for more
information on the connection between this volume type
and PersistentVolumeClaim).
Use PersistentVolumeClaim or one of the vendor-specific
APIs for volumes that persist for longer than the lifecycle
of an individual pod.
Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
be used that way - see the documentation of the driver for
more information.
A pod can use both types of ephemeral volumes and
persistent volumes at the same time.
Optional: {}
image ImageVolumeSource image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet’s host machine.
The volume is resolved at pod startup depending on which PullPolicy value is provided:
- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn’t present.
- IfNotPresent: the kubelet pulls if the reference isn’t already present on disk. Container creation will fail if the reference isn’t present and the pull fails.
The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
The OCI object gets mounted in a single directory (spec.containers[].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
The volume will be mounted read-only (ro) and non-executable files (noexec).
Sub path mounts for containers are not supported (spec.containers[
].volumeMounts.subpath) before 1.33.
The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
Optional: {}

WhenExpression

WhenExpression allows a PipelineTask to declare expressions to be evaluated before the Task is run to determine whether the Task should be executed or skipped

Appears in:

Field Description Default Validation
input string Input is the string for guard checking which can be a static input or an output from a parent Task
operator Operator Operator that represents an Input’s relationship to the values
values string array Values is an array of strings, which is compared against the input, for guard checking
It must be non-empty
cel string CEL is a string of Common Language Expression, which can be used to conditionally execute
the task based on the result of the expression evaluation
More info about CEL syntax: https://github.com/google/cel-spec/blob/master/doc/langdef.md
Optional: {}

WhenExpressions

Underlying type: WhenExpression

WhenExpressions are used to specify whether a Task should be executed or skipped All of them need to evaluate to True for a guarded Task to be executed.

Appears in:

Field Description Default Validation
input string Input is the string for guard checking which can be a static input or an output from a parent Task
operator Operator Operator that represents an Input’s relationship to the values
values string array Values is an array of strings, which is compared against the input, for guard checking
It must be non-empty
cel string CEL is a string of Common Language Expression, which can be used to conditionally execute
the task based on the result of the expression evaluation
More info about CEL syntax: https://github.com/google/cel-spec/blob/master/doc/langdef.md
Optional: {}

WorkspaceBinding

WorkspaceBinding maps a Task’s declared workspace to a Volume.

Appears in:

Field Description Default Validation
name string Name is the name of the workspace populated by the volume.
subPath string SubPath is optionally a directory on the volume which should be used
for this binding (i.e. the volume will be mounted at this sub directory).
Optional: {}
volumeClaimTemplate PersistentVolumeClaim VolumeClaimTemplate is a template for a claim that will be created in the same namespace.
The PipelineRun controller is responsible for creating a unique claim for each instance of PipelineRun.
See PersistentVolumeClaim (API version: v1)
Schemaless: {}
Optional: {}
persistentVolumeClaim PersistentVolumeClaimVolumeSource PersistentVolumeClaimVolumeSource represents a reference to a
PersistentVolumeClaim in the same namespace. Either this OR EmptyDir can be used.
Optional: {}
emptyDir EmptyDirVolumeSource EmptyDir represents a temporary directory that shares a Task’s lifetime.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Either this OR PersistentVolumeClaim can be used.
Optional: {}
configMap ConfigMapVolumeSource ConfigMap represents a configMap that should populate this workspace. Optional: {}
secret SecretVolumeSource Secret represents a secret that should populate this workspace. Optional: {}
projected ProjectedVolumeSource Projected represents a projected volume that should populate this workspace. Optional: {}
csi CSIVolumeSource CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Optional: {}

WorkspaceDeclaration

WorkspaceDeclaration is a declaration of a volume that a Task requires.

Appears in:

Field Description Default Validation
name string Name is the name by which you can bind the volume at runtime.
description string Description is an optional human readable description of this volume. Optional: {}
mountPath string MountPath overrides the directory that the volume will be made available at. Optional: {}
readOnly boolean ReadOnly dictates whether a mounted volume is writable. By default this
field is false and so mounted volumes are writable.
optional boolean Optional marks a Workspace as not being required in TaskRuns. By default
this field is false and so declared workspaces are required.

WorkspacePipelineTaskBinding

WorkspacePipelineTaskBinding describes how a workspace passed into the pipeline should be mapped to a task’s declared workspace.

Appears in:

Field Description Default Validation
name string Name is the name of the workspace as declared by the task
workspace string Workspace is the name of the workspace declared by the pipeline Optional: {}
subPath string SubPath is optionally a directory on the volume which should be used
for this binding (i.e. the volume will be mounted at this sub directory).
Optional: {}

WorkspaceUsage

WorkspaceUsage is used by a Step or Sidecar to declare that it wants isolated access to a Workspace defined in a Task.

Appears in:

Field Description Default Validation
name string Name is the name of the workspace this Step or Sidecar wants access to.
mountPath string MountPath is the path that the workspace should be mounted to inside the Step or Sidecar,
overriding any MountPath specified in the Task’s WorkspaceDeclaration.

tekton.dev/v1alpha1

Package v1alpha1 contains API Schema definitions for the run v1alpha1 API group

Resource Types

Authority

The Authority block defines the keys for validating signatures.

Appears in:

Field Description Default Validation
name string Name is the name for this authority.
key KeyRef Key contains the public key to validate the resource.

EmbeddedRunSpec

EmbeddedRunSpec allows custom task definitions to be embedded

Appears in:

Field Description Default Validation
metadata PipelineTaskMetadata Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec RawExtension Spec is a specification of a custom task Optional: {}

HashAlgorithm

Underlying type: string

HashAlgorithm defines the hash algorithm used for the public key

Appears in:

Field Description
sha224
sha256
sha384
sha512
``

KeyRef

KeyRef defines the reference to a public key

Appears in:

Field Description Default Validation
secretRef SecretReference SecretRef sets a reference to a secret with the key. Optional: {}
data string Data contains the inline public key. Optional: {}
kms string KMS contains the KMS url of the public key
Supported formats differ based on the KMS system used.
One example of a KMS url could be:
gcpkms://projects/[PROJECT]/locations/[LOCATION]>/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[KEY_VERSION]
For more examples please refer https://docs.sigstore.dev/cosign/kms_support.
Note that the KMS is not supported yet.
Optional: {}
hashAlgorithm HashAlgorithm HashAlgorithm always defaults to sha256 if the algorithm hasn’t been explicitly set Optional: {}

ModeType

Underlying type: string

ModeType indicates the type of a mode for VerificationPolicy

Appears in:

Field Description
warn
enforce

PipelineResource

PipelineResource describes a resource that is an input to or output from a Task.

Deprecated: Unused, preserved only for backwards compatibility

Field Description Default Validation
apiVersion string tekton.dev/v1alpha1
kind string PipelineResource
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec PipelineResourceSpec Spec holds the desired state of the PipelineResource from the client
status PipelineResourceStatus Status is used to communicate the observed state of the PipelineResource from
the controller, but was unused as there is no controller for PipelineResource.
Optional: {}

PipelineResourceSpec

PipelineResourceSpec defines an individual resources used in the pipeline.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
description string Description is a user-facing description of the resource that may be
used to populate a UI.
Optional: {}
type PipelineResourceType
params ResourceParam array
secrets SecretParam array Secrets to fetch to populate some of resource fields Optional: {}

PipelineResourceStatus

PipelineResourceStatus does not contain anything because PipelineResources on their own do not have a status

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

ResourceParam

ResourceParam declares a string value to use for the parameter called Name, and is used in the specific context of PipelineResources.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string
value string

ResourcePattern

ResourcePattern defines the pattern of the resource source

Appears in:

Field Description Default Validation
pattern string Pattern defines a resource pattern. Regex is created to filter resources based on Pattern
Example patterns:
GitHub resource: https://github.com/tektoncd/catalog.git, https://github.com/tektoncd/
Bundle resource: gcr.io/tekton-releases/catalog/upstream/git-clone, gcr.io/tekton-releases/catalog/upstream/

Hub resource: https://artifacthub.io/*,

Run

Run represents a single execution of a Custom Task.

Field Description Default Validation
apiVersion string tekton.dev/v1alpha1
kind string Run
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec RunSpec Optional: {}
status RunStatus Optional: {}

RunSpec

RunSpec defines the desired state of Run

Appears in:

Field Description Default Validation
ref TaskRef Optional: {}
spec EmbeddedRunSpec Spec is a specification of a custom task Optional: {}
params Params Optional: {}
status RunSpecStatus Used for cancelling a run (and maybe more later on) Optional: {}
statusMessage RunSpecStatusMessage Status message for cancellation. Optional: {}
retries integer Used for propagating retries count to custom tasks Optional: {}
serviceAccountName string Optional: {}
podTemplate PodTemplate PodTemplate holds pod specific configuration Optional: {}
timeout Duration Time after which the custom-task times out.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
workspaces WorkspaceBinding array Workspaces is a list of WorkspaceBindings from volumes to workspaces. Optional: {}

RunSpecStatus

Underlying type: string

RunSpecStatus defines the taskrun spec status the user can provide

Appears in:

Field Description
RunCancelled RunSpecStatusCancelled indicates that the user wants to cancel the run,
if not already cancelled or terminated

RunSpecStatusMessage

Underlying type: string

RunSpecStatusMessage defines human readable status messages for the TaskRun.

Appears in:

Field Description
Run cancelled as the PipelineRun it belongs to has been cancelled. RunCancelledByPipelineMsg indicates that the PipelineRun of which part this Run was
has been cancelled.
Run cancelled as the PipelineRun it belongs to has timed out. RunCancelledByPipelineTimeoutMsg indicates that the Run was cancelled because the PipelineRun running it timed out.

SecretParam

SecretParam indicates which secret can be used to populate a field of the resource

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
fieldName string
secretKey string
secretName string

StepAction

StepAction represents the actionable components of Step. The Step can only reference it from the cluster or using remote resolution.

Field Description Default Validation
apiVersion string tekton.dev/v1alpha1
kind string StepAction
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec StepActionSpec Spec holds the desired state of the Step from the client Optional: {}

StepActionSpec

StepActionSpec contains the actionable components of a step.

Appears in:

Field Description Default Validation
description string Description is a user-facing description of the stepaction that may be
used to populate a UI.
Optional: {}
image string Image reference name to run for this StepAction.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
env EnvVar array List of environment variables to set in the container.
Cannot be updated.
Optional: {}
script string Script is the contents of an executable file to execute.
If Script is not empty, the Step cannot have an Command and the Args will be passed to the Script.
Optional: {}
workingDir string Step’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
params ParamSpecs Params is a list of input parameters required to run the stepAction.
Params must be supplied as inputs in Steps unless they declare a defaultvalue.
Optional: {}
results StepResult array Results are values that this StepAction can output Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Step should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
The value set in StepAction will take precedence over the value from Task.
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Step’s filesystem.
Cannot be updated.
Optional: {}

VerificationPolicy

VerificationPolicy defines the rules to verify Tekton resources. VerificationPolicy can config the mapping from resources to a list of public keys, so when verifying the resources we can use the corresponding public keys.

Field Description Default Validation
apiVersion string tekton.dev/v1alpha1
kind string VerificationPolicy
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec VerificationPolicySpec Spec holds the desired state of the VerificationPolicy.

VerificationPolicySpec

VerificationPolicySpec defines the patterns and authorities.

Appears in:

Field Description Default Validation
resources ResourcePattern array Resources defines the patterns of resources sources that should be subject to this policy.
For example, we may want to apply this Policy from a certain GitHub repo.
Then the ResourcesPattern should be valid regex. E.g. If using gitresolver, and we want to config keys from a certain git repo.
ResourcesPattern can be https://github.com/tektoncd/catalog.git, we will use regex to filter out those resources.
authorities Authority array Authorities defines the rules for validating signatures.
mode ModeType Mode controls whether a failing policy will fail the taskrun/pipelinerun, or only log the warnings
enforce - fail the taskrun/pipelinerun if verification fails (default)
warn - don’t fail the taskrun/pipelinerun if verification fails but log warnings
Optional: {}

tekton.dev/v1beta1

Package v1beta1 contains API Schema definitions for the customrun v1beta1 API group

Resource Types

Algorithm

Underlying type: string

Algorithm Standard cryptographic hash algorithm

Appears in:

Args

Underlying type: string array

Appears in:

Artifact

Artifact represents an artifact within a system, potentially containing multiple values associated with it.

Appears in:

Field Description Default Validation
name string The artifact’s identifying category name
values ArtifactValue array A collection of values related to the artifact
buildOutput boolean Indicate if the artifact is a build output or a by-product

ArtifactValue

ArtifactValue represents a specific value or data element within an Artifact.

Appears in:

Field Description Default Validation
digest object (keys:Algorithm, values:string)
uri string

ChildStatusReference

ChildStatusReference is used to point to the statuses of individual TaskRuns and Runs within this PipelineRun.

Appears in:

Field Description Default Validation
name string Name is the name of the TaskRun or Run this is referencing.
displayName string DisplayName is a user-facing name of the pipelineTask that may be
used to populate a UI.
pipelineTaskName string PipelineTaskName is the name of the PipelineTask this is referencing.
whenExpressions WhenExpression array WhenExpressions is the list of checks guarding the execution of the PipelineTask Optional: {}

CloudEventCondition

Underlying type: string

CloudEventCondition is a string that represents the condition of the event.

Appears in:

Field Description
Unknown CloudEventConditionUnknown means that the condition for the event to be
triggered was not met yet, or we don’t know the state yet.
Sent CloudEventConditionSent means that the event was sent successfully
Failed CloudEventConditionFailed means that there was one or more attempts to
send the event, and none was successful so far.

CloudEventDelivery

CloudEventDelivery is the target of a cloud event along with the state of delivery.

Appears in:

Field Description Default Validation
target string Target points to an addressable
status CloudEventDeliveryState

CloudEventDeliveryState

CloudEventDeliveryState reports the state of a cloud event to be sent.

Appears in:

Field Description Default Validation
condition CloudEventCondition Current status
sentAt Time SentAt is the time at which the last attempt to send the event was made Optional: {}
message string Error is the text of error (if any)
retryCount integer RetryCount is the number of attempts of sending the cloud event

Combination

Underlying type: object

Combination is a map, mainly defined to hold a single combination from a Matrix with key as param.Name and value as param.Value

Appears in:

ConfigSource

ConfigSource contains the information that can uniquely identify where a remote built definition came from i.e. Git repositories, Tekton Bundles in OCI registry and hub.

Appears in:

Field Description Default Validation
uri string URI indicates the identity of the source of the build definition.
Example: “https://github.com/tektoncd/catalog"
digest object (keys:string, values:string) Digest is a collection of cryptographic digests for the contents of the artifact specified by URI.
Example: {“sha1”: “f99d13e554ffcb696dee719fa85b695cb5b0f428”}
entryPoint string EntryPoint identifies the entry point into the build. This is often a path to a
build definition file and/or a target label within that file.
Example: “task/git-clone/0.10/git-clone.yaml”

CustomRun

CustomRun represents a single execution of a Custom Task.

Field Description Default Validation
apiVersion string tekton.dev/v1beta1
kind string CustomRun
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec CustomRunSpec Optional: {}
status CustomRunStatus Optional: {}

CustomRunSpec

CustomRunSpec defines the desired state of CustomRun

Appears in:

Field Description Default Validation
customRef TaskRef Optional: {}
customSpec EmbeddedCustomRunSpec Spec is a specification of a custom task Optional: {}
params Params Optional: {}
status CustomRunSpecStatus Used for cancelling a customrun (and maybe more later on) Optional: {}
statusMessage CustomRunSpecStatusMessage Status message for cancellation. Optional: {}
retries integer Used for propagating retries count to custom tasks Optional: {}
serviceAccountName string Optional: {}
timeout Duration Time after which the custom-task times out.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
workspaces WorkspaceBinding array Workspaces is a list of WorkspaceBindings from volumes to workspaces. Optional: {}

CustomRunSpecStatus

Underlying type: string

CustomRunSpecStatus defines the taskrun spec status the user can provide

Appears in:

Field Description
RunCancelled CustomRunSpecStatusCancelled indicates that the user wants to cancel the run,
if not already cancelled or terminated

CustomRunSpecStatusMessage

Underlying type: string

CustomRunSpecStatusMessage defines human readable status messages for the TaskRun.

Appears in:

Field Description
CustomRun cancelled as the PipelineRun it belongs to has been cancelled. CustomRunCancelledByPipelineMsg indicates that the PipelineRun of which part this CustomRun was
has been cancelled.
CustomRun cancelled as the PipelineRun it belongs to has timed out. CustomRunCancelledByPipelineTimeoutMsg indicates that the Run was cancelled because the PipelineRun running it timed out.

EmbeddedCustomRunSpec

EmbeddedCustomRunSpec allows custom task definitions to be embedded

Appears in:

Field Description Default Validation
metadata PipelineTaskMetadata Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec RawExtension Spec is a specification of a custom task Optional: {}

EmbeddedTask

EmbeddedTask is used to define a Task inline within a Pipeline’s PipelineTasks.

Appears in:

Field Description Default Validation
spec RawExtension Spec is a specification of a custom task Optional: {}
metadata PipelineTaskMetadata Refer to Kubernetes API documentation for fields of metadata. Optional: {}
resources TaskResources Resources is a list input and output resource to run the task
Resources are represented in TaskRuns as bindings to instances of
PipelineResources.
Deprecated: Unused, preserved only for backwards compatibility
Optional: {}
params ParamSpecs Params is a list of input parameters required to run the task. Params
must be supplied as inputs in TaskRuns unless they declare a default
value.
Optional: {}
displayName string DisplayName is a user-facing name of the task that may be
used to populate a UI.
Optional: {}
description string Description is a user-facing description of the task that may be
used to populate a UI.
Optional: {}
steps Step array Steps are the steps of the build; each step is run sequentially with the
source mounted into /workspace.
volumes Volumes Volumes is a collection of volumes that are available to mount into the
steps of the build.
See Pod.spec.volumes (API version: v1)
Schemaless: {}
stepTemplate StepTemplate StepTemplate can be used as the basis for all step containers within the
Task, so that the steps inherit settings on the base container.
sidecars Sidecar array Sidecars are run alongside the Task’s step containers. They begin before
the steps start and end after the steps complete.
workspaces WorkspaceDeclaration array Workspaces are the volumes that this Task requires.
results TaskResult array Results are values that this Task can output

Matrix

Matrix is used to fan out Tasks in a Pipeline

Appears in:

Field Description Default Validation
params Params Params is a list of parameters used to fan out the pipelineTask
Params takes only Parameters of type "array"
Each array element is supplied to the PipelineTask by substituting params of type "string" in the underlying Task.
The names of the params in the Matrix must match the names of the params in the underlying Task that they will be substituting.

OnErrorType

Underlying type: string

OnErrorType defines a list of supported exiting behavior of a container on error

Appears in:

Field Description
stopAndFail StopAndFail indicates exit the taskRun if the container exits with non-zero exit code
continue Continue indicates continue executing the rest of the steps irrespective of the container exit code

Param

Param declares an ParamValues to use for the parameter called name.

Appears in:

Field Description Default Validation
name string
value ParamValue Schemaless: {}

ParamSpec

ParamSpec defines arbitrary parameters needed beyond typed inputs (such as resources). Parameter values are provided by users as inputs on a TaskRun or PipelineRun.

Appears in:

Field Description Default Validation
name string Name declares the name by which a parameter is referenced.
type ParamType Type is the user-specified type of the parameter. The possible types
are currently “string”, “array” and “object”, and “string” is the default.
Optional: {}
description string Description is a user-facing description of the parameter that may be
used to populate a UI.
Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs parameter. Optional: {}
default ParamValue Default is the value a parameter takes if no input value is supplied. If
default is set, a Task may be executed without a supplied value for the
parameter.
Schemaless: {}
Optional: {}
enum string array Enum declares a set of allowed param input values for tasks/pipelines that can be validated.
If Enum is not set, no input validation is performed for the param.
Optional: {}

ParamSpecs

Underlying type: ParamSpec

ParamSpecs is a list of ParamSpec

Appears in:

Field Description Default Validation
name string Name declares the name by which a parameter is referenced.
type ParamType Type is the user-specified type of the parameter. The possible types
are currently “string”, “array” and “object”, and “string” is the default.
Optional: {}
description string Description is a user-facing description of the parameter that may be
used to populate a UI.
Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs parameter. Optional: {}
default ParamValue Default is the value a parameter takes if no input value is supplied. If
default is set, a Task may be executed without a supplied value for the
parameter.
Schemaless: {}
Optional: {}
enum string array Enum declares a set of allowed param input values for tasks/pipelines that can be validated.
If Enum is not set, no input validation is performed for the param.
Optional: {}

ParamType

Underlying type: string

ParamType indicates the type of an input parameter; Used to distinguish between a single string and an array of strings.

Appears in:

Field Description
string
array
object

ParamValue

ParamValue is a type that can hold a single string or string array. Used in JSON unmarshalling so that a single JSON field can accept either an individual string or an array of strings.

Appears in:

Field Description Default Validation
Type ParamType
StringVal string
ArrayVal string array
ObjectVal object (keys:string, values:string)

Params

Underlying type: Param

Params is a list of Param

Appears in:

Field Description Default Validation
name string
value ParamValue Schemaless: {}

Pipeline

Pipeline describes a list of Tasks to execute. It expresses how outputs of tasks feed into inputs of subsequent tasks.

Deprecated: Please use v1.Pipeline instead.

Field Description Default Validation
apiVersion string tekton.dev/v1beta1
kind string Pipeline
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec PipelineSpec Spec holds the desired state of the Pipeline from the client Optional: {}

PipelineDeclaredResource

PipelineDeclaredResource is used by a Pipeline to declare the types of the PipelineResources that it will required to run and names which can be used to refer to these PipelineResources in PipelineTaskResourceBindings.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string Name is the name that will be used by the Pipeline to refer to this resource.
It does not directly correspond to the name of any PipelineResources Task
inputs or outputs, and it does not correspond to the actual names of the
PipelineResources that will be bound in the PipelineRun.
type PipelineResourceType Type is the type of the PipelineResource.
optional boolean Optional declares the resource as optional.
optional: true - the resource is considered optional
optional: false - the resource is considered required (default/equivalent of not specifying it)

PipelineRef

PipelineRef can be used to refer to a specific instance of a Pipeline.

Appears in:

Field Description Default Validation
name string Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
apiVersion string API version of the referent Optional: {}
bundle string Bundle url reference to a Tekton Bundle.
Deprecated: Please use ResolverRef with the bundles resolver instead.
The field is staying there for go client backward compatibility, but is not used/allowed anymore.
Optional: {}
ResolverRef ResolverRef ResolverRef allows referencing a Pipeline in a remote location
like a git repo. This field is only supported when the alpha
feature gate is enabled.
Optional: {}

PipelineResourceBinding

PipelineResourceBinding connects a reference to an instance of a PipelineResource with a PipelineResource dependency that the Pipeline has declared

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string Name is the name of the PipelineResource in the Pipeline’s declaration
resourceRef PipelineResourceRef ResourceRef is a reference to the instance of the actual PipelineResource
that should be used
Optional: {}
resourceSpec PipelineResourceSpec ResourceSpec is specification of a resource that should be created and
consumed by the task
Optional: {}

PipelineResourceRef

PipelineResourceRef can be used to refer to a specific instance of a Resource

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
apiVersion string API version of the referent Optional: {}

PipelineResult

Underlying type: struct{Name string “json:"name"”; Type ResultsType “json:"type,omitempty"”; Description string “json:"description"”; Value ResultValue “json:"value"”}

PipelineResult used to describe the results of a pipeline

Appears in:

PipelineRun

PipelineRun represents a single execution of a Pipeline. PipelineRuns are how the graph of Tasks declared in a Pipeline are executed; they specify inputs to Pipelines such as parameter values and capture operational aspects of the Tasks execution such as service account and tolerations. Creating a PipelineRun creates TaskRuns for Tasks in the referenced Pipeline.

Deprecated: Please use v1.PipelineRun instead.

Field Description Default Validation
apiVersion string tekton.dev/v1beta1
kind string PipelineRun
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec PipelineRunSpec Optional: {}
status PipelineRunStatus Optional: {}

PipelineRunResult

PipelineRunResult used to describe the results of a pipeline

Appears in:

Field Description Default Validation
name string Name is the result’s name as declared by the Pipeline
value ResultValue Value is the result returned from the execution of this PipelineRun Schemaless: {}

PipelineRunRunStatus

PipelineRunRunStatus contains the name of the PipelineTask for this CustomRun or Run and the CustomRun or Run’s Status

Appears in:

Field Description Default Validation
pipelineTaskName string PipelineTaskName is the name of the PipelineTask.
status CustomRunStatus Status is the CustomRunStatus for the corresponding CustomRun or Run Optional: {}
whenExpressions WhenExpression array WhenExpressions is the list of checks guarding the execution of the PipelineTask Optional: {}

PipelineRunSpec

PipelineRunSpec defines the desired state of PipelineRun

Appears in:

Field Description Default Validation
pipelineRef PipelineRef Optional: {}
pipelineSpec PipelineSpec Specifying PipelineSpec can be disabled by setting
disable-inline-spec feature flag.
See Pipeline.spec (API version: tekton.dev/v1beta1)
Schemaless: {}
Optional: {}
resources PipelineResourceBinding array Resources is a list of bindings specifying which actual instances of
PipelineResources to use for the resources the Pipeline has declared
it needs.
Deprecated: Unused, preserved only for backwards compatibility
params Params Params is a list of parameter names and values.
serviceAccountName string Optional: {}
status PipelineRunSpecStatus Used for cancelling a pipelinerun (and maybe more later on) Optional: {}
timeouts TimeoutFields Time after which the Pipeline times out.
Currently three keys are accepted in the map
pipeline, tasks and finally
with Timeouts.pipeline >= Timeouts.tasks + Timeouts.finally
Optional: {}
timeout Duration Timeout is the Time after which the Pipeline times out.
Defaults to never.
Refer to Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Deprecated: use pipelineRunSpec.Timeouts.Pipeline instead
Optional: {}
podTemplate PodTemplate PodTemplate holds pod specific configuration
workspaces WorkspaceBinding array Workspaces holds a set of workspace bindings that must match names
with those declared in the pipeline.
Optional: {}
taskRunSpecs PipelineTaskRunSpec array TaskRunSpecs holds a set of runtime specs Optional: {}
managedBy string ManagedBy indicates which controller is responsible for reconciling
this resource. If unset or set to “tekton.dev/pipeline”, the default
Tekton controller will manage this resource.
This field is immutable.
Optional: {}

PipelineRunSpecStatus

Underlying type: string

PipelineRunSpecStatus defines the pipelinerun spec status the user can provide

Appears in:

PipelineRunStatus

PipelineRunStatus defines the observed state of PipelineRun

Appears in:

Field Description Default Validation
observedGeneration integer ObservedGeneration is the ‘Generation’ of the Service that
was last processed by the controller.
Optional: {}
conditions Conditions Conditions the latest available observations of a resource’s current state. Optional: {}
annotations object (keys:string, values:string) Annotations is additional Status fields for the Resource to save some
additional State as well as convey more information to the user. This is
roughly akin to Annotations on any k8s resource, just the reconciler conveying
richer information outwards.
startTime Time StartTime is the time the PipelineRun is actually started.
completionTime Time CompletionTime is the time the PipelineRun completed.
taskRuns object (keys:string, values:PipelineRunTaskRunStatus) TaskRuns is a map of PipelineRunTaskRunStatus with the taskRun name as the key.
Deprecated: use ChildReferences instead. As of v0.45.0, this field is no
longer populated and is only included for backwards compatibility with
older server versions.
Optional: {}
runs object (keys:string, values:PipelineRunRunStatus) Runs is a map of PipelineRunRunStatus with the run name as the key
Deprecated: use ChildReferences instead. As of v0.45.0, this field is no
longer populated and is only included for backwards compatibility with
older server versions.
Optional: {}
pipelineResults PipelineRunResult array PipelineResults are the list of results written out by the pipeline task’s containers Optional: {}
pipelineSpec PipelineSpec PipelineSpec contains the exact spec used to instantiate the run.
See Pipeline.spec (API version: tekton.dev/v1beta1)
Schemaless: {}
skippedTasks SkippedTask array list of tasks that were skipped due to when expressions evaluating to false Optional: {}
childReferences ChildStatusReference array list of TaskRun and Run names, PipelineTask names, and API versions/kinds for children of this PipelineRun. Optional: {}
finallyStartTime Time FinallyStartTime is when all non-finally tasks have been completed and only finally tasks are being executed. Optional: {}
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

PipelineRunStatusFields

PipelineRunStatusFields holds the fields of PipelineRunStatus’ status. This is defined separately and inlined so that other types can readily consume these fields via duck typing.

Appears in:

Field Description Default Validation
startTime Time StartTime is the time the PipelineRun is actually started.
completionTime Time CompletionTime is the time the PipelineRun completed.
taskRuns object (keys:string, values:PipelineRunTaskRunStatus) TaskRuns is a map of PipelineRunTaskRunStatus with the taskRun name as the key.
Deprecated: use ChildReferences instead. As of v0.45.0, this field is no
longer populated and is only included for backwards compatibility with
older server versions.
Optional: {}
runs object (keys:string, values:PipelineRunRunStatus) Runs is a map of PipelineRunRunStatus with the run name as the key
Deprecated: use ChildReferences instead. As of v0.45.0, this field is no
longer populated and is only included for backwards compatibility with
older server versions.
Optional: {}
pipelineResults PipelineRunResult array PipelineResults are the list of results written out by the pipeline task’s containers Optional: {}
pipelineSpec PipelineSpec PipelineSpec contains the exact spec used to instantiate the run.
See Pipeline.spec (API version: tekton.dev/v1beta1)
Schemaless: {}
skippedTasks SkippedTask array list of tasks that were skipped due to when expressions evaluating to false Optional: {}
childReferences ChildStatusReference array list of TaskRun and Run names, PipelineTask names, and API versions/kinds for children of this PipelineRun. Optional: {}
finallyStartTime Time FinallyStartTime is when all non-finally tasks have been completed and only finally tasks are being executed. Optional: {}
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

PipelineRunTaskRunStatus

PipelineRunTaskRunStatus contains the name of the PipelineTask for this TaskRun and the TaskRun’s Status

Appears in:

Field Description Default Validation
pipelineTaskName string PipelineTaskName is the name of the PipelineTask.
status TaskRunStatus Status is the TaskRunStatus for the corresponding TaskRun Optional: {}
whenExpressions WhenExpression array WhenExpressions is the list of checks guarding the execution of the PipelineTask Optional: {}

PipelineSpec

PipelineSpec defines the desired state of Pipeline.

Appears in:

Field Description Default Validation
displayName string DisplayName is a user-facing name of the pipeline that may be
used to populate a UI.
Optional: {}
description string Description is a user-facing description of the pipeline that may be
used to populate a UI.
Optional: {}
resources PipelineDeclaredResource array Deprecated: Unused, preserved only for backwards compatibility
tasks PipelineTask array Tasks declares the graph of Tasks that execute when this Pipeline is run.
params ParamSpecs Params declares a list of input parameters that must be supplied when
this Pipeline is run.
workspaces PipelineWorkspaceDeclaration array Workspaces declares a set of named workspaces that are expected to be
provided by a PipelineRun.
Optional: {}
results PipelineResult array Results are values that this pipeline can output once run Optional: {}
finally PipelineTask array Finally declares the list of Tasks that execute just before leaving the Pipeline
i.e. either after all Tasks are finished executing successfully
or after a failure which would result in ending the Pipeline

PipelineTask

PipelineTask defines a task in a Pipeline, passing inputs from both Params and from the output of previous tasks.

Appears in:

Field Description Default Validation
name string Name is the name of this task within the context of a Pipeline. Name is
used as a coordinate with the from and runAfter fields to establish
the execution order of tasks relative to one another.
displayName string DisplayName is the display name of this task within the context of a Pipeline.
This display name may be used to populate a UI.
Optional: {}
description string Description is the description of this task within the context of a Pipeline.
This description may be used to populate a UI.
Optional: {}
taskRef TaskRef TaskRef is a reference to a task definition. Optional: {}
taskSpec EmbeddedTask TaskSpec is a specification of a task
Specifying TaskSpec can be disabled by setting
disable-inline-spec feature flag.
See Task.spec (API version: tekton.dev/v1beta1)
Schemaless: {}
Optional: {}
when WhenExpressions WhenExpressions is a list of when expressions that need to be true for the task to run Optional: {}
retries integer Retries represents how many times this task should be retried in case of task failure: ConditionSucceeded set to False Optional: {}
runAfter string array RunAfter is the list of PipelineTask names that should be executed before
this Task executes. (Used to force a specific ordering in graph execution.)
Optional: {}
resources PipelineTaskResources Deprecated: Unused, preserved only for backwards compatibility Optional: {}
params Params Parameters declares parameters passed to this task. Optional: {}
matrix Matrix Matrix declares parameters used to fan out this task. Optional: {}
workspaces WorkspacePipelineTaskBinding array Workspaces maps workspaces from the pipeline spec to the workspaces
declared in the Task.
Optional: {}
timeout Duration Duration after which the TaskRun times out. Defaults to 1 hour.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
pipelineRef PipelineRef PipelineRef is a reference to a pipeline definition.
This is an alpha field. You must set the “enable-api-fields” feature flag
to “alpha” for this field to be supported. When enabled, the referenced
Pipeline is executed as a child PipelineRun owned by the parent PipelineRun.
Optional: {}
pipelineSpec PipelineSpec PipelineSpec is a specification of a pipeline.
This is an alpha field. You must set the “enable-api-fields” feature flag
to “alpha” for this field to be supported. When enabled, the embedded
Pipeline is executed as a child PipelineRun owned by the parent PipelineRun.
Specifying PipelineSpec can be disabled by setting
disable-inline-spec feature flag.
See Pipeline.spec (API version: tekton.dev/v1beta1)
Schemaless: {}
Optional: {}
onError PipelineTaskOnErrorType OnError defines the exiting behavior of a PipelineRun on error
can be set to [ continue | stopAndFail ]
Optional: {}

PipelineTaskInputResource

PipelineTaskInputResource maps the name of a declared PipelineResource input dependency in a Task to the resource in the Pipeline’s DeclaredPipelineResources that should be used. This input may come from a previous task.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string Name is the name of the PipelineResource as declared by the Task.
resource string Resource is the name of the DeclaredPipelineResource to use.
from string array From is the list of PipelineTask names that the resource has to come from.
(Implies an ordering in the execution graph.)
Optional: {}

PipelineTaskMetadata

PipelineTaskMetadata contains the labels or annotations for an EmbeddedTask

Appears in:

Field Description Default Validation
labels object (keys:string, values:string) Optional: {}
annotations object (keys:string, values:string) Optional: {}

PipelineTaskOnErrorType

Underlying type: string

PipelineTaskOnErrorType defines a list of supported failure handling behaviors of a PipelineTask on error

Appears in:

Field Description
stopAndFail PipelineTaskStopAndFail indicates to stop and fail the PipelineRun if the PipelineTask fails
continue PipelineTaskContinue indicates to continue executing the rest of the DAG when the PipelineTask fails

PipelineTaskOutputResource

PipelineTaskOutputResource maps the name of a declared PipelineResource output dependency in a Task to the resource in the Pipeline’s DeclaredPipelineResources that should be used.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string Name is the name of the PipelineResource as declared by the Task.
resource string Resource is the name of the DeclaredPipelineResource to use.

PipelineTaskResources

PipelineTaskResources allows a Pipeline to declare how its DeclaredPipelineResources should be provided to a Task as its inputs and outputs.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
inputs PipelineTaskInputResource array Inputs holds the mapping from the PipelineResources declared in
DeclaredPipelineResources to the input PipelineResources required by the Task.
outputs PipelineTaskOutputResource array Outputs holds the mapping from the PipelineResources declared in
DeclaredPipelineResources to the input PipelineResources required by the Task.

PipelineTaskRunSpec

PipelineTaskRunSpec can be used to configure specific specs for a concrete Task

Appears in:

Field Description Default Validation
pipelineTaskName string
taskServiceAccountName string
taskPodTemplate PodTemplate
stepOverrides TaskRunStepOverride array
sidecarOverrides TaskRunSidecarOverride array
metadata PipelineTaskMetadata Refer to Kubernetes API documentation for fields of metadata. Optional: {}
computeResources ResourceRequirements Compute resources to use for this TaskRun
timeout Duration Duration after which the TaskRun times out.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}

PipelineWorkspaceDeclaration

Underlying type: struct{Name string “json:"name"”; Description string “json:"description,omitempty"”; Optional bool “json:"optional,omitempty"”}

PipelineWorkspaceDeclaration creates a named slot in a Pipeline that a PipelineRun is expected to populate with a workspace binding.

Appears in:

PropertySpec

PropertySpec defines the struct for object keys

Appears in:

Field Description Default Validation
type ParamType

Provenance

Provenance contains metadata about resources used in the TaskRun/PipelineRun such as the source from where a remote build definition was fetched. This field aims to carry minimum amoumt of metadata in *Run status so that Tekton Chains can capture them in the provenance.

Appears in:

Field Description Default Validation
configSource ConfigSource Deprecated: Use RefSource instead
refSource RefSource RefSource identifies the source where a remote task/pipeline came from.
featureFlags FeatureFlags FeatureFlags identifies the feature flags that were used during the task/pipeline run

Ref

Ref can be used to refer to a specific instance of a StepAction.

Appears in:

Field Description Default Validation
name string Name of the referenced step
ResolverRef ResolverRef ResolverRef allows referencing a StepAction in a remote location
like a git repo.
Optional: {}

RefSource

RefSource contains the information that can uniquely identify where a remote built definition came from i.e. Git repositories, Tekton Bundles in OCI registry and hub.

Appears in:

Field Description Default Validation
uri string URI indicates the identity of the source of the build definition.
Example: “https://github.com/tektoncd/catalog"
digest object (keys:string, values:string) Digest is a collection of cryptographic digests for the contents of the artifact specified by URI.
Example: {“sha1”: “f99d13e554ffcb696dee719fa85b695cb5b0f428”}
entryPoint string EntryPoint identifies the entry point into the build. This is often a path to a
build definition file and/or a target label within that file.
Example: “task/git-clone/0.10/git-clone.yaml”

ResolverName

Underlying type: string

ResolverName is the name of a resolver from which a resource can be requested.

Appears in:

ResolverRef

ResolverRef can be used to refer to a Pipeline or Task in a remote location like a git repo.

Appears in:

Field Description Default Validation
resolver ResolverName Resolver is the name of the resolver that should perform
resolution of the referenced Tekton resource, such as “git”.
Optional: {}
params Params Params contains the parameters used to identify the
referenced Tekton resource. Example entries might include
“repo” or “path” but the set of params ultimately depends on
the chosen resolver.
Optional: {}

ResultsType

Underlying type: string

ResultsType indicates the type of a result; Used to distinguish between a single string and an array of strings. Note that there is ResultType used to find out whether a RunResult is from a task result or not, which is different from this ResultsType.

Appears in:

Field Description
string
array
object

RetriesStatus

Underlying type: TaskRunStatus

Appears in:

Field Description Default Validation
Status Status
TaskRunStatusFields TaskRunStatusFields TaskRunStatusFields inlines the status fields.

Sidecar

Sidecar has nearly the same data structure as Step but does not have the ability to timeout.

Appears in:

Field Description Default Validation
name string Name of the Sidecar specified as a DNS_LABEL.
Each Sidecar in a Task must have a unique name (DNS_LABEL).
Cannot be updated.
image string Image name to be used by the Sidecar.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Sidecar’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
workingDir string Sidecar’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
ports ContainerPort array List of ports to expose from the Sidecar. Exposing a port here gives
the system additional information about the network connections a
container uses, but is primarily informational. Not specifying a port here
DOES NOT prevent that port from being exposed. Any port which is
listening on the default “0.0.0.0” address inside a container will be
accessible from the network.
Cannot be updated.
Optional: {}
envFrom EnvFromSource array List of sources to populate environment variables in the Sidecar.
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
will be reported as an event when the Sidecar is starting. When a key exists in multiple
sources, the value associated with the last source will take precedence.
Values defined by an Env with a duplicate key will take precedence.
Cannot be updated.
Optional: {}
env EnvVar array List of environment variables to set in the Sidecar.
Cannot be updated.
Optional: {}
resources ResourceRequirements Compute Resources required by this Sidecar.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Sidecar’s filesystem.
Cannot be updated.
Optional: {}
volumeDevices VolumeDevice array volumeDevices is the list of block devices to be used by the Sidecar. Optional: {}
livenessProbe Probe Periodic probe of Sidecar liveness.
Container will be restarted if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Optional: {}
readinessProbe Probe Periodic probe of Sidecar service readiness.
Container will be removed from service endpoints if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Optional: {}
startupProbe Probe StartupProbe indicates that the Pod the Sidecar is running in has successfully initialized.
If specified, no other probes are executed until this completes successfully.
If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
This can be used to provide different probe parameters at the beginning of a Pod’s lifecycle,
when it might take a long time to load data or warm a cache, than during steady-state operation.
This cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Optional: {}
lifecycle Lifecycle Actions that the management system should take in response to Sidecar lifecycle events.
Cannot be updated.
Optional: {}
terminationMessagePath string Optional: Path at which the file to which the Sidecar’s termination message
will be written is mounted into the Sidecar’s filesystem.
Message written is intended to be brief final status, such as an assertion failure message.
Will be truncated by the node if greater than 4096 bytes. The total message length across
all containers will be limited to 12kb.
Defaults to /dev/termination-log.
Cannot be updated.
Optional: {}
terminationMessagePolicy TerminationMessagePolicy Indicate how the termination message should be populated. File will use the contents of
terminationMessagePath to populate the Sidecar status message on both success and failure.
FallbackToLogsOnError will use the last chunk of Sidecar log output if the termination
message file is empty and the Sidecar exited with an error.
The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
Defaults to File.
Cannot be updated.
Optional: {}
imagePullPolicy PullPolicy Image pull policy.
One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Sidecar should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Optional: {}
stdin boolean Whether this Sidecar should allocate a buffer for stdin in the container runtime. If this
is not set, reads from stdin in the Sidecar will always result in EOF.
Default is false.
Optional: {}
stdinOnce boolean Whether the container runtime should close the stdin channel after it has been opened by
a single attach. When stdin is true the stdin stream will remain open across multiple attach
sessions. If stdinOnce is set to true, stdin is opened on Sidecar start, is empty until the
first client attaches to stdin, and then remains open and accepts data until the client disconnects,
at which time stdin is closed and remains closed until the Sidecar is restarted. If this
flag is false, a container processes that reads from stdin will never receive an EOF.
Default is false
Optional: {}
tty boolean Whether this Sidecar should allocate a TTY for itself, also requires ‘stdin’ to be true.
Default is false.
Optional: {}
script string Script is the contents of an executable file to execute.
If Script is not empty, the Step cannot have an Command or Args.
Optional: {}
workspaces WorkspaceUsage array This is an alpha field. You must set the “enable-api-fields” feature flag to “alpha”
for this field to be supported.
Workspaces is a list of workspaces from the Task that this Sidecar wants
exclusive access to. Adding a workspace to this list means that any
other Step or Sidecar that does not also request this Workspace will
not have access to it.
Optional: {}
restartPolicy ContainerRestartPolicy RestartPolicy refers to kubernetes RestartPolicy. It can only be set for an
initContainer and must have it’s policy set to “Always”. It is currently
left optional to help support Kubernetes versions prior to 1.29 when this feature
was introduced.
Optional: {}

SidecarState

SidecarState reports the results of running a sidecar in a Task.

Appears in:

Field Description Default Validation
waiting ContainerStateWaiting Details about a waiting container Optional: {}
running ContainerStateRunning Details about a running container Optional: {}
terminated ContainerStateTerminated Details about a terminated container Optional: {}
name string
container string
imageID string

SkippedTask

SkippedTask is used to describe the Tasks that were skipped due to their When Expressions evaluating to False. This is a struct because we are looking into including more details about the When Expressions that caused this Task to be skipped.

Appears in:

Field Description Default Validation
name string Name is the Pipeline Task name
reason SkippingReason Reason is the cause of the PipelineTask being skipped.
whenExpressions WhenExpression array WhenExpressions is the list of checks guarding the execution of the PipelineTask Optional: {}

SkippingReason

Underlying type: string

SkippingReason explains why a PipelineTask was skipped.

Appears in:

Field Description
When Expressions evaluated to false WhenExpressionsSkip means the task was skipped due to at least one of its when expressions evaluating to false
Parent Tasks were skipped ParentTasksSkip means the task was skipped because its parent was skipped
PipelineRun was stopping StoppingSkip means the task was skipped because the pipeline run is stopping
PipelineRun was gracefully cancelled GracefullyCancelledSkip means the task was skipped because the pipeline run has been gracefully cancelled
PipelineRun was gracefully stopped GracefullyStoppedSkip means the task was skipped because the pipeline run has been gracefully stopped
Results were missing MissingResultsSkip means the task was skipped because it’s missing necessary results
PipelineRun timeout has been reached PipelineTimedOutSkip means the task was skipped because the PipelineRun has passed its overall timeout.
PipelineRun Tasks timeout has been reached TasksTimedOutSkip means the task was skipped because the PipelineRun has passed its Timeouts.Tasks.
PipelineRun Finally timeout has been reached FinallyTimedOutSkip means the task was skipped because the PipelineRun has passed its Timeouts.Finally.
Matrix Parameters have an empty array EmptyArrayInMatrixParams means the task was skipped because Matrix parameters contain empty array.
None None means the task was not skipped

Step

Step runs a subcomponent of a Task

Appears in:

Field Description Default Validation
name string Name of the Step specified as a DNS_LABEL.
Each Step in a Task must have a unique name.
displayName string DisplayName is a user-facing name of the step that may be
used to populate a UI.
Optional: {}
image string Image reference name to run for this Step.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
workingDir string Step’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
ports ContainerPort array List of ports to expose from the Step’s container. Exposing a port here gives
the system additional information about the network connections a
container uses, but is primarily informational. Not specifying a port here
DOES NOT prevent that port from being exposed. Any port which is
listening on the default “0.0.0.0” address inside a container will be
accessible from the network.
Cannot be updated.
Deprecated: This field will be removed in a future release.
Optional: {}
envFrom EnvFromSource array List of sources to populate environment variables in the container.
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
will be reported as an event when the container is starting. When a key exists in multiple
sources, the value associated with the last source will take precedence.
Values defined by an Env with a duplicate key will take precedence.
Cannot be updated.
Optional: {}
env EnvVar array List of environment variables to set in the container.
Cannot be updated.
Optional: {}
resources ResourceRequirements Compute Resources required by this Step.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Step’s filesystem.
Cannot be updated.
Optional: {}
volumeDevices VolumeDevice array volumeDevices is the list of block devices to be used by the Step. Optional: {}
livenessProbe Probe Periodic probe of container liveness.
Step will be restarted if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Deprecated: This field will be removed in a future release.
Optional: {}
readinessProbe Probe Periodic probe of container service readiness.
Step will be removed from service endpoints if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Deprecated: This field will be removed in a future release.
Optional: {}
startupProbe Probe DeprecatedStartupProbe indicates that the Pod this Step runs in has successfully initialized.
If specified, no other probes are executed until this completes successfully.
If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
This can be used to provide different probe parameters at the beginning of a Pod’s lifecycle,
when it might take a long time to load data or warm a cache, than during steady-state operation.
This cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Deprecated: This field will be removed in a future release.
Optional: {}
lifecycle Lifecycle Actions that the management system should take in response to container lifecycle events.
Cannot be updated.
Deprecated: This field will be removed in a future release.
Optional: {}
terminationMessagePath string Deprecated: This field will be removed in a future release and can’t be meaningfully used. Optional: {}
terminationMessagePolicy TerminationMessagePolicy Deprecated: This field will be removed in a future release and can’t be meaningfully used. Optional: {}
imagePullPolicy PullPolicy Image pull policy.
One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Step should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Optional: {}
stdin boolean Whether this container should allocate a buffer for stdin in the container runtime. If this
is not set, reads from stdin in the container will always result in EOF.
Default is false.
Deprecated: This field will be removed in a future release.
Optional: {}
stdinOnce boolean Whether the container runtime should close the stdin channel after it has been opened by
a single attach. When stdin is true the stdin stream will remain open across multiple attach
sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
first client attaches to stdin, and then remains open and accepts data until the client disconnects,
at which time stdin is closed and remains closed until the container is restarted. If this
flag is false, a container processes that reads from stdin will never receive an EOF.
Default is false
Deprecated: This field will be removed in a future release.
Optional: {}
tty boolean Whether this container should allocate a DeprecatedTTY for itself, also requires ‘stdin’ to be true.
Default is false.
Deprecated: This field will be removed in a future release.
Optional: {}
script string Script is the contents of an executable file to execute.
If Script is not empty, the Step cannot have an Command and the Args will be passed to the Script.
Optional: {}
timeout Duration Timeout is the time after which the step times out. Defaults to never.
Refer to Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
workspaces WorkspaceUsage array This is an alpha field. You must set the “enable-api-fields” feature flag to “alpha”
for this field to be supported.
Workspaces is a list of workspaces from the Task that this Step wants
exclusive access to. Adding a workspace to this list means that any
other Step or Sidecar that does not also request this Workspace will
not have access to it.
Optional: {}
onError OnErrorType OnError defines the exiting behavior of a container on error
can be set to [ continue | stopAndFail ]
stdoutConfig StepOutputConfig Stores configuration for the stdout stream of the step. Optional: {}
stderrConfig StepOutputConfig Stores configuration for the stderr stream of the step. Optional: {}
ref Ref Contains the reference to an existing StepAction. Optional: {}
params Params Params declares parameters passed to this step action. Optional: {}
results StepResult array Results declares StepResults produced by the Step.
It can be used in an inlined Step when used to store Results to $(step.results.resultName.path).
It cannot be used when referencing StepActions using [v1beta1.Step.Ref].
The Results declared by the StepActions will be stored here instead.
Optional: {}
when StepWhenExpressions

StepAction

StepAction represents the actionable components of Step. The Step can only reference it from the cluster or using remote resolution.

Field Description Default Validation
apiVersion string tekton.dev/v1beta1
kind string StepAction
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec StepActionSpec Spec holds the desired state of the Step from the client Optional: {}

StepActionSpec

StepActionSpec contains the actionable components of a step.

Appears in:

Field Description Default Validation
description string Description is a user-facing description of the stepaction that may be
used to populate a UI.
Optional: {}
image string Image reference name to run for this StepAction.
More info: https://kubernetes.io/docs/concepts/containers/images
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args Args Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
env EnvVar array List of environment variables to set in the container.
Cannot be updated.
Optional: {}
script string Script is the contents of an executable file to execute.
If Script is not empty, the Step cannot have an Command and the Args will be passed to the Script.
Optional: {}
workingDir string Step’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
params ParamSpecs Params is a list of input parameters required to run the stepAction.
Params must be supplied as inputs in Steps unless they declare a defaultvalue.
Optional: {}
results StepResult array Results are values that this StepAction can output Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Step should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
The value set in StepAction will take precedence over the value from Task.
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Step’s filesystem.
Cannot be updated.
Optional: {}

StepOutputConfig

StepOutputConfig stores configuration for a step output stream.

Appears in:

Field Description Default Validation
path string Path to duplicate stdout stream to on container’s local filesystem. Optional: {}

StepState

StepState reports the results of running a step in a Task.

Appears in:

Field Description Default Validation
waiting ContainerStateWaiting Details about a waiting container Optional: {}
running ContainerStateRunning Details about a running container Optional: {}
terminated ContainerStateTerminated Details about a terminated container Optional: {}
name string
container string
imageID string
results TaskRunStepResult array
provenance Provenance
inputs TaskRunStepArtifact array
outputs TaskRunStepArtifact array

StepTemplate

StepTemplate is a template for a Step

Appears in:

Field Description Default Validation
name string Default name for each Step specified as a DNS_LABEL.
Each Step in a Task must have a unique name.
Cannot be updated.
Deprecated: This field will be removed in a future release.
Optional: {}
image string Default image name to use for each Step.
More info: https://kubernetes.io/docs/concepts/containers/images
This field is optional to allow higher level config management to default or override
container images in workload controllers like Deployments and StatefulSets.
Optional: {}
command string array Entrypoint array. Not executed within a shell.
The docker image’s ENTRYPOINT is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Step’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
args string array Arguments to the entrypoint.
The image’s CMD is used if this is not provided.
Variable references $(VAR_NAME) are expanded using the Step’s environment. If a variable
cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will
produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless
of whether the variable exists or not. Cannot be updated.
More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
Optional: {}
workingDir string Step’s working directory.
If not specified, the container runtime’s default will be used, which
might be configured in the container image.
Cannot be updated.
Optional: {}
ports ContainerPort array List of ports to expose from the Step’s container. Exposing a port here gives
the system additional information about the network connections a
container uses, but is primarily informational. Not specifying a port here
DOES NOT prevent that port from being exposed. Any port which is
listening on the default “0.0.0.0” address inside a container will be
accessible from the network.
Cannot be updated.
Deprecated: This field will be removed in a future release.
Optional: {}
envFrom EnvFromSource array List of sources to populate environment variables in the Step.
The keys defined within a source must be a C_IDENTIFIER. All invalid keys
will be reported as an event when the container is starting. When a key exists in multiple
sources, the value associated with the last source will take precedence.
Values defined by an Env with a duplicate key will take precedence.
Cannot be updated.
Optional: {}
env EnvVar array List of environment variables to set in the container.
Cannot be updated.
Optional: {}
resources ResourceRequirements Compute Resources required by this Step.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
Optional: {}
volumeMounts VolumeMount array Volumes to mount into the Step’s filesystem.
Cannot be updated.
Optional: {}
volumeDevices VolumeDevice array volumeDevices is the list of block devices to be used by the Step. Optional: {}
livenessProbe Probe Periodic probe of container liveness.
Container will be restarted if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Deprecated: This field will be removed in a future release.
Optional: {}
readinessProbe Probe Periodic probe of container service readiness.
Container will be removed from service endpoints if the probe fails.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Deprecated: This field will be removed in a future release.
Optional: {}
startupProbe Probe DeprecatedStartupProbe indicates that the Pod has successfully initialized.
If specified, no other probes are executed until this completes successfully.
If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
This can be used to provide different probe parameters at the beginning of a Pod’s lifecycle,
when it might take a long time to load data or warm a cache, than during steady-state operation.
This cannot be updated.
More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Deprecated: This field will be removed in a future release.
Optional: {}
lifecycle Lifecycle Actions that the management system should take in response to container lifecycle events.
Cannot be updated.
Deprecated: This field will be removed in a future release.
Optional: {}
terminationMessagePath string Deprecated: This field will be removed in a future release and cannot be meaningfully used. Optional: {}
terminationMessagePolicy TerminationMessagePolicy Deprecated: This field will be removed in a future release and cannot be meaningfully used. Optional: {}
imagePullPolicy PullPolicy Image pull policy.
One of Always, Never, IfNotPresent.
Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Optional: {}
securityContext SecurityContext SecurityContext defines the security options the Step should be run with.
If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
Optional: {}
stdin boolean Whether this Step should allocate a buffer for stdin in the container runtime. If this
is not set, reads from stdin in the Step will always result in EOF.
Default is false.
Deprecated: This field will be removed in a future release.
Optional: {}
stdinOnce boolean Whether the container runtime should close the stdin channel after it has been opened by
a single attach. When stdin is true the stdin stream will remain open across multiple attach
sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
first client attaches to stdin, and then remains open and accepts data until the client disconnects,
at which time stdin is closed and remains closed until the container is restarted. If this
flag is false, a container processes that reads from stdin will never receive an EOF.
Default is false
Deprecated: This field will be removed in a future release.
Optional: {}
tty boolean Whether this Step should allocate a DeprecatedTTY for itself, also requires ‘stdin’ to be true.
Default is false.
Deprecated: This field will be removed in a future release.
Optional: {}

Task

Task represents a collection of sequential steps that are run as part of a Pipeline using a set of inputs and producing a set of outputs. Tasks execute when TaskRuns are created that provide the input parameters and resources and output resources the Task requires.

Deprecated: Please use v1.Task instead.

Field Description Default Validation
apiVersion string tekton.dev/v1beta1
kind string Task
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec TaskSpec Spec holds the desired state of the Task from the client Optional: {}

TaskBreakpoints

TaskBreakpoints defines the breakpoint config for a particular Task

Appears in:

Field Description Default Validation
onFailure string if enabled, pause TaskRun on failure of a step
failed step will not exit
Optional: {}
beforeSteps string array Optional: {}

TaskKind

Underlying type: string

TaskKind defines the type of Task used by the pipeline.

Appears in:

Field Description
Task NamespacedTaskKind indicates that the task type has a namespaced scope.

TaskRef

TaskRef can be used to refer to a specific instance of a task.

Appears in:

Field Description Default Validation
name string Name of the referent; More info: http://kubernetes.io/docs/user-guide/identifiers#names
kind TaskKind TaskKind indicates the Kind of the Task:
1. Namespaced Task when Kind is set to “Task”. If Kind is “”, it defaults to “Task”.
2. Custom Task when Kind is non-empty and APIVersion is non-empty
apiVersion string API version of the referent
Note: A Task with non-empty APIVersion and Kind is considered a Custom Task
Optional: {}
bundle string Bundle url reference to a Tekton Bundle.
Deprecated: Please use ResolverRef with the bundles resolver instead.
The field is staying there for go client backward compatibility, but is not used/allowed anymore.
Optional: {}
ResolverRef ResolverRef ResolverRef allows referencing a Task in a remote location
like a git repo. This field is only supported when the alpha
feature gate is enabled.
Optional: {}

TaskResource

TaskResource defines an input or output Resource declared as a requirement by a Task. The Name field will be used to refer to these Resources within the Task definition, and when provided as an Input, the Name will be the path to the volume mounted containing this Resource as an input (e.g. an input Resource named workspace will be mounted at /workspace).

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

TaskResourceBinding

TaskResourceBinding points to the PipelineResource that will be used for the Task input or output called Name.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
name string Name is the name of the PipelineResource in the Pipeline’s declaration
resourceRef PipelineResourceRef ResourceRef is a reference to the instance of the actual PipelineResource
that should be used
Optional: {}
resourceSpec PipelineResourceSpec ResourceSpec is specification of a resource that should be created and
consumed by the task
Optional: {}
paths string array Paths will probably be removed in #1284, and then PipelineResourceBinding can be used instead.
The optional Path field corresponds to a path on disk at which the Resource can be found
(used when providing the resource via mounted volume, overriding the default logic to fetch the Resource).
Optional: {}

TaskResources

TaskResources allows a Pipeline to declare how its DeclaredPipelineResources should be provided to a Task as its inputs and outputs.

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
inputs TaskResource array Inputs holds the mapping from the PipelineResources declared in
DeclaredPipelineResources to the input PipelineResources required by the Task.
outputs TaskResource array Outputs holds the mapping from the PipelineResources declared in
DeclaredPipelineResources to the input PipelineResources required by the Task.

TaskResult

TaskResult used to describe the results of a task

Appears in:

Field Description Default Validation
name string Name the given name
type ResultsType Type is the user-specified type of the result. The possible type
is currently “string” and will support “array” in following work.
Optional: {}
properties object (keys:string, values:PropertySpec) Properties is the JSON Schema properties to support key-value pairs results. Optional: {}
description string Description is a human-readable description of the result Optional: {}
value ResultValue Value the expression used to retrieve the value of the result from an underlying Step. Schemaless: {}
Optional: {}

TaskRun

TaskRun represents a single execution of a Task. TaskRuns are how the steps specified in a Task are executed; they specify the parameters and resources used to run the steps in a Task.

Deprecated: Please use v1.TaskRun instead.

Field Description Default Validation
apiVersion string tekton.dev/v1beta1
kind string TaskRun
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata. Optional: {}
spec TaskRunSpec Optional: {}
status TaskRunStatus Optional: {}

TaskRunDebug

TaskRunDebug defines the breakpoint config for a particular TaskRun

Appears in:

Field Description Default Validation
breakpoints TaskBreakpoints Optional: {}

TaskRunResources

TaskRunResources allows a TaskRun to declare inputs and outputs TaskResourceBinding

Deprecated: Unused, preserved only for backwards compatibility

Appears in:

Field Description Default Validation
inputs TaskResourceBinding array Inputs holds the inputs resources this task was invoked with
outputs TaskResourceBinding array Outputs holds the inputs resources this task was invoked with

TaskRunResult

TaskRunResult used to describe the results of a task

Appears in:

Field Description Default Validation
name string Name the given name
type ResultsType Type is the user-specified type of the result. The possible type
is currently “string” and will support “array” in following work.
Optional: {}
value ResultValue Value the given value of the result Schemaless: {}

TaskRunSidecarOverride

TaskRunSidecarOverride is used to override the values of a Sidecar in the corresponding Task.

Appears in:

Field Description Default Validation
name string The name of the Sidecar to override.
resources ResourceRequirements The resource requirements to apply to the Sidecar.

TaskRunSpec

TaskRunSpec defines the desired state of TaskRun

Appears in:

Field Description Default Validation
debug TaskRunDebug Optional: {}
params Params Optional: {}
resources TaskRunResources Deprecated: Unused, preserved only for backwards compatibility Optional: {}
serviceAccountName string Optional: {}
taskRef TaskRef no more than one of the TaskRef and TaskSpec may be specified. Optional: {}
taskSpec TaskSpec Specifying TaskSpec can be disabled by setting
disable-inline-spec feature flag.
See Task.spec (API version: tekton.dev/v1beta1)
Schemaless: {}
Optional: {}
status TaskRunSpecStatus Used for cancelling a TaskRun (and maybe more later on) Optional: {}
statusMessage TaskRunSpecStatusMessage Status message for cancellation. Optional: {}
retries integer Retries represents how many times this TaskRun should be retried in the event of Task failure. Optional: {}
timeout Duration Time after which one retry attempt times out. Defaults to 1 hour.
Refer Go’s ParseDuration documentation for expected format: https://golang.org/pkg/time/#ParseDuration
Optional: {}
podTemplate PodTemplate PodTemplate holds pod specific configuration
workspaces WorkspaceBinding array Workspaces is a list of WorkspaceBindings from volumes to workspaces. Optional: {}
stepOverrides TaskRunStepOverride array Overrides to apply to Steps in this TaskRun.
If a field is specified in both a Step and a StepOverride,
the value from the StepOverride will be used.
This field is only supported when the alpha feature gate is enabled.
Optional: {}
sidecarOverrides TaskRunSidecarOverride array Overrides to apply to Sidecars in this TaskRun.
If a field is specified in both a Sidecar and a SidecarOverride,
the value from the SidecarOverride will be used.
This field is only supported when the alpha feature gate is enabled.
Optional: {}
computeResources ResourceRequirements Compute resources to use for this TaskRun
managedBy string ManagedBy indicates which controller is responsible for reconciling
this resource. If unset or set to “tekton.dev/pipeline”, the default
Tekton controller will manage this resource.
This field is immutable.
Optional: {}

TaskRunSpecStatus

Underlying type: string

TaskRunSpecStatus defines the TaskRun spec status the user can provide

Appears in:

TaskRunSpecStatusMessage

Underlying type: string

TaskRunSpecStatusMessage defines human readable status messages for the TaskRun.

Appears in:

Field Description
TaskRun cancelled as the PipelineRun it belongs to has been cancelled. TaskRunCancelledByPipelineMsg indicates that the PipelineRun of which this
TaskRun was a part of has been cancelled.
TaskRun cancelled as the PipelineRun it belongs to has timed out. TaskRunCancelledByPipelineTimeoutMsg indicates that the TaskRun was cancelled because the PipelineRun running it timed out.

TaskRunStatus

TaskRunStatus defines the observed state of TaskRun

Appears in:

Field Description Default Validation
observedGeneration integer ObservedGeneration is the ‘Generation’ of the Service that
was last processed by the controller.
Optional: {}
conditions Conditions Conditions the latest available observations of a resource’s current state. Optional: {}
annotations object (keys:string, values:string) Annotations is additional Status fields for the Resource to save some
additional State as well as convey more information to the user. This is
roughly akin to Annotations on any k8s resource, just the reconciler conveying
richer information outwards.
podName string PodName is the name of the pod responsible for executing this task’s steps.
startTime Time StartTime is the time the build is actually started.
completionTime Time CompletionTime is the time the build completed.
steps StepState array Steps describes the state of each build step container. Optional: {}
cloudEvents CloudEventDelivery array CloudEvents describe the state of each cloud event requested via a
CloudEventResource.
Deprecated: No content written to it. To be Removed (since v0.44.0).
Use kubectl describe (CloudEventSent/CloudEventFailed k8s Events) or the
tekton_events_sent_total Prometheus metric for delivery visibility instead.
Optional: {}
retriesStatus RetriesStatus RetriesStatus contains the history of TaskRunStatus in case of a retry in order to keep record of failures.
All TaskRunStatus stored in RetriesStatus will have no date within the RetriesStatus as is redundant.
See TaskRun.status (API version: tekton.dev/v1beta1)
Schemaless: {}
Optional: {}
resourcesResult PipelineResourceResult array Results from Resources built during the TaskRun.
This is tomb-stoned along with the removal of pipelineResources
Deprecated: this field is not populated and is preserved only for backwards compatibility
Optional: {}
taskResults TaskRunResult array TaskRunResults are the list of results written out by the task’s containers Optional: {}
sidecars SidecarState array The list has one entry per sidecar in the manifest. Each entry is
represents the imageid of the corresponding sidecar.
taskSpec TaskSpec TaskSpec contains the Spec from the dereferenced Task definition used to instantiate this TaskRun.
See Task.spec (API version tekton.dev/v1beta1)
Schemaless: {}
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

TaskRunStatusFields

TaskRunStatusFields holds the fields of TaskRun’s status. This is defined separately and inlined so that other types can readily consume these fields via duck typing.

Appears in:

Field Description Default Validation
podName string PodName is the name of the pod responsible for executing this task’s steps.
startTime Time StartTime is the time the build is actually started.
completionTime Time CompletionTime is the time the build completed.
steps StepState array Steps describes the state of each build step container. Optional: {}
cloudEvents CloudEventDelivery array CloudEvents describe the state of each cloud event requested via a
CloudEventResource.
Deprecated: No content written to it. To be Removed (since v0.44.0).
Use kubectl describe (CloudEventSent/CloudEventFailed k8s Events) or the
tekton_events_sent_total Prometheus metric for delivery visibility instead.
Optional: {}
retriesStatus RetriesStatus RetriesStatus contains the history of TaskRunStatus in case of a retry in order to keep record of failures.
All TaskRunStatus stored in RetriesStatus will have no date within the RetriesStatus as is redundant.
See TaskRun.status (API version: tekton.dev/v1beta1)
Schemaless: {}
Optional: {}
resourcesResult PipelineResourceResult array Results from Resources built during the TaskRun.
This is tomb-stoned along with the removal of pipelineResources
Deprecated: this field is not populated and is preserved only for backwards compatibility
Optional: {}
taskResults TaskRunResult array TaskRunResults are the list of results written out by the task’s containers Optional: {}
sidecars SidecarState array The list has one entry per sidecar in the manifest. Each entry is
represents the imageid of the corresponding sidecar.
taskSpec TaskSpec TaskSpec contains the Spec from the dereferenced Task definition used to instantiate this TaskRun.
See Task.spec (API version tekton.dev/v1beta1)
Schemaless: {}
provenance Provenance Provenance contains some key authenticated metadata about how a software artifact was built (what sources, what inputs/outputs, etc.). Optional: {}
spanContext object (keys:string, values:string) SpanContext contains tracing span context fields

TaskRunStepOverride

TaskRunStepOverride is used to override the values of a Step in the corresponding Task.

Appears in:

Field Description Default Validation
name string The name of the Step to override.
resources ResourceRequirements The resource requirements to apply to the Step.

TaskSpec

TaskSpec defines the desired state of Task.

Appears in:

Field Description Default Validation
resources TaskResources Resources is a list input and output resource to run the task
Resources are represented in TaskRuns as bindings to instances of
PipelineResources.
Deprecated: Unused, preserved only for backwards compatibility
Optional: {}
params ParamSpecs Params is a list of input parameters required to run the task. Params
must be supplied as inputs in TaskRuns unless they declare a default
value.
Optional: {}
displayName string DisplayName is a user-facing name of the task that may be
used to populate a UI.
Optional: {}
description string Description is a user-facing description of the task that may be
used to populate a UI.
Optional: {}
steps Step array Steps are the steps of the build; each step is run sequentially with the
source mounted into /workspace.
volumes Volumes Volumes is a collection of volumes that are available to mount into the
steps of the build.
See Pod.spec.volumes (API version: v1)
Schemaless: {}
stepTemplate StepTemplate StepTemplate can be used as the basis for all step containers within the
Task, so that the steps inherit settings on the base container.
sidecars Sidecar array Sidecars are run alongside the Task’s step containers. They begin before
the steps start and end after the steps complete.
workspaces WorkspaceDeclaration array Workspaces are the volumes that this Task requires.
results TaskResult array Results are values that this Task can output

TimeoutFields

TimeoutFields allows granular specification of pipeline, task, and finally timeouts

Appears in:

Field Description Default Validation
pipeline Duration Pipeline sets the maximum allowed duration for execution of the entire pipeline. The sum of individual timeouts for tasks and finally must not exceed this value.
tasks Duration Tasks sets the maximum allowed duration of this pipeline’s tasks
finally Duration Finally sets the maximum allowed duration of this pipeline’s finally

Volumes

Underlying type: Volume

Appears in:

Field Description Default Validation
name string name of the volume.
Must be a DNS_LABEL and unique within the pod.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
hostPath HostPathVolumeSource hostPath represents a pre-existing file or directory on the host
machine that is directly exposed to the container. This is generally
used for system agents or other privileged things that are allowed
to see the host machine. Most containers will NOT need this.
More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
Optional: {}
emptyDir EmptyDirVolumeSource emptyDir represents a temporary directory that shares a pod’s lifetime.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Optional: {}
gcePersistentDisk GCEPersistentDiskVolumeSource gcePersistentDisk represents a GCE Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree
gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
Optional: {}
awsElasticBlockStore AWSElasticBlockStoreVolumeSource awsElasticBlockStore represents an AWS Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree
awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.
More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
Optional: {}
gitRepo GitRepoVolumeSource gitRepo represents a git repository at a particular revision.
Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an
EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
into the Pod’s container.
Optional: {}
secret SecretVolumeSource secret represents a secret that should populate this volume.
More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
Optional: {}
nfs NFSVolumeSource nfs represents an NFS mount on the host that shares a pod’s lifetime
More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
Optional: {}
iscsi ISCSIVolumeSource iscsi represents an ISCSI Disk resource that is attached to a
kubelet’s host machine and then exposed to the pod.
More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
Optional: {}
glusterfs GlusterfsVolumeSource glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime.
Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.
Optional: {}
persistentVolumeClaim PersistentVolumeClaimVolumeSource persistentVolumeClaimVolumeSource represents a reference to a
PersistentVolumeClaim in the same namespace.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Optional: {}
rbd RBDVolumeSource rbd represents a Rados Block Device mount on the host that shares a pod’s lifetime.
Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.
Optional: {}
flexVolume FlexVolumeSource flexVolume represents a generic volume resource that is
provisioned/attached using an exec based plugin.
Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.
Optional: {}
cinder CinderVolumeSource cinder represents a cinder volume attached and mounted on kubelets host machine.
Deprecated: Cinder is deprecated. All operations for the in-tree cinder type
are redirected to the cinder.csi.openstack.org CSI driver.
More info: https://examples.k8s.io/mysql-cinder-pd/README.md
Optional: {}
cephfs CephFSVolumeSource cephFS represents a Ceph FS mount on the host that shares a pod’s lifetime.
Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.
Optional: {}
flocker FlockerVolumeSource flocker represents a Flocker volume attached to a kubelet’s host machine. This depends on the Flocker control service being running.
Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.
Optional: {}
downwardAPI DownwardAPIVolumeSource downwardAPI represents downward API about the pod that should populate this volume Optional: {}
fc FCVolumeSource fc represents a Fibre Channel resource that is attached to a kubelet’s host machine and then exposed to the pod. Optional: {}
azureFile AzureFileVolumeSource azureFile represents an Azure File Service mount on the host and bind mount to the pod.
Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type
are redirected to the file.csi.azure.com CSI driver.
Optional: {}
configMap ConfigMapVolumeSource configMap represents a configMap that should populate this volume Optional: {}
vsphereVolume VsphereVirtualDiskVolumeSource vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.
Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type
are redirected to the csi.vsphere.vmware.com CSI driver.
Optional: {}
quobyte QuobyteVolumeSource quobyte represents a Quobyte mount on the host that shares a pod’s lifetime.
Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.
Optional: {}
azureDisk AzureDiskVolumeSource azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type
are redirected to the disk.csi.azure.com CSI driver.
Optional: {}
photonPersistentDisk PhotonPersistentDiskVolumeSource photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.
Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.
projected ProjectedVolumeSource projected items for all in one resources secrets, configmaps, and downward API
portworxVolume PortworxVolumeSource portworxVolume represents a portworx volume attached and mounted on kubelets host machine.
Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type
are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate
is on.
Optional: {}
scaleIO ScaleIOVolumeSource scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.
Optional: {}
storageos StorageOSVolumeSource storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.
Optional: {}
csi CSIVolumeSource csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Optional: {}
ephemeral EphemeralVolumeSource ephemeral represents a volume that is handled by a cluster storage driver.
The volume’s lifecycle is tied to the pod that defines it - it will be created before the pod starts,
and deleted when the pod is removed.
Use this if:
a) the volume is only needed while the pod runs,
b) features of normal volumes like restoring from snapshot or capacity
tracking are needed,
c) the storage driver is specified through a storage class, and
d) the storage driver supports dynamic volume provisioning through
a PersistentVolumeClaim (see EphemeralVolumeSource for more
information on the connection between this volume type
and PersistentVolumeClaim).
Use PersistentVolumeClaim or one of the vendor-specific
APIs for volumes that persist for longer than the lifecycle
of an individual pod.
Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to
be used that way - see the documentation of the driver for
more information.
A pod can use both types of ephemeral volumes and
persistent volumes at the same time.
Optional: {}
image ImageVolumeSource image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet’s host machine.
The volume is resolved at pod startup depending on which PullPolicy value is provided:
- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.
- Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn’t present.
- IfNotPresent: the kubelet pulls if the reference isn’t already present on disk. Container creation will fail if the reference isn’t present and the pull fails.
The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.
A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.
The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.
The OCI object gets mounted in a single directory (spec.containers[].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.
The volume will be mounted read-only (ro) and non-executable files (noexec).
Sub path mounts for containers are not supported (spec.containers[
].volumeMounts.subpath) before 1.33.
The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.
Optional: {}

WhenExpression

WhenExpression allows a PipelineTask to declare expressions to be evaluated before the Task is run to determine whether the Task should be executed or skipped

Appears in:

Field Description Default Validation
input string Input is the string for guard checking which can be a static input or an output from a parent Task
operator Operator Operator that represents an Input’s relationship to the values
values string array Values is an array of strings, which is compared against the input, for guard checking
It must be non-empty
cel string CEL is a string of Common Language Expression, which can be used to conditionally execute
the task based on the result of the expression evaluation
More info about CEL syntax: https://github.com/google/cel-spec/blob/master/doc/langdef.md
Optional: {}

WhenExpressions

Underlying type: WhenExpression

WhenExpressions are used to specify whether a Task should be executed or skipped All of them need to evaluate to True for a guarded Task to be executed.

Appears in:

Field Description Default Validation
input string Input is the string for guard checking which can be a static input or an output from a parent Task
operator Operator Operator that represents an Input’s relationship to the values
values string array Values is an array of strings, which is compared against the input, for guard checking
It must be non-empty
cel string CEL is a string of Common Language Expression, which can be used to conditionally execute
the task based on the result of the expression evaluation
More info about CEL syntax: https://github.com/google/cel-spec/blob/master/doc/langdef.md
Optional: {}

WorkspaceBinding

WorkspaceBinding maps a Task’s declared workspace to a Volume.

Appears in:

Field Description Default Validation
name string Name is the name of the workspace populated by the volume.
subPath string SubPath is optionally a directory on the volume which should be used
for this binding (i.e. the volume will be mounted at this sub directory).
Optional: {}
volumeClaimTemplate PersistentVolumeClaim VolumeClaimTemplate is a template for a claim that will be created in the same namespace.
The PipelineRun controller is responsible for creating a unique claim for each instance of PipelineRun.
See PersistentVolumeClaim (API version: v1)
Schemaless: {}
Optional: {}
persistentVolumeClaim PersistentVolumeClaimVolumeSource PersistentVolumeClaimVolumeSource represents a reference to a
PersistentVolumeClaim in the same namespace. Either this OR EmptyDir can be used.
Optional: {}
emptyDir EmptyDirVolumeSource EmptyDir represents a temporary directory that shares a Task’s lifetime.
More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
Either this OR PersistentVolumeClaim can be used.
Optional: {}
configMap ConfigMapVolumeSource ConfigMap represents a configMap that should populate this workspace. Optional: {}
secret SecretVolumeSource Secret represents a secret that should populate this workspace. Optional: {}
projected ProjectedVolumeSource Projected represents a projected volume that should populate this workspace. Optional: {}
csi CSIVolumeSource CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers. Optional: {}

WorkspaceDeclaration

WorkspaceDeclaration is a declaration of a volume that a Task requires.

Appears in:

Field Description Default Validation
name string Name is the name by which you can bind the volume at runtime.
description string Description is an optional human readable description of this volume. Optional: {}
mountPath string MountPath overrides the directory that the volume will be made available at. Optional: {}
readOnly boolean ReadOnly dictates whether a mounted volume is writable. By default this
field is false and so mounted volumes are writable.
optional boolean Optional marks a Workspace as not being required in TaskRuns. By default
this field is false and so declared workspaces are required.

WorkspacePipelineTaskBinding

WorkspacePipelineTaskBinding describes how a workspace passed into the pipeline should be mapped to a task’s declared workspace.

Appears in:

Field Description Default Validation
name string Name is the name of the workspace as declared by the task
workspace string Workspace is the name of the workspace declared by the pipeline Optional: {}
subPath string SubPath is optionally a directory on the volume which should be used
for this binding (i.e. the volume will be mounted at this sub directory).
Optional: {}

WorkspaceUsage

WorkspaceUsage is used by a Step or Sidecar to declare that it wants isolated access to a Workspace defined in a Task.

Appears in:

Field Description Default Validation
name string Name is the name of the workspace this Step or Sidecar wants access to.
mountPath string MountPath is the path that the workspace should be mounted to inside the Step or Sidecar,
overriding any MountPath specified in the Task’s WorkspaceDeclaration.