edp-tekton

module
v0.26.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2026 License: Apache-2.0

README

codecov

KubeRocketCI Tekton

The edp-tekton repository consolidates elements for Tekton integration with KubeRocketCI (former EPAM Delivery Platform (EDP)). and disposes of two main components:

  • KubeRocketCI Interceptor. Follows Tekton Interceptor paradigm and enriches payload from different Version Control Systems (VCS) like Gerrit, GitHub, GitLab or BitBucket with the platform specific metadata.
  • Tekton Pipelines. Consists of Tekton Tasks, Pipelines, Triggers and implements KubeRocketCI Pipelines logic. Some of the tasks are forks from origin source, the others are platform specific.

KubeRocketCI Interceptor

KubeRocketCI Interceptor is used as a component that provides KubeRocketCI metadata for Tekton Pipelines. The code is based on Upstream implementation.

KubeRocketCI Interceptor extracts information from VCS payload, like repository_name. The repository_name has 1-2-1 mapping with the KubeRocketCI Codebase (kind: Codebase; apiVersion:v2.edp.epam.com/v1). Interceptor populates Tekton Pipelines with Codebase SPEC data, see the diagram below:

    ┌────────────┐              ┌──────────────────┐       ┌─────────────┐
    │            │              │   KubeRocketCI   │       │   Tekton    │
    │  VCS(Git)  ├──────────────►                  ├───────►             │
    │            │              │   Interceptor    │       │  Pipelines  │
    └──────┬─────┘              └────────┬─────────┘       └─────────────┘
           │                             │
    ┌──────┴─────┐                       │ extract
    │    Repo    │                       │
    │            │                       │
    │            │      ┌────────────────▼───────────────┐
    └────────────┘      │ apiVersion: v2.edp.epam.com/v1 │
                        │ kind: Codebase                 │
                        │                                │
                        │ spec:                          │
                        └────────────────────────────────┘

The data, retrieved from the Codebase SPEC, is used in Tekton Pipelines logic. The docker images for Interceptor are available on the DockerHub. The helm-chart for interceptor deployment is in the same repository by the charts/interceptor directory.

Tekton Pipelines

Tekton Pipelines supports four VCS: Gerrit, GitHub, GitLab and BitBucket. To check the VCS Import strategy, please refer to the KubeRocketCI Documentation).

Tekton Pipelines are implemented and packaged using the helm-chart approach. The helm-chart contains:

  • Tasks - basic building block for Tekton. Some of the tasks are forks from Upstream Tekton Catalog.
  • Pipelines, which consist of Tasks and implement logic for the CI flow. KubeRocketCI follows the below approach for pipelines definition:
    • Each type of VCS has its own Pipelines, e.g. for Gerrit, GitHub, GitLab and BitBucket;
    • KubeRocketCI has two types of Pipelines: CodeReview - triggers on Review, Build - triggers on Merged Event.
  • Triggers, TriggerBindings, TriggerTemplates - defines the logic for specific VCS Events (Gerrit, GitHub, GitLab, BitBucket) and Pipelines.
  • Resources - Kubernetes resources, that are used from Pipelines, e.g. ServiceAccount with IRSA Enablement, ConfigMaps for Maven/Gradle Pipelines, Tekton cache, CodeNarc, CTLint, and PVC to share resources between Tasks.
  • Tekton Pipeline pruner - created as a cron job, it is designed to clear outdated pipelines.

Directories

Path Synopsis
cmd
interceptor command
reporter command
pkg
reporter
Package reporter contains the pipeline reporter component that publishes review PipelineRun results as pull request comments to git providers.
Package reporter contains the pipeline reporter component that publishes review PipelineRun results as pull request comments to git providers.
reporter/collector
Package collector gathers per-task and per-step results of a finished PipelineRun, including trailing log lines of failed steps.
Package collector gathers per-task and per-step results of a finished PipelineRun, including trailing log lines of failed steps.
reporter/controller
Package controller reconciles finished review PipelineRuns and publishes their results as pull request comments.
Package controller reconciles finished review PipelineRuns and publishes their results as pull request comments.
reporter/formatter
Package formatter renders a PipelineRun report as a markdown pull request comment.
Package formatter renders a PipelineRun report as a markdown pull request comment.
reporter/gitserver
Package gitserver resolves the git provider connection details for a PipelineRun: Codebase -> GitServer -> access token.
Package gitserver resolves the git provider connection details for a PipelineRun: Codebase -> GitServer -> access token.
reporter/provider
Package provider publishes pipeline report comments to git providers.
Package provider publishes pipeline report comments to git providers.
reporter/provider/bitbucket
Package bitbucket publishes pipeline report comments to Bitbucket Cloud pull requests.
Package bitbucket publishes pipeline report comments to Bitbucket Cloud pull requests.
reporter/provider/github
Package github publishes pipeline report comments to GitHub pull requests.
Package github publishes pipeline report comments to GitHub pull requests.
reporter/provider/gitlab
Package gitlab publishes pipeline report comments as GitLab merge request notes.
Package gitlab publishes pipeline report comments as GitLab merge request notes.
reporter/provider/retry
Package retry holds the shared transient-failure retry policy for git provider API calls.
Package retry holds the shared transient-failure retry policy for git provider API calls.
reporter/provider/types
Package types holds the contracts shared by all git provider implementations.
Package types holds the contracts shared by all git provider implementations.
reporter/secretmask
Package secretmask hides Kubernetes Secret values referenced by a PipelineRun's steps from published log snippets.
Package secretmask hides Kubernetes Secret values referenced by a PipelineRun's steps from published log snippets.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL