Code Monkey home page Code Monkey logo

argo-cd's Introduction

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.

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:

  • ksonnet applications
  • kustomize applications
  • helm charts
  • Plain directory of YAML/json/jsonnet manifests

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

Project Resources

Development Status

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

Roadmap

v0.11

  • New application controller architecture
  • Multi-namespaced applications
  • Large application support
  • Resource lifecycle hook improvements
  • K8s recommended application labels
  • External OIDC provider support
  • OIDC group claims bindings to Project Roles
  • Declarative Argo CD configuration
  • Helm repository support

v0.12

  • Support for custom K8S manifest templating engines
  • Support for custom health assessments (e.g. CRD health)
  • Improved prometheus metrics
  • Higher availability
  • UI improvements

argo-cd's People

Contributors

jessesuen avatar alexmt avatar merenbach avatar dthomson25 avatar jazminelkan-gonzalez avatar conorfennell avatar essh avatar twz123 avatar zcahana avatar edlee2121 avatar wmedlar avatar wanghong230 avatar lbrictson avatar kuy avatar tedmiston avatar paulvanstaden avatar solidnerd avatar mgoodness avatar mduarte avatar chocopowwwa avatar tsuna avatar amarrella avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.