Declarative Continuous Deployment for Kubernetes
Find a file
Jesse Suen 83fb5fb388
Rename 'controlled resources' to 'managed resources' (#850)
Rename 'resources tree' to 'resource tree'
2018-11-30 10:32:31 -08:00
.argo-ci Serve CLI binaries directly from API server (#837) 2018-11-27 13:39:06 -08:00
cmd Rename 'controlled resources' to 'managed resources' (#850) 2018-11-30 10:32:31 -08:00
common 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
controller Rename 'controlled resources' to 'managed resources' (#850) 2018-11-30 10:32:31 -08:00
docs Fix typo in documentation for hook delete policy (#793) 2018-11-16 12:20:28 -08:00
errors Support persistence of repos as secrets 2018-02-21 03:01:43 -08:00
examples/guestbook Add progressing deadline to test app to fix e2e tets slowness 2018-06-12 08:54:47 -07:00
hack Update kustomize base when setting image tags (#833) 2018-11-28 13:55:38 -08:00
manifests Split up CRD manifests into their own folder (#674) 2018-11-26 14:40:15 -08:00
pkg Rename 'controlled resources' to 'managed resources' (#850) 2018-11-30 10:32:31 -08:00
reposerver Rename 'controlled resources' to 'managed resources' (#850) 2018-11-30 10:32:31 -08:00
server Rename 'controlled resources' to 'managed resources' (#850) 2018-11-30 10:32:31 -08:00
test Issue #696 - Support apps with static namespaces in resources (#842) 2018-11-29 15:34:46 -08:00
util Issue #696 - Support apps with static namespaces in resources (#842) 2018-11-29 15:34:46 -08:00
workflows Add workflow for blue-green deployments (#148) 2018-05-03 09:52:46 -07:00
.codecov.yml Issue #657 - Use codecov to collect test coverage (#717) 2018-10-23 14:42:41 -07:00
.dockerignore Bump version file to 0.3.0. Add release target and cli-linux/darwin targets 2018-04-23 00:34:08 -07:00
.gitignore Enable code coverage (#500) 2018-08-09 15:54:15 -07:00
CHANGELOG.md Update CHANGELOG and docs to point to v0.10.6 (#777) 2018-11-14 19:08:36 -08:00
CONTRIBUTING.md Make Argo CD naming consistent (#694) 2018-11-05 11:29:01 -08:00
Dockerfile Serve CLI binaries directly from API server (#837) 2018-11-27 13:39:06 -08:00
gometalinter.json Improve CI build stability 2018-05-07 12:44:14 -07:00
Gopkg.lock 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
Gopkg.toml Diff view shows incorrect base/value comparison (issue #725) (#809) 2018-11-19 12:41:53 -08:00
LICENSE Fix LICENSE copyright text 2018-06-21 01:03:50 -07:00
Makefile Build argocd-util as a statically linked binary (#845) 2018-11-29 12:57:31 -08:00
OWNERS Added OWNERS file 2018-05-02 18:24:50 -07:00
Procfile Support the ability to map OIDC groups to project roles (issue #742) (#817) 2018-11-23 11:31:20 -08:00
README.md Make Argo CD naming consistent (#694) 2018-11-05 11:29:01 -08:00
VERSION Support for external OIDC providers and implicit login flows (#727) 2018-10-29 01:36:53 -07: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

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.

Getting Started

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:

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
  • Flexibility in support for multiple config management tools (Ksonnet, Kustomize, Helm, plain-YAML)
  • Continuous monitoring of deployed applications
  • Automated or manual syncing of applications to its desired state
  • Web and CLI based visualization of applications and differences between live vs. desired state
  • Rollback/Roll-anywhere to any application state committed in the git repository
  • Health assessment statuses on all components of the application
  • SSO Integration (OIDC, OAuth2, LDAP, SAML 2.0, GitLab, Microsoft, LinkedIn)
  • Webhook Integration (GitHub, BitBucket, GitLab)
  • PreSync, Sync, PostSync hooks to support complex application rollouts (e.g.blue/green & canary upgrades)
  • Audit trails for application events and API calls
  • Parameter overrides for overriding ksonnet/helm parameters in git
  • Service account/access key management for CI pipelines

Development Status

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

Roadmap

  • Revamped UI, and feature parity with CLI
  • Customizable application actions