This repository contains a catalog of
Task resources (and someday
Resources), which are designed to be reusable in many
Task is provided in a separate directory along with a README.md and a
Kubernetes manifest, so you can choose which
Tasks to install on your
cluster. A directory can hold one task and multiple versions.
See our project roadmap.
Hub provides an easy way to search and discover all Tekton resources
Each resource follows the following structure
./task/ 👈 the kind of the resource /argocd 👈 definition file must have same name /0.1 /OWNERS 👈 owners of this resource /README.md /argocd.yaml 👈 the file name should match the resource name /samples/deploy-to-k8s.yaml /0.2/... /golang-build /OWNERS /README.md /0.1 /README.md /golang-build.yaml /samples/golang-build.yaml
Resource YAML file includes following changes
- Labels include the version of the resource.
- Annotations include
minimum pipeline versionsupported by the resource,
tagsassociated with the resource and
displayNameof the resource
labels: app.kubernetes.io/version: "0.1" 👈 Version of the resource annotations: tekton.dev/pipelines.minVersion: "0.12.1" 👈 Min Version of pipeline resource is compatible tekton.dev/categories: CLI 👈 Comma separated list of categories tekton.dev/tags: "ansible, cli" 👈 Comma separated list of tags tekton.dev/displayName: "Ansible Tower Cli" 👈 displayName can be optional tekton.dev/platforms: "linux/amd64,linux/s390x" 👈 Comma separated list of platforms, can be optional spec: description: |- ansible-tower-cli task simplifies workflow, jobs, manage users... 👈 Summary Ansible Tower (formerly ‘AWX’) is a ...
Note : Categories are a generalized list and are maintained by Hub. To add new categories, please follow the procedure mentioned here.
There are two kinds of
ClusterTaskwith a Cluster scope, which can be installed by a cluster operator and made available to users in all namespaces
Taskwith a Namespace scope, which is designed to be installed and used only within that namespace.
Tasks in this repo are namespace-scoped
Tasks, but can be installed as
ClusterTasks by changing the
First, install a
Task onto your cluster:
$ kubectl apply -f golang/build.yaml task.tekton.dev/golang-build created
You can see which
Tasks are installed using
kubectl as well:
$ kubectl get tasks NAME AGE golang-build 3s
Task installed, you can define a
TaskRun that runs that
being sure to provide values for required input parameters and resources:
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: example-run spec: taskRef: name: golang-build params: - name: package value: github.com/tektoncd/pipeline workspaces: - name: source persistentVolumeClaim: claimName: my-source
Next, create the
TaskRun you defined:
$ kubectl apply -f example-run.yaml taskrun.tekton.dev/example-run created
You can check the status of the
$ kubectl get taskrun example-run -oyaml apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: example-run spec: ... status: completionTime: "2019-04-25T18:10:09Z" conditions: - lastTransitionTime: "2019-04-25T18:10:09Z" status: True type: Succeeded ...
Tasks through Bundles
Tekton Bundles are an alpha feature of Tekton pipelines that allows storing
Tasks as bundles in a container registry, instead of as custom resources in etcd in a Kubernetes cluster.
With Tekton Bundles are enabled, it is possible to reference any task in the catalog without installing it first.
Tasks are available at
apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: example-run spec: taskRef: name: golang-build bundle: gcr.io/tekton-releases/catalog/upstream/goland-build:0.1 params: - name: package value: github.com/tektoncd/pipeline workspaces: - name: source persistentVolumeClaim: claimName: my-source
Contributing and Support
If you want to contribute to this repository, please see our contributing guidelines.
Status of the Project
This project is still under active development, so you might run into issues. If you do, please don't be shy about letting us know, or better yet, contribute a fix or feature. Its folder structure is not yet set in stone either.
See our project roadmap.