2019-04-26 16:33:16 +00:00
# Tekton Catalog
2019-04-25 21:20:02 +00:00
2020-04-01 10:34:22 +00:00
**If you want `v1alpha1` resources, you need to go to the
2020-05-07 11:53:59 +00:00
[`v1alpha1` ](https://github.com/tektoncd/catalog/tree/v1alpha1 )
branch. The
2021-03-19 10:29:44 +00:00
[`main` ](https://github.com/tektoncd/catalog/tree/main ) branch
2020-06-19 14:08:03 +00:00
is synced with
[`v1beta1` ](https://github.com/tektoncd/catalog/tree/v1beta1 ) since
2020, 19th June.**
2020-04-01 10:34:22 +00:00
2019-04-26 16:33:16 +00:00
This repository contains a catalog of `Task` resources (and someday
`Pipeline` s and `Resource` s), which are designed to be reusable in many
pipelines.
2019-04-25 21:20:02 +00:00
Each `Task` is provided in a separate directory along with a README.md and a
Kubernetes manifest, so you can choose which `Task` s to install on your
2020-07-13 09:56:42 +00:00
cluster. A directory can hold one task and multiple versions.
2019-04-25 21:20:02 +00:00
2020-03-24 15:08:49 +00:00
_See [our project roadmap ](roadmap.md )._
2021-01-28 04:13:31 +00:00
#### [Hub](https://hub.tekton.dev/) provides an easy way to search and discover all Tekton resources
2020-08-25 05:12:06 +00:00
2020-07-13 09:56:42 +00:00
## 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
```yaml
labels:
2021-06-30 13:53:50 +00:00
app.kubernetes.io/version: "0.1" 👈 Version of the resource
2020-07-13 09:56:42 +00:00
annotations:
2021-06-30 13:53:50 +00:00
tekton.dev/pipelines.minVersion: "0.12.1" 👈 Min Version of pipeline resource is compatible
2021-08-18 05:46:48 +00:00
tekton.dev/categories: CLI 👈 Comma separated list of categories
2021-06-30 13:53:50 +00:00
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
2020-07-13 09:56:42 +00:00
spec:
description: |-
ansible-tower-cli task simplifies
2021-06-30 13:53:50 +00:00
workflow, jobs, manage users... 👈 Summary
2020-07-13 09:56:42 +00:00
Ansible Tower (formerly ‘ AWX’ ) is a ...
```
2020-03-24 15:08:49 +00:00
2021-08-18 05:46:48 +00:00
**Note** : Categories are a generalized list and are maintained by Hub. To add new categories, please follow the procedure mentioned [here ](https://github.com/tektoncd/hub/blob/main/docs/ADD_NEW_CATEGORY.md ).
2019-04-25 21:20:02 +00:00
## `Task` Kinds
There are two kinds of `Task` s:
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.
`Task` s in this repo are namespace-scoped `Task` s, but can be installed as
`ClusterTask` s by changing the `kind` .
2019-10-17 16:15:37 +00:00
2019-04-25 21:20:02 +00:00
## Using `Task`s
First, install a `Task` onto your cluster:
```
2020-03-04 15:23:34 +00:00
$ kubectl apply -f golang/build.yaml
task.tekton.dev/golang-build created
2019-04-25 21:20:02 +00:00
```
You can see which `Task` s are installed using `kubectl` as well:
```
$ kubectl get tasks
2020-03-04 15:23:34 +00:00
NAME AGE
golang-build 3s
2019-04-25 21:20:02 +00:00
```
With the `Task` installed, you can define a `TaskRun` that runs that `Task` ,
being sure to provide values for required input parameters and resources:
```
2020-03-10 14:04:04 +00:00
apiVersion: tekton.dev/v1beta1
2019-04-25 21:20:02 +00:00
kind: TaskRun
metadata:
name: example-run
spec:
taskRef:
2020-03-04 15:23:34 +00:00
name: golang-build
2020-03-10 14:04:04 +00:00
params:
- name: package
value: github.com/tektoncd/pipeline
workspaces:
- name: source
persistentVolumeClaim:
claimName: my-source
2019-04-25 21:20:02 +00:00
```
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
2020-03-10 14:04:04 +00:00
apiVersion: tekton.dev/v1beta1
2019-04-25 21:20:02 +00:00
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
...
```
2021-05-05 14:28:25 +00:00
### Using `Task`s through Bundles
[Tekton Bundles ](https://tekton.dev/docs/pipelines/pipelines/#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>` ](https://console.cloud.google.com/gcr/images/tekton-releases/GLOBAL/catalog/upstream?gcrImageListsize=100 ).
For example:
```
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: example-run
spec:
taskRef:
name: golang-build
2022-07-12 19:57:59 +00:00
bundle: gcr.io/tekton-releases/catalog/upstream/golang-build:0.1
2021-05-05 14:28:25 +00:00
params:
- name: package
value: github.com/tektoncd/pipeline
workspaces:
- name: source
persistentVolumeClaim:
claimName: my-source
```
2019-04-25 21:20:02 +00:00
## Contributing and Support
If you want to contribute to this repository, please see our [contributing ](./CONTRIBUTING.md ) guidelines.
2021-03-19 10:29:44 +00:00
If you are looking for support, enter an [issue ](https://github.com/tektoncd/catalog/issues/new ) or join our [Slack workspace ](https://github.com/tektoncd/community/blob/main/contact.md#slack )
2019-10-17 16:15:37 +00:00
## Status of the Project
This project is still under active development, so you might run into
[issues ](https://github.com/tektoncd/catalog/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.
2020-03-24 15:08:49 +00:00
_See [our project roadmap ](roadmap.md )._