argocd-agent

module
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2025 License: Apache-2.0

README ΒΆ

argocd-agent ✨

Integration tests Go Report Card codecov

Scale Argo CD across hundreds of clusters with a single pane of glass 🌐

Imagine managing GitOps deployments across edge locations, multiple cloud providers, air-gapped environments, and remote sitesβ€”all from one central dashboard. argocd-agent makes this reality by extending Argo CD with a distributed architecture that brings the control plane to you, no matter where your workloads live.

πŸš€ Why argocd-agent?

The Challenge: Traditional multi-cluster Argo CD setups hit walls when scaling to hundreds of clusters, especially across unreliable networks, air-gapped environments, or edge locations.

The Solution: argocd-agent flips the scriptβ€”instead of your control plane reaching out to remote clusters, lightweight agents reach back to a central hub. This "pull model" enables:

βœ… Massive Scale: Manage thousands of applications across hundreds of clusters
βœ… Network Resilience: Works with intermittent connections, high latency, or restricted networks
βœ… Edge-Friendly: Perfect for IoT, retail, manufacturing, or remote deployments
βœ… Air-Gap Ready: Secure deployments that never expose cluster internals
βœ… Cloud Agnostic: Seamlessly span AWS, GCP, Azure, on-premises, and hybrid environments

🎯 Perfect For

  • 🏭 Manufacturing: Deploy to factory floors and remote facilities
  • πŸ›’ Retail: Manage point-of-sale and in-store systems across locations
  • 🚒 Edge Computing: IoT deployments, autonomous vehicles, ships, and remote sites
  • πŸ›οΈ Enterprise: Multi-datacenter deployments with strict security requirements
  • ☁️ Multi-Cloud: Unified GitOps across different cloud providers
  • πŸ”’ Air-Gapped: Secure environments with restricted network access

⚑ Quick Start

Get up and running in minutes! Check out our Getting Started Guide for step-by-step instructions.

# 1. Set up the control plane (where your Argo CD UI lives)
kubectl apply -k https://github.com/argoproj-labs/argocd-agent/install/kubernetes/principal

# 2. Deploy agents to your workload clusters
kubectl apply -k https://github.com/argoproj-labs/argocd-agent/install/kubernetes/agent

# 3. Watch the magic happen ✨

Want to try it out? Our getting started guide gets you running with a local environment in under 10 minutes.

πŸ—οΈ How It Works

Think of argocd-agent as a hub-and-spoke architecture where agents reach back to the control plane:

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚  Control Plane  β”‚  ← Your Argo CD UI and API
    β”‚   (The Hub)     β”‚     (No outbound connections needed!)
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β–² β–² β–²
              β”‚ β”‚ β”‚
              β”‚ β”‚ β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ └─────────────┐
β”‚               β”‚               β”‚
β”‚               β”‚               β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Agent 1 β”‚ β”‚ Agent 2 β”‚ β”‚ Agent N β”‚  ← Each agent connects independently
β”‚ AWS     β”‚ β”‚ Factory β”‚ β”‚ Edge    β”‚     (Pull model - no inter-agent links!)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸŽ›οΈ Control Plane: Your familiar Argo CD interfaceβ€”manage everything from one place
πŸ€– Agents: Lightweight components that reach out and connect to the hub
πŸ”„ Smart Sync: Agents pull configuration and push status updates automatically

Two Flavors, One Experience

🎯 Managed Mode: Perfect for centralized control

  • Deploy applications from your control plane to remote clusters
  • Ideal for rolling out updates, managing configurations, and maintaining consistency

🦾 Autonomous Mode: Built for independence

  • Remote clusters manage their own applications (via GitOps)
  • Control plane provides observability and monitoring
  • Perfect for air-gapped or highly autonomous environments

Mix and match modes across your fleetβ€”some clusters managed, others autonomous, all visible from one dashboard.

🌟 Key Features

πŸ›‘οΈ Security First
  • mTLS everywhere: All communications are encrypted and authenticated
  • Zero trust: Control plane never needs direct cluster access
  • Certificate-based auth: Strong identity verification for every agent
🌐 Network Resilient
  • Intermittent connections: Agents work offline and sync when possible
  • High latency tolerant: Designed for satellite links, cellular, and unreliable networks
  • HTTP/1.1 compatible: Works through corporate proxies and legacy infrastructure
πŸ“Š Unified Observability
  • Single pane of glass: See all clusters, applications, and deployments in one view
  • Real-time status: Health, sync status, and metrics from all environments
  • Live resources: Inspect Kubernetes resources across your entire fleet
βš™οΈ Operationally Friendly
  • Lightweight: Minimal resource footprint on remote clusters
  • Self-healing: Agents automatically reconnect and recover
  • Easy upgrades: Rolling updates without downtime

🚧 Current Status

🌱 Early Days: argocd-agent is in active development and not yet ready for production use. We're building in the open to collaborate with the community and gather feedback early.

What works today:

  • βœ… Basic hub-and-spoke architecture
  • βœ… Application deployment and status sync
  • βœ… Multi-cluster observability
  • βœ… Both managed and autonomous modes
  • βœ… Live resource viewing and manipulation
  • βœ… Custom resource actions
  • βœ… Resource proxy for transparent cluster access

Coming soon:

  • 🚧 Pod logs streaming
  • 🚧 Advanced RBAC and multi-tenancy
  • 🚧 Enhanced UI integrations
  • 🚧 Production hardening

Track our progress in the roadmap and milestones.

🀝 Join the Community

We're building argocd-agent together! Whether you're a GitOps veteran or just getting started, there are many ways to contribute:

πŸ’¬ Get Help & Share Ideas

πŸ› οΈ Contribute

πŸ“– Learn More

🏒 Production Ready?

argocd-agent is not yet production-ready but we're working hard to get there! If you're interested in:

  • πŸ§ͺ Testing in dev/staging environments
  • 🀝 Contributing to development
  • πŸ’Ό Enterprise partnerships
  • πŸ—£οΈ Speaking about your use case

We'd love to hear from you! Start a discussion or reach out on Slack.

πŸ“œ License

argocd-agent is licensed under the Apache License 2.0.


Built with ❀️ by the Argo community

⭐ Star us on GitHub | πŸ“– Read the Docs | πŸ’¬ Join the Discussion

Directories ΒΆ

Path Synopsis
cmd
argocd-agent command
ctl command
internal
argocd/cluster
Package cluster implements various functions for working with Argo CD cluster configuration.
Package cluster implements various functions for working with Argo CD cluster configuration.
backend
Package backend provides the interface for implementing Application providers.
Package backend provides the interface for implementing Application providers.
backend/kubernetes/application
Package kubernetes implements an Application backend that uses a Kubernetes informer to keep track of resources, and an appclientset to manipulate Application resources on the cluster.
Package kubernetes implements an Application backend that uses a Kubernetes informer to keep track of resources, and an appclientset to manipulate Application resources on the cluster.
backend/kubernetes/appproject
Package kubernetes implements an AppProject backend that uses a Kubernetes informer to keep track of resources, and an appclientset to manipulate AppProject resources on the cluster.
Package kubernetes implements an AppProject backend that uses a Kubernetes informer to keep track of resources, and an appclientset to manipulate AppProject resources on the cluster.
clock
Package clock provides abstraction for the system clock.
Package clock provides abstraction for the system clock.
config
Package config provides functions and constants around the configuration of the various argocd-agent components.
Package config provides functions and constants around the configuration of the various argocd-agent components.
env
logging
Package logging provides centralized logging functionality for ArgoCD Agent.
Package logging provides centralized logging functionality for ArgoCD Agent.
logging/examples
Package examples demonstrates how to migrate existing logging code to use the centralized logging package.
Package examples demonstrates how to migrate existing logging code to use the centralized logging package.
logging/logfields
Package logfields defines structured logging field names used across ArgoCD Agent packages.
Package logfields defines structured logging field names used across ArgoCD Agent packages.
namedlock
Package namedlock implements primitives for accessing NamedLocks.
Package namedlock implements primitives for accessing NamedLocks.
pkg
resourceproxy
Package resourceproxy implements a very specific, non-general purpose HTTP proxy server for intercepting a configurable list of calls to the Kubernetes API.
Package resourceproxy implements a very specific, non-general purpose HTTP proxy server for intercepting a configurable list of calls to the Kubernetes API.
test
e2e2/fixture
Package fixture provides a client interface similar to the one provided by the controller-runtime package, in order to avoid creating a dependency on the controller-runtime package.
Package fixture provides a client interface similar to the one provided by the controller-runtime package, in order to avoid creating a dependency on the controller-runtime package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL