Cloud Native 18 min read

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.

Zhengtong Technical Team
Zhengtong Technical Team
Zhengtong Technical Team
CI/CD Pipeline Design and Implementation Using Tekton, Argo CD, and Redmine on Kubernetes

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.

cloud-nativeCI/CDautomationkubernetesDevOpsArgo CDTekton
Zhengtong Technical Team
Written by

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!

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.