Argo CD is a declarative continuous delivery tool for Kubernetes applications. It uses the GitOps style to create and manage Kubernetes clusters. When any changes are made to the application configuration in Git, Argo CD will compare it with the configurations of the running application and notify users to bring the desired and live state into sync.
Argo CD has been developed under the Cloud Native Computing Foundation’s (CNCF) Argo Project- a project, especially for Kubernetes application lifecycle management. The project also includes Argo Workflow, Argo Rollouts, and Argo Events. Each solves a particular set of problems in the agile development process and makes the Kubernetes application delivery scalable and secure.
The following are the ArgoCD features.
Automatic deployment: Use ArgoCD to automate your application deployment process into Kubernetes. Argo CD supports deployment into multiple clusters hosted on a public cloud (AWS/GCP/Azure) or on-prem data center.
GitOps style deployment: Achieve GitOps style software delivery with ease. Declare the desired state of an application or any infrastructure resources in Git, and Argo CD will automatically synchronize the application configuration to the currently declared state.
Deployment Strategies: Quickly roll back any applications to any previous versions in Git. You can implement advanced deployment strategies such as Canary and Blue-Green by integrating Argo CD with Argo Rollouts or Spinnaker.
Single sign-on authentication: Easily enables access for your teams to Argo CD with built-in integrations for SSO providers such as OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, and LinkedIn.
RBAC and Multitenancy: Argo CD provides Role-based access control (RBAC) to manage the authorization of teams to specific services and clusters. For large projects, it is handy for the DevOps team to apply various restrictions (read/write) on Argo CD CRDs.
Deployment Issues: Ability to visualize deployment issues, and detect and remediate configuration drift in your applications.
Extensible and Support: Argo CD supports webhook integrations with GitLab, GitHub, and BitBucket. It also supports config management and templating tools such as plain YAML, Helm charts, Jsonnet, and Kustomize.
Command Line Interface (CLI): Web user interface and command-line interface (CLI) for configuring and getting real-time activity of application deployments.
As a Kubernetes controller and a collection of CRDs, Argo Rollouts offers Kubernetes advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery. If you would like to explore more about Argo Rollouts refer here.
It is an open-source container-native workflow engine that orchestrates parallel jobs on Kubernetes. Argo Workflows is implemented as a Kubernetes CRD. If you would like to explore more about Argo Workflow refer here.
The Argo Events framework enables you to automate workflows on events from different sources, such as webhooks, S3, schedules, messaging queues, GCP pubsub, SNS, SQS, etc. If you would like to explore more about Argo Events refer here.