CI/CD Pipeline Design and Implementation Using Tekton, Argo CD, and Redmine on Kubernetes
This article describes a cloud‑native CI/CD pipeline built on Kubernetes that leverages Tekton for continuous integration, Argo CD for continuous deployment, and Redmine for project management, detailing system design, task flow, usage steps, and achieved operational benefits.
1. Background
CI/CD introduces automation to frequently deliver applications, addressing integration hell, shortening release cycles, and reducing both monetary and time costs.
2. System Design
The pipeline uses Redmine as the entry point, Kubernetes as the execution environment, Tekton to implement CI functions, and Argo CD to continuously monitor and deploy applications.
2.1 Kubernetes Overview
Kubernetes is an open‑source platform for managing containerized applications across multiple hosts, ensuring that workloads run in the desired state and simplifying deployment, updates, and maintenance.
2.2 Tekton Overview
Tekton is a Kubernetes‑native, cloud‑native CI/CD framework that defines four core concepts: Task, TaskRun, Pipeline, and PipelineRun. Tasks are the smallest executable units, Pipelines compose multiple Tasks, and their runs generate corresponding TaskRun and PipelineRun resources.
Task: the smallest, indivisible build unit, composed of one or more Steps (each Step runs in a Container).
Pipeline: a collection of Tasks arranged in a directed acyclic graph (DAG) to express execution order and dependencies.
PipelineRun: the actual execution instance of a Pipeline.
TaskRun: the execution instance of a Task, created by a PipelineRun.
2.3 Argo CD Overview
Argo CD is a declarative GitOps continuous‑deployment tool for Kubernetes. It continuously watches the desired state defined in Git repositories and synchronizes the cluster state accordingly, supporting tools such as Helm, Kustomize, and plain YAML.
2.4 Redmine Integration
Redmine serves as the project‑management platform that stores GitLab repository information, branch data, and CI/CD parameters. When a new pipeline task is created, Redmine pushes the parameters to Tekton, and after a successful build, it receives archive links and creates update tasks automatically.
3. Pipeline Usage
The usage flow includes four main steps: (1) configure GitLab parameters; (2) synchronize Redmine project settings; (3) create a test‑order task and generate a test request; (4) add a new pipeline, confirm auto‑filled fields, and start the build. Most parameters are auto‑filled; users only need to verify and submit.
4. Pipeline Task Processing Flow
Tasks are received by Tekton Trigger, which extracts event data via EventListener, Trigger, TriggerTemplate, TriggerBinding, and optional Interceptor. The pipeline then executes a series of Tasks such as code checkout, profile resolution, Maven build, Docker image creation, Argo CD sync, and notification tasks. Finally tasks (e.g., status update, error notifications) run in parallel regardless of earlier success or failure, ensuring comprehensive reporting.
Key tasks include:
copy‑all‑code, fetch‑main‑code, fetch‑project‑code
profiles‑resolve, maven‑run, archive
docker‑build, branch‑to‑argocd‑version, push‑argocd‑app‑code
argocd‑task‑sync‑and‑wait, dingtalk‑app‑start‑success
redmine‑new‑update‑task, message‑dingtalk, notify‑admin‑onerror, etc.
The execution order is controlled by runAfter and conditional when clauses; tasks without runAfter may run in parallel.
name: redmine-new-update-task
retries: 1
taskRef:
name: redmine
runAfter:
- archive
when:
- input: "$(params.issue_id)"
operator: notin
values: [ "" ]
- input: "$(params.new_update_issue_flag)"
operator: in
values: [ "true" ]5. Results and Plans
Compared with traditional Jenkins builds, the new pipeline reduces repetitive job configuration, lowers learning costs, leverages Kubernetes rolling updates for zero‑downtime deployments, automates dependency fixes, and provides immediate failure notifications. It has processed 3,987 build requests and executed 8,140 pipeline runs within six months, supporting 12 code‑structure types across 10 product lines and 67 environments.
Future plans include fully virtualizing servers, integrating all test environments into the pipeline, and adding unit‑test and automated‑test stages to further improve reliability and speed.
Zhengtong Technical Team
How do 700+ nationwide projects deliver quality service? What inspiring stories lie behind dozens of product lines? Where is the efficient solution for tens of thousands of customer needs each year? This is Zhengtong Digital's technical practice sharing—a bridge connecting engineers and customers!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.