tektoncd / results

Long term storage of execution results.
Apache License 2.0
78 stars 74 forks source link
hacktoberfest tekton tekton-results

Tekton Results

GoDoc Go Report Card

Tekton Results aims to help users logically group CI/CD workload history and separate out long term result storage away from the Pipeline controller. This allows you to:

Additional background and design motivations can be found in TEP-0021.

Overview

Tekton Results is composed of 2 main components:

Life of a Result

sequenceDiagram
  actor U as Users
  participant PC as Pipeline Controller
  participant RW as Result Watcher
  participant RA as Result API
  U->>PC: Create PipelineRun/TaskRun
  RW-->>PC: Watch PipelineRun/TaskRun
  Note over PC,RW: Wait for PipelineRun/TaskRun Completion
  RW->>RA: Update results database
  U--)RA: Get Results
  1. User creates a TaskRun or PipelineRun via the Kubernetes API as usual.
  2. Result Watcher listens for all TaskRun/PipelineRun changes.
  3. If a TaskRun/PipelineRun has changed, Watcher updates (or creates) a corresponding Record (and Result if necessary using the Results API.
    • Watcher will also annotate the original TaskRun/PipelineRun with identifiers as well.
  4. Users can get/query Result/Record data directly from the API. Once the TaskRun/PipelineRun is complete and has been successfully stored in the Result API, the original CRD object can be safely removed from the cluster.

Getting Started

  1. Installation
  2. Results API: Learn how to connect to the API and make queries.
  3. Watcher: Learn what types the Watcher supports and how it determines Result groupings.

Data Model

graph BT
  B(TaskRun) --> |Record| A[Result]
  C(Log) --> |Record| A
  D(PipelineRun) --> |Record| A

(Note: not all of these types of data are supported by the Watcher yet, but are examples of the data we intend to support).

Helpful links

Contact