Getting Started with Pipelines

Create and run your first Tekton Pipeline

This tutorial shows you how to:

  • Create two Tasks.
  • Create a Pipeline containing your Tasks.
  • Use PipelineRun to instantiate and run the Pipeline containing your Tasks.

For this tutorial we are going to use minikube to run the commands locally.

Prerequisites

  1. Complete the Getting started with Tasks tutorial. Do not clean up your resources, skip the last section.

  2. Install tkn, the Tekton CLI.

Create and run a second Task

You already have a Hello World! Task. To create a second Goodbye World! Task:

  1. Create a new file named goodbye-world.yaml and add the following content:

    apiVersion: tekton.dev/v1beta1
    kind: Task
    metadata:
      name: goodbye
    spec:
      steps:
        - name: goodbye
          image: ubuntu
          script: |
            #!/bin/bash
            echo "Goodbye World!"        
    
  2. Apply your Task file:

    kubectl apply --filename goodbye-world.yaml
    

When a Task is part of a Pipeline you don’t have to instantiate it, the Pipeline is going to take care of that.

Create and run a Pipeline

A Pipeline defines an ordered series of Tasks arranged in a specific execution order as part of your CI/CD workflow.

In this section you are going to create your first Pipeline, that will include both the Hello World! and Goodbye World! Tasks.

  1. Create a new file named hello-goodbye-pipeline.yaml and add the following content:

    apiVersion: tekton.dev/v1beta1
    kind: Pipeline
    metadata:
      name: hello-goodbye
    spec:
      tasks:
        - name: hello
          taskRef:
            name: hello
        - name: goodbye
          runAfter:
            - hello
          taskRef:
            name: goodbye
    
  2. Apply your Pipeline configuration to your cluster:

    kubectl apply --filename hello-goodbye-pipeline.yaml
    
  3. Instantiate your Pipeline with a PipelineRun object. Create a new file named hello-goodbye-pipeline-run.yaml with the following content:

    apiVersion: tekton.dev/v1beta1
    kind: PipelineRun
    metadata:
      name: hello-goodbye-run
    spec:
      pipelineRef:
        name: hello-goodbye
    
  4. Start your Pipeline by applying the PipelineRun configuration to your cluster:

    kubectl apply --filename hello-goodbye-pipeline-run.yaml
    

    You see the following output:

    pipelinerun.tekton.dev/hello-goodbye-run created
    

    Tekton now starts running your Pipeline.

  5. To see the logs of the PipelineRun, use the following command:

    tkn pipelinerun logs hello-goodbye-run -f -n default
    

    The output shows both Tasks completed successfully:

    [hello : hello] Hello World!
    
    [goodbye : goodbye] Goodbye World!
    

Cleanup

To delete the cluster that you created for this quickstart run:

minikube delete

The output confirms that your cluster was deleted:

🔥  Deleting "minikube" in docker ...
🔥  Deleting container "minikube" ...
🔥  Removing /home/user/.minikube/machines/minikube ...
💀  Removed all traces of the "minikube" cluster.

Further reading

Other useful resources


Last modified July 19, 2022: Editorial review (3d32a32)