Declarative Continuous Deployment for Kubernetes
Find a file
2019-04-04 17:49:34 -07:00
.argo-ci Issue #1012 - kubectl v1.13 fails to convert extensions/NetworkPolicy (#1360) 2019-04-04 08:30:35 -07:00
assets Adds images to resource tree (#1351) 2019-04-03 15:11:48 -07:00
cmd Issue #1366 - Fix null pointer dereference error in 'argocd app wait' (#1380) 2019-04-04 17:49:34 -07:00
common Issue #357 - Expose application nodes networking information (#1333) 2019-03-29 20:59:25 -07:00
controller Adds images to resource tree (#1351) 2019-04-03 15:11:48 -07:00
docs Copy-paste error: clusterResourceWhitelist -> namespaceResourceBlacklist (#1343) 2019-04-01 09:17:09 -07:00
errors Support persistence of repos as secrets 2018-02-21 03:01:43 -08:00
examples MAGA: Make ArgoCD Golang Again! (#1279) 2019-04-04 02:35:13 -07:00
hack Git cloning via SSH was not verifying host public key (#1276) 2019-03-15 14:29:10 -07:00
manifests Use Recreate deployment strategy for controller (#1315) 2019-03-22 11:50:15 -07:00
pkg Adds images to resource tree (#1351) 2019-04-03 15:11:48 -07:00
reposerver MAGA: Make ArgoCD Golang Again! (#1279) 2019-04-04 02:35:13 -07:00
resource_customizations Use paused field in rollout health check (#1321) 2019-03-26 11:07:06 -07:00
server Issue #1294 - CLI diff should take into account resource customizations (#1337) 2019-04-02 13:59:55 -07:00
test Issue #1012 - kubectl v1.13 fails to convert extensions/NetworkPolicy (#1360) 2019-04-04 08:30:35 -07:00
util Issue #1012 - kubectl v1.13 fails to convert extensions/NetworkPolicy (#1360) 2019-04-04 08:30:35 -07:00
.codecov.yml Magically increase the code coverage!!! (#1370) 2019-04-04 10:06:10 -06:00
.dockerignore Refactor packr box usage into new assets library. Add faster DEV_IMAGE build (#1073) 2019-02-01 13:12:52 -08:00
.gitignore Enable code coverage (#500) 2018-08-09 15:54:15 -07:00
.golangci.yml Enables default lint checks, fixes lint and bugs (#1330) 2019-03-28 13:37:53 -07:00
CHANGELOG.md Update CHANGELOG.md for v0.12 release (#1317) 2019-03-22 21:02:20 -07:00
CONTRIBUTING.md Adds images to resource tree (#1351) 2019-04-03 15:11:48 -07:00
Dockerfile Issue #1012 - kubectl v1.13 fails to convert extensions/NetworkPolicy (#1360) 2019-04-04 08:30:35 -07:00
Dockerfile.dev Refactor packr box usage into new assets library. Add faster DEV_IMAGE build (#1073) 2019-02-01 13:12:52 -08:00
Gopkg.lock Adds images to resource tree (#1351) 2019-04-03 15:11:48 -07:00
Gopkg.toml Fixs deps (#1325) 2019-03-26 15:35:32 -07:00
LICENSE Fix LICENSE copyright text 2018-06-21 01:03:50 -07:00
Makefile Adds images to resource tree (#1351) 2019-04-03 15:11:48 -07:00
OWNERS Added OWNERS file 2018-05-02 18:24:50 -07:00
Procfile Force color logging locally (#1316) 2019-03-26 13:59:03 -07:00
README.md Add 'Who uses Argo CD?' section (#1361) 2019-04-02 22:27:54 -07:00
VERSION Update CHANGELOG, docs to use stable tag, and tweak getting started guide (#1005) 2019-01-10 20:56:04 -08:00
version.go gRPC API client and gateway now supply user-agent. Require client min version as v0.11 (#841) 2018-11-28 14:06:02 -08:00

slack codecov

Argo CD - Declarative Continuous Delivery for Kubernetes

What is Argo CD?

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

Argo CD UI

Why Argo CD?

Application definitions, configurations, and environments should be declarative and version controlled. Application deployment and lifecycle management should be automated, auditable, and easy to understand.

Who uses Argo CD?

Organizations below are officially using Argo CD. Please send a PR with your organization name if you are using Argo CD.

  1. Intuit

Getting Started

Quickstart

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

Follow our getting started guide. Further documentation is provided for additional features.

How it works

Argo CD follows the GitOps pattern of using git repositories as the source of truth for defining the desired application state. Kubernetes manifests can be specified in several ways:

  • kustomize applications
  • helm charts
  • ksonnet applications
  • jsonnet files
  • Plain directory of YAML/json manifests
  • Any custom config management tool configured as a config management plugin

Argo CD automates the deployment of the desired application states in the specified target environments. Application deployments can track updates to branches, tags, or pinned to a specific version of manifests at a git commit. See tracking strategies for additional details about the different tracking strategies available.

For a quick 10 minute overview of Argo CD, check out the demo presented to the Sig Apps community meeting: Alt text

Architecture

Argo CD Architecture

Argo CD is implemented as a kubernetes controller 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 the target state is considered OutOfSync. Argo CD reports & visualizes the differences, while providing facilities to automatically or manually sync the live state back 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.

For additional details, see architecture overview.

Features

  • Automated deployment of applications to specified target environments
  • Support for multiple config management/templating 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)
  • Multi-tenancy and RBAC policies for authorization
  • Rollback/Roll-anywhere to any application configuration committed in git repository
  • Health status analysis of application resources
  • Automated configuration drift detection and visualization
  • Automated or manual syncing of applications to its desired state
  • Web UI which provides real-time view of application activity
  • CLI for automation and CI integration
  • Webhook integration (GitHub, BitBucket, GitLab)
  • Access tokens for automation
  • PreSync, Sync, PostSync hooks to support complex application rollouts (e.g.blue/green & canary upgrades)
  • Audit trails for application events and API calls
  • Prometheus metrics
  • Parameter overrides for overriding ksonnet/helm parameters in git

Community Blogs and Presentations

Project Resources

Development Status

  • Argo CD is actively developed and is being used in production to deploy SaaS services at Intuit

Roadmap

v0.13