Tekton is a Google-developed open-source framework for creating continuous integration and deployment (CI/CD) systems. With Tekton, you may build, test, and deploy code across a variety of environments in an easy, quick, and standardized way.
Tekton is Kubernetes-native and works well with widely-adopted CI/CD solutions, such as Jenkins/Jenkins X, Skaffold, and Knative. It is flexible, and supports many advanced CI/CD patterns, including rolling, blue/green, and canary deployment.
This playground features a single-node Kubernetes cluster with Tekton installed, so that you can experiment, explore, and learn about Tekton as you see fit. The following components are available:
- Tekton pipelines
- Tekton triggers
- Tekton dashboard
- Tekton CLI
Additionally, the Kubernetes cluster includes:
- A Persistent Volume for running Tekton
- Volumes for mounting the Docker socket and storage from the playground environment into your Tekton pipelines
Katacoda is now starting your experimental Kubernetes cluster and configuring Tekton. It may take a few moments to complete.
Check installation progress
kubectl cluster-info to check if the Kubernetes cluster has
been started. You should see the addresses of your Kubernetes cluster master
node and DNS in the output.
kubectl get pods --namespace tekton-pipelines to check if
Tekton has been installed. All 5 components listed in the output should
have the status
The playground is now fully functional. For more information about Tekton, see Tekton Documentation.
tkn for help and instructions.
If you would like to use Docker in your Tekton pipelines, mount the Docker socket and storage from the playground environment into Kubernetes with the following two Persistent Volume Claims:
dlib-vol-claim(mount at path
dsocket-vol-claim(mount at path
For example, if you would like to use Docker to build an image
your Tekton workflow, specify a Tekton task as follows:
apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: mytask spec: inputs: ... steps: - name: docker image: docker command: - docker args: ... volumeMounts: - name: dsocket mountPath: /var/run/docker.sock - name: dlib mountPath: /var/lib/docker volumes: - name: dsocket persistentVolumeClaim: claimName: dsocket-vol-claim - name: dlib persistentVolumeClaim: claimName: dlib-vol-claim