Getting started with Tasks
This tutorial shows you how to
- Create a Kubernetes cluster with minikube.
- Install Tekton pipelines.
- Create a Task.
TaskRunto instantiate and run the Task.
Create a Kubernetes cluster
Create a cluster
minikube start --kubernetes-version v1.25.14
The process takes a few seconds, you see an output similar 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 gcr.io/k8s-minikube/storage-provisioner:v5 🌟 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
The output confirms that Kubernetes is running:
Kubernetes control plane is running at https://127.0.0.1:39509 CoreDNS is running at https://127.0.0.1:39509/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Install Tekton Pipelines
To install the latest version of Tekton Pipelines, use
kubectl apply --filename \ https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Monitor the installation:
kubectl get pods --namespace tekton-pipelines --watch
READYcolumn, you are ready to continue. For example:
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 the Kubernetes cluster, with each step
running in its own container.
To create a Task, open your favorite editor and create a file named
hello-world.yamlwith the following content:
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: hello spec: steps: - name: echo image: alpine script: | #!/bin/sh echo "Hello World"
Apply the changes your cluster:
kubectl apply --filename hello-world.yaml
The output confirms that the Task was completed successfully.
TaskRunobject instantiates and executes this Task. Create another file named
hello-world-run.yamlwith the following content:
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: hello-task-run spec: taskRef: name: hello
Apply the changes to your cluster to launch the Task:
kubectl apply --filename hello-world-run.yaml
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
SUCCEEDEDconfirms that TaskRun completed with no errors.
Take a look at the logs:
kubectl logs --selector=tekton.dev/taskRun=hello-task-run
The output displays the message:
To learn about Tekton Pipelines, skip this section and proceed to the next tutorial.
To delete the cluster that you created for this guide run:
The output confirms that the cluster was deleted:
🔥 Deleting "minikube" in docker ... 🔥 Deleting container "minikube" ... 🔥 Removing /home/user/.minikube/machines/minikube ... 💀 Removed all traces of the "minikube" cluster.
We recommend that you complete Getting started with Pipelines.
For more complex examples see:
Was this page helpful?