Getting started with Tasks
This tutorial shows you how to
- Create a Kubernetes cluster with minikube.
- Install Tekton pipelines.
- Create a Task.
- Use
TaskRunto instantiate and run your Task.
Prerequisites
-
Install minikube. You only have to complete the step 1, “Installation”.
Create your Kubernetes cluster
Create a cluster
minikube start
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 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 kubectl:
kubectl cluster-info
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:kubectl apply --filename \ https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml -
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.
-
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.yamlThe output confirms that the Task was completed successfully.
task.tekton.dev/hello created -
To run this Task, you must instantiate it using
TaskRun. Create another file namedhello-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-runThe output of this command shows the status of the Task
NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME hello-task-run True Succeeded 22h 22h
The value
TrueunderSUCCEEDEDconfirms that TaskRun completed with no errors. -
Take a look at the logs:
kubectl logs --selector=tekton.dev/taskRun=hello-task-runThe output displays the message:
Hello World
Cleanup
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.
Feedback
Was this page helpful?
Thanks! Tell us how we can further improve.
Sorry about that. Tell us how we can further improve.