Introduction

Argo CD is a very popular open-source GitOps tool. To use Argo CD, you need to understand the following core concepts:

  1. Application: A group of Kubernetes resources as defined by a manifest. This is a Custom Resource Definition (CRD). Application
  2. ApplicationSet: A Kubernetes controller supporting the ApplicationSet CRD, enabling bulk generation of Applications from a single template. Think of it as an Application factory that creates instances based on parameters. ApplicationSet
  3. Tool: Specifies the configuration management tool for Application sources (e.g., Kustomize, Helm). Tool
  4. Sync: The process of reconciling an application's live state with its desired state (e.g., applying changes to Kubernetes clusters). Sync
  5. Health: Indicates an application's operational status, including readiness and ability to serve requests. Health

Summary of Differences Between Application and ApplicationSet

AttributeApplicationApplicationSet
DefinitionSingle application deploymentTemplate for generating multiple Application instances.
ConfigurationStatic YAML definitionsDynamic parameter-driven template generation
DeploymentSingle applicationMultiple similar applications
Use CasesSimple single-environment deploymentsComplex multi-environment/cluster deployments requiring parameterized instances
Core ConceptsGit Repo, target cluster, deployment strategiesGenerators, templates, parameters, placeholders
Role in Argo CD.Fundamental deployment unitAdvanced bulk management layer

Argo CD Sync Statuses

Sync StatusDescription
SyncedApplication's live state fully matches desired state.
OutOfSyncLive state diverges from desired state; synchronization required.
SyncingActive synchronization in progress; live state converging to desired state.

References