Adopting GitOps with ArgoCD at AirQo: Challenges, Solutions, and Lessons Learned
This article recounts AirQo's transition from a traditional CI/CD workflow to a GitOps model using ArgoCD, detailing the operational pain points they faced, the benefits gained such as automated sync, self‑service for developers, and easier rollbacks, and offering practical insights for similar cloud‑native teams.
GitOps, introduced by Weaveworks in 2017, is a modern approach to managing cloud‑native systems on Kubernetes by treating the entire application stack—including infrastructure, networking, code, and pipelines—as declarative, policy‑as‑code definitions stored in Git.
AirQo, a cleantech startup delivering air‑quality data across African cities via mobile apps, web apps, and an API, runs several backend microservices on Kubernetes clusters. Their monorepo contains all product code and corresponding Kubernetes manifests, managed with a Gitflow workflow.
Initial setup : Early on, GitHub Actions handled both integration and deployment, pushing images to Google Container Registry (GCR) but never updating the Kubernetes manifests with the new image tags. This caused divergence between the deployed state and the Git repository, leading to several challenges:
Difficulty determining the actual resource definitions of applications on the cluster.
Lack of visibility for developers, who were unfamiliar with kubectl commands and had to rely on DevOps engineers for logs and troubleshooting.
Increased workload for the operations team, which had to maintain direct access to clusters via kubeconfig for even basic tasks.
Complex rollback procedures, requiring manual retrieval of previous image tags from GCR and patching manifests.
How we got there : The monorepo’s intertwined pipelines made it impossible to deploy a single product independently. Seeking an autonomous trigger, the team evaluated ArgoCD, a multi‑tenant GitOps continuous delivery tool. After installing ArgoCD on one cluster, they onboarded the entire team, keeping GitHub Actions for CI and using a Helm config updater for image tags.
ArgoCD removed pain points :
Automatic notifications via Slack when the live state diverges from the Git definition, with automatic syncing to maintain Git as the source of truth.
Developers can now self‑serve: the intuitive ArgoCD UI lets them create applications, view logs, and perform other tasks without operations assistance.
Rollbacks are simplified—reverting a commit in Git automatically deploys the previous image tag.
DevOps engineers can monitor application health across clusters from a mobile device without writing scripts or switching contexts.
In conclusion, AirQo’s recent adoption of GitOps has already delivered significant benefits, and the team believes the methodology will continue to solve many operational challenges as they deepen their usage.
DevOps Cloud Academy
Exploring industry DevOps practices and technical expertise.
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.