Presenters
Source
🚀 Level Up Your Argo CD Contributions: A Guide to Local Development
If you have ever considered contributing to the Argo CD project, you might have felt overwhelmed by the initial setup. At a recent talk, Nitish Kumar, a Software Engineer at Akuity, Argo CD maintainer, and CNCF Ambassador, shared his expert insights on streamlining the local development process.
Argo CD is a powerful, distributed system, but its complexity can make local development feel like a daunting task. Nitish breaks down how to move from a “painful” manual workflow to a seamless, automated experience using modern tools.
🧩 The Distributed Development Puzzle
The core challenge of developing for Argo CD lies in its architecture. Because it is a distributed project, it consists of multiple components like the Application Controller, Application Set Controller, Repo Server, and the API Server.
New contributors often face a confusing choice: Which component should I run to see my changes live? While the official documentation is excellent, it offers several different paths—Make targets, Gorman, and Tilt—leaving many to wonder which one fits their specific circumstances.
🛠️ The Traditional Toolkit: Make and Gorman
Historically, contributors relied on a variety of Make targets defined in the Argo CD codebase. Some of the essential targets include:
CLI local: Builds a binary of the CLI containing your local changes. 💾build local: Builds all components (Application Controller, Repo Server, etc.).build UI dependencies: Handles the frontend requirements.codegen local: Used when making API changes (e.g., modifying Helm source) to regenerate mocks. 🤖start local: Launches the services.
⚠️ The Tradeoff: A “Painful” Workflow
Nitish describes the typical manual workflow as a slow and repetitive process. A developer must:
- Make code changes.
- Manually build all binaries.
- Start each service individually.
- Verify the changes.
While Gorman offers some relief by using a procfile to manage these
services, the process remains heavy and manual.
✨ Tilt: The Secret Weapon for Modern Contributors
To solve the friction of manual builds, Nitish recommends Tilt. Instead of
juggling binaries and individual service commands, you simply run tilt up. 🦾
How Tilt Transforms Development:
- Automation: It uses a
Tiltfileto orchestrate the entire environment. - Containerization: Tilt runs all Argo CD components as images within a local Kubernetes cluster. 🌐
- Live Updates: Every time you save a file, Tilt detects the change, rebuilds only the necessary image, and redeploys it.
- Visibility: It provides a sleek UI where you can monitor logs from the Application Controller, Notification Controller, and API Server in one place. 📡
⚡ Speed in Action: A 0.2-Second Turnaround
During a live demonstration, Nitish showed just how efficient this workflow is. By modifying a simple UI element—changing the Application Details Tree text to his own name—Tilt triggered an update almost instantly.
The result? The new image built and deployed in just 0.2 seconds. 🎯
This rapid feedback loop applies to both frontend and backend changes. Whether you are tweaking the UI or modifying the logic in the Application Controller, Tilt ensures your local environment reflects your code in real-time.
🤝 Questions & Community Engagement
Nitish concluded by inviting the community to dive deeper into the project. While the session was a rapid-fire overview, he opened the floor for further interaction at the Argo Project booth during KubeCon.
Key Community Events Mentioned:
- Book Signing: Meet Christian Hernandez and Andrew Block (Argo CD maintainers) at the Akuity booth on Wednesday, March 25, for a signed copy of their book. 📚
- Webinar: Nitish is hosting a webinar specifically designed for those starting their journey with the project.
- Feedback: Contributors can provide feedback on the development process via the QR codes provided in the session.
💡 Final Thoughts
Contributing to one of the world’s most popular GitOps tools shouldn’t be a struggle. By moving away from manual Make builds and embracing Tilt, you can focus on what matters most: writing great code. 👨💻
If you are ready to start, head over to the Argo CD repository, run tilt up,
and see your impact in 0.2 seconds! 🚀