Tekton Pipeline: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 55: Line 55:
   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>
   tasks: <font color=teal>                      # required field</font>
   [[#Tasks|tasks]]: <font color=teal>                      # required field</font>
  </font>
  </font>
=Tasks=
=Tasks=

Revision as of 20:57, 28 April 2022

External

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
  tasks:                       # required field

Tasks