Git Product home page Git Product logo

catalog's Introduction

Tekton Catalog

If you want v1alpha1 resources, you need to go to the v1alpha1 branch. The main branch is synced with v1beta1 since 2020, 19th June.

This repository contains a catalog of Task resources (and someday Pipelines 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
    
  2. Resource YAML file includes following changes

  • Labels include the version of the resource.
  • Annotations include minimum pipeline version supported by the resource, tags associated with the resource and displayName of 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.

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 as ClusterTasks 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:
  - 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 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:
  - lastTransitionTime: "2019-04-25T18:10:09Z"
    status: True
    type: Succeeded
...

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 gcr.io/tekton-releases/catalog/upstream/<task-name>:<task-version>. For example:

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: example-run
spec:
  taskRef:
    name: golang-build
    bundle: gcr.io/tekton-releases/catalog/upstream/golang-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.

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 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.

catalog's People

Contributors

vinamra28 avatar vdemeester avatar chmouel avatar puneetpunamiya avatar piyush-garg avatar pratap0007 avatar imjasonh avatar barthy1 avatar afrittoli avatar divyansh42 avatar concaf avatar bobcatfish avatar gijsvandulmen avatar frerikandriessen avatar navidshaikh avatar yuege01 avatar iancoffey avatar natalieparellano avatar bendory avatar wlynch avatar savitaashture avatar jhonis avatar bradbeck avatar pritidesai avatar dlorenc avatar jromero avatar bittrance avatar chanseokoh avatar chitrangpatel avatar jimmyjones2 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.