GitHub - tektoncd/catalog: Catalog of shared Tasks and Pipelines. (original) (raw)

Important

Migrate Images from gcr.io to ghcr.io.

To reduce costs, we've migrated all our new and old Tekton releases to the free tier on ghcr.io/tektoncd.
Read more here.


Tekton Catalog

If you want v1alpha1 resources, you need to go to thev1alpha1branch. Themain branch is synced withv1beta1 since 2020, 19th June.

This repository contains a catalog of Task resources (and somedayPipelines and Resources), which are designed to be reusable in many pipelines.

Each 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

Catalog Structure

  1. 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  
  1. Resource YAML file includes following changes

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.

Task Kinds

There are two kinds of Tasks:

  1. ClusterTask with a Cluster scope, which can be installed by a cluster operator and made available to users in all namespaces
  2. Task with 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 asClusterTasks by changing the kind.

Using Tasks

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

With the Task installed, you can define a TaskRun that runs that Task, 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:

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 TaskRun using kubectl:

$ 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:

Using 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 ghcr.io/tektoncd/catalog/upstream/tasks/:. For example:

apiVersion: tekton.dev/v1beta1 kind: TaskRun metadata: name: example-run spec: taskRef: name: golang-build bundle: ghcr.io/tektoncd/catalog/upstream/tasks/golang-build:0.1 params:

Contributing and Support

If you want to contribute to this repository, please see our contributing guidelines.

If you are looking for support, enter an issue or join our Slack workspace

Status of the Project

This project is still under active development, so you might run intoissues. 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.