What is Argo CD?

Argo CD is a continuous deployment (CD) tool for Kubernetes that follows the philosophy of declarative GitOps.

Why Argo CD?

Application definition, configuration, and environment information is declarative and versioned. Application deployment and lifecycle management is fully automated, auditable, and easy to understand.

Getting started guide

Quick start

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Copy the code

Please follow our guide to getting started. More user-facing documentation on additional features is provided. If you are upgrading ArgoCD, refer to the upgrade guide. The developer-oriented documentation is available to people interested in building third-party integrations.

How does it work

The Argo CD follows the GitOps pattern, which uses a Git repository as a real source for defining the required application state. Kubernetes listings can be specified in several ways:

  • Kustomize Applications resource listing
  • Helm Charts Resource list
  • List of Ksonnet Applications resources
  • List of JsonNet Files resources
  • A simple directory of YAML/ JSON resource listings
  • Any custom CONFIGURATION management tool configured as a configuration management plug-in

The Argo CD automatically deploys the required application state in the specified target environment. Application deployment can track updates to branches, tags, or fixed to a specific version of a manifest at Git commit time. For more information about the different tracing policies available, see Tracing Policies.

10 minute quick view of the Argo CD, check out the Demo presented to the Sig Apps community meeting:

architecture

The Argo CD is implemented as a Kubernetes controller that continuously monitors the running application and compares the current active state to the desired target state (specified in the Git repository). Deployed applications whose active state deviates from the target state are marked OutOfSync. The Argo CD reports & visualizes differences while providing the ability to automatically or manually synchronize real-time state back to the desired target state. Any changes made to the desired target state in the Git repository are automatically applied and reflected in the specified target environment.

For more details, see Architecture Overview.

function

  • Automatically deploy the application to the specified target environment
  • Support for multiple configuration management/template tools (Kustomize, Helm, Ksonnet, Jsonnet, plain-YAML)
  • Ability to manage and deploy to multiple clusters
  • SSO integration (OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, LinkedIn)
  • Authorized multi-tenant and RBAC policies
  • Roll back/roll back any application configuration submitted in Git repository
  • Health analysis of application resources
  • Automatically configure drift detection and display
  • Automatically or manually synchronize the application to the desired state
  • A Web UI that provides a real-time view of application activity
  • CLI for automation and CI integration
  • Webhook Integration (GitHub, BitBucket, GitLab)
  • Access token for automation
  • PreSync, Sync, PostSync hooks support complex application publishing (for example, Blue/Green & Canary upgrades)
  • Audit trail for application events and API calls
  • Prometheus indicators
  • Override the parameter overrides for the ksonnet/helm parameter in Git

The development status

The community is actively developing Argo CDS. Our version can be found here.

Adopted organization

Organizations that have officially adopted the Argo CD can be found here.

Refs

  • The official documentation
  • For less continuous sorting of Chinese documents, and nuggets synchronization
  • For less public number: hacker afternoon tea