Skip to content
Blog
DevOps11 min read

GitOps with ArgoCD: From Messy Pipelines to Declarative Deployments

B

BADJO Dibéa Koffi

Published on May 6, 2026

The Jenkins Era

Our pipeline was 2,000 lines of Groovy across 12 Jenkinsfiles. Each microservice had subtle differences. When a deployment failed at 2 AM, fixing it took 30 minutes of SSH and manual kubectl commands.

What Is GitOps?

Git is the single source of truth. The desired state of your cluster is declared in Git. ArgoCD continuously reconciles actual state with desired state.

ApplicationSet: One Template, All Services

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: microservices
spec:
  generators:
    - git:
        repoURL: https://github.com/our-org/k8s-manifests
        revision: main
        directories:
          - path: services/*
  template:
    metadata:
      name: "{{path.basename}}"
    spec:
      source:
        repoURL: https://github.com/our-org/k8s-manifests
        path: "{{path}}"
      destination:
        server: https://kubernetes.default.svc
        namespace: "{{path.basename}}"
      syncPolicy:
        automated:
          prune: true
          selfHeal: true

Every directory under services/ becomes an ArgoCD Application automatically.

Rollbacks in 10 Seconds

git revert HEAD
git push

ArgoCD syncs. The old version is running within 60 seconds.

What We Gained

MetricJenkinsArgoCD
Deploy time8-15 min2-3 min
Rollback time15-30 min< 1 min
Pipeline code2,000 lines40 lines YAML
Failed deploys/month4-60-1
argocdgitopskubernetesci-cd
Share

Comments