Skip to content
Search

Argo CD

lastmod 2025-12-08created 2025-12-086 edits

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

Components

Installing ArgoCD installs various components, each with the following role.

  • argocd-application-controller : Periodically checks the state of applications and automatically synchronizes (Sync) them when the cluster state differs from the state defined in Git.
  • argocd-applicationset-controller : A controller that manages ArgoCD's ApplicationSet CRD; it dynamically creates multiple ArgoCD Application resources based on various sources such as Helm values, Git directory structure, and Cluster lists.
  • argocd-dex-server : Acts as the authentication server supporting ArgoCD's SSO, integrating with various external ID Providers to handle authentication.
  • argocd-notifications-controller : Sends notifications via Slack, Webhook, Email, etc. when an ArgoCD application's state changes.
  • argocd-redis : Serves as an internal cache and state store that caches application state and diff information in Redis for fast performance.
  • argocd-repo-server : Downloads Git repositories and renders manifests using Helm, Kustomize, etc.
  • argocd-server : The core component acting as the interface between users and ArgoCD; it handles the web UI, CLI commands, and API requests.

Cons

There are also drawbacks we noticed while applying it to an actual production environment.

The most noticeable one is that it is hard to make the state of the entire cluster fully declarative. For example, when there are dependencies between applications, the deployment order cannot be specified within Argo CD, so the problems that arise from this have to be solved manually. The same problem is also likely to occur when you need to bring in and use external tech stacks such as a DB or an Ingress Controller. Each technology has its own way of being deployed, and these do not always fit neatly into a declarative model. This problem sometimes resolves itself over time, but until then you may have to include imperative elements in the deployment process.

Also, Argo CD is neither a built-in component of Kubernetes nor a commercial solution, but a third-party open-source project. This means you have to take responsibility for everything yourself, from installation to operation. When problems arise, it is hard to get official support, and you have to rely on community support. The UI and usage may also be less intuitive than commercial solutions. Fortunately, there are commercial GitOps solutions based on Argo CD on the market, so you can choose one as needed.

See also

Favorite site

author Zer0 sitemap