Introducing Argo CD — Declarative Continuous Delivery for Kubernetes
Our first Argo project, Argo Workflows, is an open-source container-native workflow engine for Kubernetes. The project is widely for simple CI/CD pipelines to DAG-based machine learning and data analytics workflows and is growing faster than ever. A big thanks to our awesome community of contributors and users!
Last month, we also announced Argo Events to provide an event-based dependency manager for automatically triggering Argo workflows and other actions in Kubernetes.
Today, we are thrilled to announce Argo CD, a new, Kubernetes-native open source project brought to you by the Argo community and Intuit to provide a declarative continuous delivery (CD) system. Argo CD supports a variety of configuration management tools, including ksonnet/jsonnet and Helm.

Why Argo CD?
Argo CD extends the benefits of declarative specifications and Git-based configuration management to accelerate deployment and lifecycle management of applications without compromising security and compliance. The fundamental requirements for Argo CD are:
- Configuration of applications and their deployment environments should be declarative and version controlled.
- Application deployment and lifecycle management should be simple, automated, and auditable.
- Application deployments should be fast, reliable, and idempotent.
- Any deviation from the version controlled configuration should be immediately detected and remediated.
- Rollbacks should be as simple as deploying a different configuration.
Intuit started the Argo CD project to address a need for a fast, reliable continuous delivery service for deploying hundreds of microservices across a fleet of Kubernetes clusters using Git as the source of truth for not only application source code but for application and environmental deployment configurations.
Argo CD is the first step in achieving “continuous operations” based on monitoring, analytics, and automated remediation of operational problems based on declarative specifications and automated learning and automated categorization of system behavior.
We examined many existing solutions such as Spinnaker but found that they did not meet our needs.
- Declarative (Kubernetes YAMLs, ksonnet/jsonnet, Helm, kustomize)
- Kubernetes-native
- Git as the source of truth (GitOps)
- Clear separation between CI/Cd (continuous integration/delivery) and continuous deployment (CD) processes
- Enterprise-friendly (auditability, compliance, security, RBAC, SSO)
How does Argo CD work?
Argo CD uses git repositories as the source of truth for the desired state of applications and the target deployment environments. Kubernetes manifests can be specified as YAML files, ksonnet/jsonnet applications or Helm packages. Argo CD automates the synchronization of the desired application state with each of the specified target environments. Here is a high-level architectural view-

Argo CD is implemented as a Kubernetes CRD which continuously monitors running applications and compares the current, live state against the desired target state (as specified in the git repo). A deployed application whose live state deviates from its target state is considered out-of-sync. Argo CD reports & visualizes any deviation as well as provides mechanisms to automatically or manually sync the live state to the desired target state. Any modifications made to the desired target state in the git repo can be automatically applied and reflected in the specified target environments.
You can get started in 2 easy steps
- Define your App and environment configs in a Git repo
- Argo monitors and syncs your app between Git config and the Kubernetes cluster using any pipeline (Argo CI, Jenkins, etc.), CLI or UI.
Pull or push?
There are a couple of different ways of doing declarative continuous delivery. Pull model is where the CD system (Argo CD) continuously monitors and updates the application’s state on the Kubernetes cluster to the target state defined in Git. In the push model, a user initiates the update from an external system using a CI pipeline.
Argo CD supports both the pull and the push-based GitOps model to sync target environments with desired application state. At Intuit, we follow the push model and invoke Argo CD from a CD pipeline (Jenkins) for security and compliance reasons.


Argo CD features
- Syncing of applications to its desired state as defined in Git using variety of configuration management tools such as ksonnet/jsonnet, Helm and kustomize.
- Automated deployment of applications to specified target environments.
- Continuous monitoring of deployed applications.
- Web and CLI based visualization of applications and differences between current and target state.
- Rollback/Roll-anywhere to any application state committed in the git repository.
- PreSync, Sync, PostSync hooks to support complex application rollouts (e.g.blue/green & canary upgrades).
- SSO Integration (OIDC, LDAP, SAML 2.0, GitLab, Microsoft, LinkedIn).
- Webhook integration (GitHub, BitBucket, GitLab).
- Can be used standalone or as part of an existing pipeline tools such as Argo Workflow, Jenkins, etc.
- Future support for Kubernetes Application CRD once it is released
We’ve recently demoed Argo CD in Kubernetes SIG Apps. Any feedback is welcomed!
Thank you,
The Argo CD Community