Getting started with Tasks

Set up and run your first Tekton Task

This tutorial shows you how to

  1. Create a Kubernetes cluster with minikube.
  2. Install Tekton pipelines.
  3. Create a Task.
  4. Use TaskRun to instantiate and run your Task.


  1. Install minikube. You only have to complete the step 1, “Installation”.

  2. Install kubectl.

Create your Kubernetes cluster

Create a cluster

minikube start --kubernetes-version v1.24.4

The process takes a few seconds, you see an output symilar to the following, depending on the minikube driver that you are using:

😄  minikube v1.25.1
✨  Using the docker driver based on existing profile
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔄  Restarting existing docker container for "minikube" ...
🐳  Preparing Kubernetes v1.23.1 on Docker 20.10.12 ...
    ▪ kubelet.housekeeping-interval=5m
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

You can check that the cluster was successfully created with kubectl:

kubectl cluster-info

The output confirms that Kubernetes is running:

Kubernetes control plane is running at
CoreDNS is running at

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

Install Tekton Pipelines

  1. To install the latest version of Tekton Pipelines, use kubectl:

    kubectl apply --filename \
  2. Monitor the installation:

    kubectl get pods --namespace tekton-pipelines --watch

When both tekton-pipelines-controller and tekton-pipelines-webhook show 1/1 under the READY column, you are ready to continue. For example:

$ kubectl get pods --namespace tekton-pipelines --watch

NAME                                           READY   STATUS              RESTARTS   AGE
tekton-pipelines-controller-6d989cc968-j57cs   0/1     Pending             0          3s
tekton-pipelines-webhook-69744499d9-t58s5      0/1     ContainerCreating   0          3s
tekton-pipelines-controller-6d989cc968-j57cs   0/1     ContainerCreating   0          3s
tekton-pipelines-controller-6d989cc968-j57cs   0/1     Running             0          5s
tekton-pipelines-webhook-69744499d9-t58s5      0/1     Running             0          6s
tekton-pipelines-controller-6d989cc968-j57cs   1/1     Running             0          10s
tekton-pipelines-webhook-69744499d9-t58s5      1/1     Running             0          20s

Hit Ctrl + C to stop monitoring.

Create and run a basic Task

A Task, represented in the API as an object of kind Task, defines a series of Steps that run sequentially to perform logic that the Task requires. Every Task runs as a pod on your Kubernetes cluster, with each step running in its own container.

  1. To create a Task, open your favorite editor and create a file named hello-world.yaml with the following content:

    kind: Task
      name: hello
        - name: echo
          image: alpine
          script: |
            echo "Hello World"        
  2. Apply the changes your cluster:

    kubectl apply --filename hello-world.yaml

    The output confirms that the Task was completed successfully. created
  3. To run this Task, you must instantiate it using TaskRun. Create another file named hello-world-run.yaml with the following content:

    kind: TaskRun
      name: hello-task-run
        name: hello
  4. Apply the changes to your cluster to launch the Task:

    kubectl apply --filename hello-world-run.yaml
  5. Verify that everything worked correctly:

    kubectl get taskrun hello-task-run

    The output of this command shows the status of the Task

     NAME                               SUCCEEDED    REASON       STARTTIME   COMPLETIONTIME
     hello-task-run          True         Succeeded    22h         22h

    The value True under SUCCEEDED confirms that TaskRun completed with no errors.

  6. Take a look at the logs:

    kubectl logs

    The output displays the message:

    Hello World


If you want to continue and create a pipeline, do not delete your cluster and proceed to the next tutorial.

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.