Tekton Pipeline
External
- https://tekton.dev/docs/pipelines/pipelines/
- https://github.com/tektoncd/pipeline/blob/main/docs/README.md
- https://github.com/tektoncd/pipeline/blob/main/docs/pipelines.md
Internal
Overview
A pipeline defines a series of ordered tasks. Just like steps, a task in a pipeline can use as input the output of a previously executed task. Tekton collects all the tasks, and based on the dependency relationships declared in definition of the pipeline, it orders the tasks in a DAG, and executes the graph in sequence. That results in the materialization of a number of task pods. The pipeline comes up with additional features, such as the capability to fan-out task execution, retry task execution or verify conditions that tasks must meet before proceeding. The pipeline is implemented as a Kubernetes custom resource.
Example
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task1
spec:
steps:
- name: echo
image: alpine
script: |
#!/bin/sh
echo "this is Task 1 output"
---
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: task2
spec:
steps:
- name: echo
image: alpine
script: |
#!/bin/sh
echo "this is Task 2 output"
---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: simple-pipeline
spec:
tasks:
- name: task1
taskRef:
name: task1
- name: task2
runAfter:
- task1
taskRef:
name: task2
Manifest
apiVersion: tekton.dev/v1beta1 # required field kind: Pipeline # required field metadata: # required field name: <pipeline-name> # required field spec: # required field params: - name: <some-string-param-name> type: string description: some description default: <some-default-value> - name: <some-array-param-name> type: array description: some description tasks: # required field
Tasks
The pipeline specification contains a mandatory list of tasks
. The list specifies the tasks that comprise this pipeline and the details of their execution.