1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-23 06:08:46 +00:00
This is a mirror of https://github.com/tektoncd/catalog.git because the tekton git resolver does not support caching of git repositories so each CI build is firing off many fetches of to github. By maintaining a mirror, I have a locally cached copy on the same physical machine as my CI jobs.
Go to file
David Freilich 91fedc066b Update Buildpacks task to use Creator binary, in place of calling individual phases
With the release of Platform API 0.3 (implemented in github.com/buildpacks/lifecycle v0.7.0), there is a creator binary that simplifies the CNB experience; calling it runs all of the individual lifecycle phases, and minimizes the number of separate containers needed for the process. As such, we moved the buildpacks task to use it.

At the same time, it is also helpful, in some scenarios, to run the individual phases; it allows for greater control of secrets, amongst other things. As such, we moved the original task to buildpacks-separate-phases to allow users the choice.

This commit also updates the READMEs, making them a bit clearer about what CNBs are and what the tasks do, as well as adding in the Paketo builders to the example builders.

Signed-off-by: David Freilich <dfreilich@vmware.com>
2020-07-22 08:22:00 +01:00
.github Add manual validation checks to comply with Catalog Org TEP 2020-07-13 15:41:58 +01:00
task Update Buildpacks task to use Creator binary, in place of calling individual phases 2020-07-22 08:22:00 +01:00
test Refactor sidecar script 2020-07-22 07:58:00 +01:00
vendor/github.com/tektoncd/plumbing Bump plumbing to recent master 👼 2020-05-06 18:56:36 +01:00
.yamllint Linting yamls with yamllint 🏷 2019-11-15 09:39:31 -06:00
code-of-conduct.md
CONTRIBUTING.md Handle TaskRun as well as PipelineRun tests 2020-04-08 23:15:01 +01:00
DEVELOPMENT.md Combine DEVELOPMENT.md and CONTRIBUTING.md 2020-03-03 10:51:45 -06:00
Gopkg.lock Bump plumbing to latest changes 🔗 2019-11-15 09:52:31 -06:00
Gopkg.toml
LICENSE
OWNERS Add @chmouel as an OWNER 2019-11-15 09:04:31 -06:00
README.md Update readme to have structure for resource as per new catalog proposal 2020-07-13 13:41:58 +01:00
recommendations.md Add a "Run as non root" recommandation… 2020-06-10 09:02:55 +01:00
roadmap.md Add 2020 roadmap 🛣️ 2020-04-07 06:59:00 +01:00

Tekton Catalog

If you want v1alpha1 resources, you need to go to the v1alpha1 branch. The master 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.

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/tags: "ansible, cli"             👈 Comma separated list of tags
    tekton.dev/displayName: "Ansible Tower Cli" 👈 displayName can be optional

spec:
  description: |-
    ansible-tower-cli task simplifies
    workflow, jobs, manage users...             👈 Summary

    Ansible Tower (formerly AWX) is a ...    

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

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.