Skip to content

Commit 39ccbac

Browse files
authored
docs: Rework general overview and features pages (#494)
Signed-off-by: jannfis <[email protected]>
1 parent 602821d commit 39ccbac

File tree

2 files changed

+137
-39
lines changed

2 files changed

+137
-39
lines changed

docs/features/index.md

Lines changed: 82 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,93 @@
1-
# Features
1+
# Features Overview
22

3-
The `argocd-agent` project provides building blocks to outsource compute in multi-cluster Argo CD setups. The general idea is to install the argocd-application-controller on each managed cluster, while keeping the argocd-server (which includes the API and web UI) on a central control plane cluster. The locations of other components (such as, argocd-redis, argocd-repository-server and argocd-application-controller) vary depending on your needs and requirements. You can read more about this in the [architectural overview](../concepts/architecture.md) section of the docs.
3+
argocd-agent transforms traditional multi-cluster Argo CD deployments by inverting the connection model: instead of a central control plane reaching out to remote clusters, lightweight agents establish connections back to the hub. This architectural shift enables GitOps at scale across distributed, unreliable, and restricted network environments.
44

5-
## Implemented
5+
## Current Capabilities
66

7-
The following features are available and ready to use with the most recent release of argocd-agent:
7+
### Core Architecture
88

9-
* Works with vanilla Argo CD
10-
* Sync protocol based on gRPC and Cloudevents
11-
* Synchronization of Application resources between principal and agents
12-
* Basic synchronization of AppProjects
13-
* Live resource view of managed resources on the agents
14-
* Two distinct sync modes for agents: [managed](../concepts/agent-modes/managed.md) and [autonomous](../concepts/agent-modes/autonomous.md)
15-
* Pluggable authentication methods. Out of the box, mTLS and userpass are supported.
16-
* Pluggable configuration backend. Out of the box, Kubernetes backend is supported.
17-
* A CLI to manage agent configuration on the control plane
9+
**Distributed Compute Model**: Application controllers run locally on workload clusters, reducing control plane load and improving resilience. Each cluster can scale and tune its application controller independently based on local requirements, eliminating the need for complex sharding configurations. The control plane maintains the familiar Argo CD UI and API while agents handle local reconciliation.
1810

19-
## Medium-term road map
11+
**Pull-Based Connectivity**: Agents initiate all connections to the control plane, eliminating the need for the control plane to have direct network access to workload clusters. This enables deployment across NAT boundaries, firewalls, and air-gapped environments.
2012

21-
The following items are planned to be implemented along the GA (1.0) release of argocd-agent:
13+
**Vanilla Argo CD Integration**: Works with standard Argo CD installations without requiring custom forks or patches. Components can be deployed in various configurations depending on your scalability and availability requirements.
2214

23-
* [Make desired manifests accessible to principal](https://github.com/argoproj-labs/argocd-agent/issues/344)
24-
* [Make terminal pods accessible to principal](https://github.com/argoproj-labs/argocd-agent/issues/129)
25-
* [Make pod logs accessible to principal](https://github.com/argoproj-labs/argocd-agent/issues/128)
26-
* [Integrate with OpenTelemetry](https://github.com/argoproj-labs/argocd-agent/issues/119)
27-
* [Integration with SPIFFE for authentication](https://github.com/argoproj-labs/argocd-agent/issues/345)
28-
* [Compression of data exchanged between principal and agents](https://github.com/argoproj-labs/argocd-agent/issues/113)
15+
### Operational Modes
2916

30-
## Longer-term road map
17+
**[Managed Mode](../concepts/agent-modes/managed.md)**: Applications are defined on the control plane and distributed to agents. Ideal for centralized governance and policy enforcement across multiple clusters.
3118

32-
* [High availability for the principal](https://github.com/argoproj-labs/argocd-agent/issues/186)
19+
**[Autonomous Mode](../concepts/agent-modes/autonomous.md)**: Applications are defined locally on workload clusters and synchronized back for observability. Perfect for edge deployments, air-gapped environments, or scenarios requiring local autonomy.
3320

34-
## Miscellaneous
21+
### Communication Protocol
3522

36-
We track all bugs and feature requests on our [GitHub issue tracker](https://github.com/argoproj-labs/argocd-agent/issues) and map them to particular releases on our [milestones overview](https://github.com/argoproj-labs/argocd-agent/milestones).
23+
**gRPC with CloudEvents**: Efficient bi-directional communication using industry-standard protocols. The connection model supports intermittent connectivity and automatic reconnection.
24+
25+
**mTLS Security**: All communication is secured with mutual TLS authentication. Agents authenticate to the principal using client certificates, eliminating the need for the control plane to store cluster credentials.
26+
27+
**Pluggable Authentication**: Extensible authentication framework supporting mTLS and username/password methods out of the box, with plans for SPIFFE integration.
28+
29+
### Resource Management
30+
31+
**Application Synchronization**: Full lifecycle management of Argo CD Applications, including creation, updates, deletion, and status reporting across the distributed architecture.
32+
33+
**AppProject Distribution**: Basic synchronization of AppProjects with mode-specific behavior. Managed agents receive projects from the control plane, while autonomous agents publish their projects for central visibility.
34+
35+
**Live Resource Access**: Transparent proxying of Kubernetes API requests to workload clusters through the control plane, enabling direct resource inspection and manipulation from the central Argo CD interface despite the distributed architecture.
36+
37+
**Custom Resource Actions**: Full support for executing Argo CD resource actions on workload clusters, allowing custom operations and workflows to be triggered from the central control plane.
38+
39+
### Management Tools
40+
41+
**argocd-agentctl CLI**: Command-line tool for managing agent configurations, certificates, and troubleshooting connectivity issues.
42+
43+
**Pluggable Backends**: Extensible storage backend architecture with Kubernetes as the default implementation, designed to support alternative storage solutions for large-scale deployments.
44+
45+
## Development Status
46+
47+
argocd-agent is in active development and **not yet production-ready**. Current functionality provides a solid foundation for the distributed GitOps vision, but several key features are still under development.
48+
49+
### Known Limitations
50+
51+
- **ApplicationSet Support**: Limited support for ApplicationSets in the current implementation
52+
- **Private Repository Access**: Repository credentials are not synchronized between principal and agents, limiting access to private repositories ([#474](https://github.com/argoproj-labs/argocd-agent/issues/474))
53+
- **Pod Logs**: Log streaming from workload clusters is not yet implemented
54+
- **Terminal Access**: Direct pod terminal access through the control plane is planned but not available
55+
- **High Availability**: Principal component does not yet support high availability configurations
56+
- **Advanced RBAC**: Multi-tenancy and advanced role-based access control features are still being developed
57+
58+
## Development Roadmap
59+
60+
### Near and Mid-term
61+
62+
**Enhanced Observability**
63+
64+
- [Pod log streaming](https://github.com/argoproj-labs/argocd-agent/issues/128) from workload clusters
65+
- [Terminal access](https://github.com/argoproj-labs/argocd-agent/issues/129) to pods on remote clusters
66+
- [Desired manifest access](https://github.com/argoproj-labs/argocd-agent/issues/344) for better debugging
67+
68+
**Protocol Improvements**
69+
70+
- [Private repository support](https://github.com/argoproj-labs/argocd-agent/issues/474) with credential synchronization between principal and agents
71+
- [Data compression](https://github.com/argoproj-labs/argocd-agent/issues/113) for bandwidth-constrained environments
72+
- [OpenTelemetry integration](https://github.com/argoproj-labs/argocd-agent/issues/119) for distributed tracing
73+
- [SPIFFE authentication](https://github.com/argoproj-labs/argocd-agent/issues/345) support
74+
75+
### Long-term Vision
76+
77+
**Scalability Enhancements**
78+
79+
- [High availability](https://github.com/argoproj-labs/argocd-agent/issues/186) for the principal component
80+
- Alternative storage backends for massive scale deployments
81+
- Advanced load balancing and sharding strategies
82+
83+
**Enterprise Features**
84+
85+
- Comprehensive multi-tenancy support
86+
- Advanced RBAC and policy enforcement
87+
- Integration with enterprise identity providers
88+
89+
## Getting Involved
90+
91+
Development happens in the open on [GitHub](https://github.com/argoproj-labs/argocd-agent). We track all features, bugs, and enhancements in our [issue tracker](https://github.com/argoproj-labs/argocd-agent/issues) and organize them into [milestone releases](https://github.com/argoproj-labs/argocd-agent/milestones).
92+
93+
The project welcomes contributions from the community, whether in the form of code, documentation, testing, or feedback from real-world deployments. Join the conversation in [GitHub Discussions](https://github.com/argoproj-labs/argocd-agent/discussions) or the [#argo-cd-agent](https://cloud-native.slack.com/archives/C07L5SX6A9J) Slack channel.

docs/index.md

Lines changed: 55 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,68 @@
1-
# Overview
1+
# argocd-agent - Multi-cluster agent for Argo CD
22

3-
## About argocd-agent
3+
**Distributed GitOps at Scale**
44

5-
The argocd-agent project seeks to enhance the multi-cluster functionality of the popular open-source GitOps tool Argo CD by introducing an agent-based architecture for managing resources across remote clusters.
5+
argocd-agent reimagines multi-cluster GitOps by flipping the traditional architecture on its head. Instead of a central control plane struggling to reach out to hundreds of remote clusters, lightweight agents establish secure connections back to a unified hub. This fundamental shift unlocks GitOps deployment patterns that were previously impossible or impractical.
66

7-
Its primary goals are to improve scalability and security as Argo CD expands beyond just a few clusters, while maintaining the features that users love: ease of use, centralized management, and observability.
7+
## The Challenge
88

9-
Although the argocd-agent project is still in its early stages and not yet stable, everyone is encouraged to try it out, test it, and contribute.
9+
Traditional Argo CD multi-cluster deployments face inherent limitations as they scale:
1010

11-
## About this documentation
11+
- **Network Complexity**: Control planes must maintain direct connections to every managed cluster
12+
- **Security Boundaries**: Clusters behind NATs, firewalls, or in air-gapped environments are difficult to reach
13+
- **Operational Overhead**: Complex sharding, credential management, and network troubleshooting
14+
- **Single Points of Failure**: Centralized application controllers create bottlenecks and reliability risks
1215

13-
This documentation is work-in-progress. It might be outdated, missing important pieces, etc. Feel free to contribute to the documentation by updating, adding and correcting.
16+
These challenges become exponentially more complex when managing dozens or hundreds of clusters across different networks, cloud providers, and security domains.
1417

15-
We do expect good working knowledge of general Argo CD concepts, architecture and terminology from the reader.
18+
## The Solution
1619

17-
## License
20+
argocd-agent introduces a **pull-based architecture** where agents on workload clusters initiate connections to a central control plane. This inversion eliminates most traditional multi-cluster pain points while preserving the familiar Argo CD experience.
21+
22+
**Key Principles:**
23+
24+
- **Agents Connect Inward**: No outbound connections from the control plane
25+
- **Local Reconciliation**: Application controllers run where workloads live
26+
- **Unified Observability**: Single pane of glass for all clusters and applications
27+
- **Standard Argo CD**: Works with vanilla Argo CD installations
28+
29+
See our [Features Overview](./features/index.md) for detailed capabilities and current limitations.
30+
31+
## Project Status
32+
33+
argocd-agent is a **young project in active development**. While not yet production-ready, it already demonstrates the viability of distributed GitOps at scale. The core architecture is stable, and essential features like application synchronization, live resource access, and dual operational modes are working.
34+
35+
**We Need Your Help**
36+
37+
This project thrives on community involvement. Whether you're a GitOps veteran or just curious about distributed architectures, there are many ways to contribute:
1838

19-
The project and all of its code, documentation and assets is available under the Apache 2.0 license.
39+
- **Test and Experiment**: Try argocd-agent in development environments and share your experience
40+
- **Report Issues**: Help us identify bugs, edge cases, and missing features
41+
- **Contribute Code**: Implement new features, fix bugs, or improve performance
42+
- **Improve Documentation**: Help make complex concepts more accessible
43+
- **Share Use Cases**: Tell us about your multi-cluster challenges and requirements
2044

21-
## Architecture
45+
Every contribution, no matter how small, helps shape the future of distributed GitOps.
2246

23-
Please have a look at the [Architecture](./concepts/architecture.md) docs.
47+
## Getting Started
2448

25-
## Contributing
49+
Ready to explore distributed GitOps? Start with our [Getting Started Guide](./getting-started/index.md) to set up a local environment, or dive into the [Architecture Overview](./concepts/architecture.md) to understand how everything fits together.
50+
51+
For existing Argo CD users considering migration, check out our [Migration Guide](./user-guide/migration.md) for a comprehensive transition strategy.
52+
53+
## Community and Support
54+
55+
- **[GitHub Discussions](https://github.com/argoproj-labs/argocd-agent/discussions)** - Ask questions, share ideas, and connect with other users
56+
- **[#argo-cd-agent](https://cloud-native.slack.com/archives/C07L5SX6A9J)** on CNCF Slack - Real-time community chat
57+
- **[Issue Tracker](https://github.com/argoproj-labs/argocd-agent/issues)** - Bug reports and feature requests
58+
- **[Contributing Guide](./contributing/index.md)** - How to get involved in development
59+
60+
## Documentation Notes
61+
62+
This documentation is actively maintained but reflects a rapidly evolving project. Some sections may be incomplete or outdated as we prioritize development velocity. We welcome contributions to improve clarity, accuracy, and completeness.
63+
64+
We assume familiarity with Argo CD concepts, Kubernetes, and GitOps principles. If you're new to these technologies, consider reviewing the [Argo CD documentation](https://argo-cd.readthedocs.io/) first.
65+
66+
## License
2667

27-
We welcome contributions from the community. In order to get started, please take a look at our contribution guide and documentation.
68+
argocd-agent is open source software released under the [Apache 2.0 License](https://github.com/argoproj-labs/argocd-agent/blob/main/LICENSE).

0 commit comments

Comments
 (0)