Skip to content

Catalog of Tekton resources (Tasks, Pipelines, …) by Red Hat

License

Notifications You must be signed in to change notification settings

openshift-pipelines/tektoncd-catalog

Repository files navigation

Red Hat Tekton Catalog

Artifact Hub Artifact Hub

Introduction

This is the home of the catalog of Red Hat Tekton resources. The repository contains a catalog of Task resources (someday Pipelines and more), designed to be reusable in many Pipelines, authored and supported by Red Hat.

These Task and Pipeline are coming from the external repositories releases, maintained by different teams from Red Hat and partners. See here to know where they are pulled from.

As of today, they are indexed by ArtifactHub in several catalogs:

The main branch of the repository contains the configuration and tooling to maintain the catalog. The p branch is where the the catalog gets "persisted" and should be consumed.

Each Task is provided in a separate directory along with README.md and Kubernetes manifests, you can choose which Tasks to install on your cluster. A directory can hold one task and multiple versions.

The layout of this repository (branch p) the follows the Tekton Catalog Organization (TEP-0003).

Usage

This section explains how to use the catalog (p branch) with the help of various tools like Tekton Resolvers as well as Pipelines as Code.

Tekton Git Resolver

Tekton Git Resolver retrives the resources directly from this repository p branch, like the following TaskRun example:

---
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: task-git
spec:
  taskRef:
    resolver: git
    params:
      - name: url
        value: https://github.com/openshift-pipelines/tektoncd-catalog
      - name: revision
        value: p
      - name: pathInRepo
        value: tasks/task-git/0.1.0/task-git.yaml

The same approach work for PipelineRun resources.

Pipeline As Code

Make sure Pipeline-as-Code (PaC) is installed and ready on your cluster. For OpenShift Pipelines, you can define a TektonConfig with this catalog by default, i.e:

---
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  pipeline:
    git-resolver-config:
      default-url: https://github.com/openshift-pipelines/tektoncd-catalog
      default-revision: p
      fetch-timeout: 1m 

Then, on the repositories being watched by PaC you can consume this catalog resources like the following example:

---
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: task-git
spec:
  taskRef:
    resolver: git
    params:
      - name: pathInRepo
        value: tasks/task-git/0.1.0/task-git.yaml

Skipping the repository url and revision from .spec.taskRef.params[].

Alternatively the same notation supported described on Tekton Git Resolver section is supported by PaC.

Contributing

The Tekton resources on this repository are following the policies defined here, on a adding new external repositories references please observe these linting rules first.

External repositories must define a catalog.yaml manifest, which describes all the Tekton resource on the repository revision, release page or tag, guiding the automation through its directory structure.

To provide your tasks and pipelines to this published version of this repository (the p branch), please follow this workflow.