Tekton Pipeline: Difference between revisions
Line 56: | Line 56: | ||
name: <font color=indigo><''pipeline-name''></font> <font color=teal> # required field</font> | name: <font color=indigo><''pipeline-name''></font> <font color=teal> # required field</font> | ||
spec: <font color=teal> # required field</font> | spec: <font color=teal> # required field</font> | ||
<span id='_workspaces'></span>[[Tekton_Workspaces#Pipeline_Workspaces|workspaces]]: | |||
- name: <font color=indigo>''<workspace-name>''</font> | |||
<span id='_params'></span>[[#Parameters|params]]: | <span id='_params'></span>[[#Parameters|params]]: | ||
- name: <font color=indigo>''<some-string-param-name>''</font> | - name: <font color=indigo>''<some-string-param-name>''</font> |
Revision as of 00:36, 29 April 2022
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 workspaces: - name: <workspace-name> 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.