The Result Watcher is a Kubernetes Controller that watches for changes to certain Tekton types and automatically creates/updates their data in the Result API.
The Watcher currently supports the following types:
tekton.dev/v1beta1 TaskRun
tekton.dev/v1beta1 PipelineRun
tekton.dev/v1 TaskRun
tekton.dev/v1 PipelineRun
The Watcher uses Object data to automatically detect and group related Records into the same Result. The following data is checked (listed in order of precedence):
results.tekton.dev/result
annotation. This should correspond to the fullResult.name
identifier (e.g.foo/results/bar
).triggers.tekton.dev/triggers-eventid
label (this is generated from Objects created via Tekton Triggers)- An OwnerReference to a PipelineRun.
If no annotation is detected, the Watcher will automatically generate a new Result name for the Object.
Users and/or integrators can pass arbitrary keys/values to Results by adding special annotations to PipelineRuns and TaskRuns:
results.tekton.dev/resultAnnotations
: a JSON object (string->string) to be stored into theeResult.Annotations
field.results.tekton.dev/recordSummaryAnnotations
: a JSON object (string->string) to be stored into theeResult.Summary.Annotations
field.
Once the Watcher detects those annotations in the observed object, it passes the keys/values to the respective fields of the underlying Result. Those annotations can be used to store relevant metadata (e.g. the Git commit SHA that triggered a PipelineRun) into Results and may be used later to retrieve the objects from the API server. For instance:
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
generateName: hello-run-
annotations:
results.tekton.dev/resultAnnotations: |-
{"repo": "tektoncd/results", "commit": "1a6b908"}
results.tekton.dev/recordSummaryAnnotations: |-
{"foo": "bar"}
When the command line flag is completed_run_grace_period
is set to any value other than 0
, resources will be deleted after the specified duration in the flag, calculated from the time of completion. If the value is < 0
, Runs will be deleted immediately after completion or failure.
The flag check_owner
allows additional check before deleting a resource. If set true
, resources with any owner references set will not be deleted. When the flag is false
, owner references will be not be checked before deletion.
Results stores PipelineRun and TaskRun as v1. If there are older records, it's possible that they are stored as v1beta1. An ability to convert older v1beta1 records to v1 will be added later on.