Tekton library for the KubeRocketCI pipelines.
50K+
The edp-tekton repository consolidates elements for Tekton integration with KubeRocketCI (former EPAM Delivery Platform (EDP)). and disposes of two main components:
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 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:
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.Content type
Image
Digest
sha256:82a5c3ad1…
Size
66.1 MB
Last updated
about 3 hours ago
docker pull epamedp/edp-tekton:0.27.0-SNAPSHOT.1