docs/labels.md
Tekton allows you to use custom Kubernetes Labels to easily mark Tekton entities belonging to the same conceptual execution chain. Tekton also automatically adds select labels to more easily identify resource relationships. This document describes the label propagation scheme, automatic labeling, and provides usage examples.
Labels propagate among Tekton entities as follows:
For Pipelines instantiated using a PipelineRun, labels propagate
automatically from Pipelines to PipelineRuns to TaskRuns, and then to
the associated Pods. If a label is present in both Pipeline and
PipelineRun, the label in PipelineRun takes precedence.
Labels from Tasks referenced by TaskRuns within a PipelineRun propagate to the corresponding TaskRuns,
and then to the associated Pods. As for Pipeline and PipelineRun, if a label is present in both Task and
TaskRun, the label in TaskRun takes precedence.
For standalone TaskRuns (that is, ones not executing as part of a Pipeline), labels
propagate from the referenced Task, if one exists, to
the corresponding TaskRun, and then to the associated Pod. The same as above applies.
Tekton automatically adds labels to Tekton entities as described in the following table.
Note: *.tekton.dev labels are reserved for Tekton's internal use only. Do not add or remove them manually.
Below are some examples of using labels:
The following command finds all Pods created by a PipelineRun named test-pipelinerun:
kubectl get pods --all-namespaces -l tekton.dev/pipelineRun=test-pipelinerun
The following command finds all TaskRuns that reference a Task named test-task:
kubectl get taskruns --all-namespaces -l tekton.dev/task=test-task
Annotation propagate among Tekton entities as follows (similar to Labels):
For Pipelines instantiated using a PipelineRun, annotations propagate
automatically from Pipelines to PipelineRuns to TaskRuns, and then to
the associated Pods. If a annotation is present in both Pipeline and
PipelineRun, the annotation in PipelineRun takes precedence.
Annotations from Tasks referenced by TaskRuns within a PipelineRun propagate to the corresponding TaskRuns,
and then to the associated Pods. As for Pipeline and PipelineRun, if a annotation is present in both Task and
TaskRun, the annotation in TaskRun takes precedence.
For standalone TaskRuns (that is, ones not executing as part of a Pipeline), annotations
propagate from the referenced Task, if one exists, to
the corresponding TaskRun, and then to the associated Pod. The same as above applies.