Tekton Pipelines is a Kubernetes-native CI/CD engine that defines and reconciles custom resources (Task, Pipeline, TaskRun, PipelineRun, StepAction, ResolutionRequest, etc.) to execute containerized workflows. The architecture follows the Kubernetes operator pattern using Knative's controller framework: admission webhooks for validation/defaulting, reconcilers that manage the lifecycle of each resource type, and a sidecar entrypoint binary for step execution. Key subsystems include a pluggable remote resolution framework (git, OCI bundles, HTTP, cluster, hub), CloudEvents-based notifications, SPIRE-based workload identity and provenance, and a DAG scheduler for pipeline task ordering. External dependencies include Kubernetes client-go, Knative/pkg, OpenTelemetry, CloudEvents SDK, sigstore, and various cloud SDKs. The codebase is well-structured with extensive unit and e2e tests, but carries some duplication between legacy and modern resolution packages.
JayeX (jx) is a modular command-line interface (CLI) tool for managing JayeX 3.x, a CI/CD platform for Kubernetes. The application is built with Go and uses the Cobra library for command parsing. It provides commands for managing namespaces, viewing dashboards, upgrading plugins, checking versions, and interacting with various JayeX components. The architecture follows a modular plugin system where core functionality is extended through installable plugins. The tool interacts with Kubernetes clusters via client-go and maintains version information through build-time injection. Entry points are in cmd/main.go which delegates to platform-specific app implementations.
Pipelines-as-Code is a Kubernetes-native CI/CD controller that triggers Tekton PipelineRuns in response to Git webhook events from multiple providers (GitHub, GitLab, Gitea/Forgejo, Bitbucket Cloud/Data Center). In production, it listens for webhook payloads on a configurable endpoint, detects and validates the provider, matches events to PipelineRun templates stored in the repository's `.tekton/` directory using CEL expressions and annotations, resolves remote tasks and pipelines via hub or URL, creates PipelineRun resources with appropriate parameters and secrets, and reports status back to the Git provider (commit statuses, check runs, comments). It supports ChatOps commands (`/test`, `/retest`, `/cancel`), GitOps-style push commands, concurrency limits, automatic cleanup of old PipelineRuns, and optional LLM-driven failure analysis. The architecture consists of three main controllers (controller, watcher, webhook) plus a CLI tool (`tkn-pac`) for bootstrapping, repository management, and local testing. The codebase is well-structured, with clean provider abstractions, a modular queue system, extensive OpenTelemetry instrumentation, and comprehensive test coverage across all providers. While the multi-provider support introduces some duplication, the core patterns (event matching, pipeline resolution, status reporting) are cleanly separated and reusable.
Dekorate is a Java annotation-processing framework that generates Kubernetes, OpenShift, Knative, and other container orchestration manifests at compile time. It is primarily a library consumed by Java applications, especially those built with Spring Boot, Quarkus, Thorntail, or plain Java. The architecture centers around a `Session` that coordinates `ConfigurationGenerator`s, `ManifestGenerator`s, and a graph of `Decorator`s to produce deployment descriptors. It supports multiple platforms via separate annotation modules (e.g., kubernetes-annotations, openshift-annotations, knative-annotations) and integrates with build tools like Docker, Jib, S2I, and Tekton for CI/CD pipelines. The codebase is well-structured with clean abstractions (Decorator, Configurator, SPI factories) and extensive testing, though it suffers from a high module count and some outdated dependencies (e.g., Java 1.8 baseline, old Spring Boot versions in examples). Overall, it is a mature and capable tool for generating Kubernetes manifests from Java annotations.