DevOps April 17, 2026

How We Built a GitOps Deployment Pipeline with ArgoCD, Jenkins, Helm & Harbor

👁 0 views 💬 0 comments ...

A deep dive into how the Syntektra team built a fully automated GitOps deployment pipeline using ArgoCD, Jenkins, Docker, Helm OCI charts, and Harbor private registry — achieving zero-touch deployments on every commit.

How We Built a GitOps Deployment Pipeline with ArgoCD, Jenkins, Helm & Harbor

Overview

At Syntektra Solutions, we believe deployment should be invisible — a natural outcome of pushing good code. To achieve this, we designed and implemented a fully automated GitOps-based deployment pipeline using industry-leading tools: Jenkins, Docker, Helm OCI, Harbor, and ArgoCD.

This post walks through our architecture, the decisions we made, and how everything fits together to deliver continuous deployment with confidence.

The Problem We Were Solving

Before this pipeline, deployments were manual, error-prone, and stressful. Developers had to SSH into servers, pull images, restart services, and pray nothing broke. There was no audit trail, no rollback strategy, and no consistency between environments.

We needed a system where a Git commit is the single source of truth — and the infrastructure automatically converges to match it.

The Architecture

1. Jenkins — Build & Package

Every commit to the main branch triggers a Jenkins pipeline. Jenkins is responsible for:

Using OCI for Helm charts means our charts are versioned, immutable, and stored alongside our Docker images in the same registry — clean and consistent.

2. Harbor — Private Registry

Harbor serves as our central artifact store. It holds:

Harbor gives us vulnerability scanning, role-based access control, and replication policies — critical for a production-grade setup. Every image pushed by Jenkins is immediately scanned before ArgoCD is allowed to deploy it.

3. ArgoCD — GitOps Controller

We deployed ArgoCD on a dedicated server. ArgoCD watches our Git repository for changes to the Helm values files. When a change is detected — such as a new image tag committed by Jenkins — ArgoCD automatically syncs the application state on the target server.

Our ArgoCD Application manifest includes:

4. The GitOps Loop

Here is the full flow on every commit:

  1. Developer pushes code to Git
  2. Jenkins detects the push via webhook
  3. Jenkins builds Docker image → pushes to Harbor
  4. Jenkins builds Helm OCI chart → pushes to Harbor
  5. Jenkins updates the image tag in the Git values file and commits it
  6. ArgoCD detects the values file change in Git
  7. ArgoCD pulls the new Helm chart from Harbor OCI registry
  8. ArgoCD deploys the updated application to the target server
  9. Target server is now running the latest version — automatically

Why This Stack?

Benefits We Gained

Lessons Learned

Setting up OCI-based Helm charts with Harbor required careful attention to authentication — Harbor uses a different credential flow for OCI vs traditional Helm repos. We also learned to keep the values files lean and let the chart handle defaults, making environment-specific overrides minimal and readable.

ArgoCD's self-healing feature is powerful but needs thoughtful configuration — you don't want it fighting with legitimate manual interventions during an incident.

Conclusion

This pipeline transformed how our team ships software. What used to take 30 minutes of careful manual work now happens in under 5 minutes, automatically, on every commit. The confidence it gives the team is invaluable.

If you are looking to implement a similar GitOps pipeline for your infrastructure, reach out to us — we would love to help.

Share this article

📬 Stay Updated

Get the latest insights from Syntektra Solutions delivered to your inbox.

💬 Comments (0)

Leave a Comment

Want to implement something similar?

Our team at Syntektra Solutions can help you design and build modern DevOps pipelines, cloud infrastructure, and AI-powered systems.

Get in Touch
🧠

Syntektra AI

● Online — Ask me anything