Tekton Pipeline: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 73: Line 73:


=Tasks=
=Tasks=
The pipeline specification contains a mandatory list of <code>[[#_tasks|tasks]]</code>. The list specifies the tasks of this pipeline and the details of their execution. The pipeline definition must reference at least one task. Each task must be specified via a valid name and a <code>[[#_taskRef|taskRef]]</code>.
The pipeline specification contains a mandatory list of <code>[[#_tasks|tasks]]</code>. The list specifies the tasks of this pipeline and the details of their execution. The pipeline definition must reference at least one task. Each task must be specified via a valid [[Kubernetes_API_Resources_Concepts#Names|Kubernetes name]] and a <code>[[#_taskRef|taskRef]]</code>.

Revision as of 01:29, 29 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
  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
    - name: task-name
      taskRef:
        name: task-ref-name 

Tasks

The pipeline specification contains a mandatory list of tasks. The list specifies the tasks of this pipeline and the details of their execution. The pipeline definition must reference at least one task. Each task must be specified via a valid Kubernetes name and a taskRef.