Introduction
Tekton Pipelines provides a Kubernetes-style API for declaring CI/CD pipelines. This API reference documents the structure and fields of all Tekton resources.API Versions
v1 (Stable)
The following resources are stable and production-ready:- Task - A collection of steps that execute sequentially
- TaskRun - An instantiation of a Task execution
- Pipeline - A collection of Tasks arranged in a specific order
- PipelineRun - An instantiation of a Pipeline execution
- StepAction - Reusable step components (v1beta1)
Beta Resources
The following resources are in beta:- CustomRun - Execution of custom tasks
- ResolutionRequest - Request for remote resource resolution
- VerificationPolicy - Policy for verifying resource signatures
Common Types
Tekton uses several common types across resources:- Parameters - Input parameters for Tasks and Pipelines
- Results - Output values from Tasks and Pipelines
- Workspaces - Shared filesystem volumes
- When Expressions - Conditional execution guards
API Conventions
Tekton follows Kubernetes API conventions:- All resources have
apiVersion,kind, andmetadatafields - Resources use
specfor desired state andstatusfor observed state - Field names use camelCase
- Duration fields accept Go duration strings (e.g., “1h30m”)
Variable Substitution
Tekton supports variable substitution using the$(variable) syntax:
- Parameters:
$(params.name) - Results:
$(tasks.taskName.results.resultName) - Workspaces:
$(workspaces.name.path) - Context variables:
$(context.pipelineRun.name)
Resource References
Tasks and Pipelines can be referenced in two ways:- Direct reference - Using
nameto reference a resource in the same namespace - Remote resolution - Using
resolverandparamsto fetch resources from remote locations
Status and Conditions
All runtime resources (TaskRun, PipelineRun, CustomRun) use Kubernetes Conditions to report status:type: Succeeded- Indicates completion statusstatus: True- Successful completionstatus: False- Failed completionstatus: Unknown- Still running
Authentication
Tasks and Pipelines can specify aserviceAccountName to control:
- Access to Kubernetes resources
- Credentials for pulling container images
- Secrets mounted into execution environments