ArgoCD GitOps
ArgoCD is a declarative GitOps continuous delivery tool for Kubernetes. It watches a Git repository, compares the declared state to the live cluster state, and automatically reconciles any drift. We install, configure, and operate ArgoCD for teams that want deployments driven by Git commits rather than manual kubectl commands or CI push steps.
Capabilities
What we do with ArgoCD
Cluster setup
ArgoCD Installation and Bootstrap
Installing ArgoCD into a Kubernetes cluster using Helm, bootstrapping it with an App of Apps pattern so that all subsequent applications are themselves managed by ArgoCD rather than applied manually.
ArgoCD Applications
Application Configuration
Defining ArgoCD Application resources for each workload, specifying the Git source, target revision, Helm values or Kustomize overlays, sync policy, and destination namespace and cluster.
Hub and spoke
Multi-cluster Delivery
Configuring a central ArgoCD instance to deliver to multiple Kubernetes clusters across environments (dev, staging, production) or AWS accounts, with per-cluster RBAC and sync policies.
Templated applications
ApplicationSets
ApplicationSet controllers that generate ArgoCD Applications from templates, enabling one ApplicationSet definition to deploy the same application to multiple clusters or environments without repeating Application definitions.
Drift detection
Sync Policies and Auto-healing
Sync policy configuration: automatic sync when Git changes, automatic self-healing when cluster state drifts from Git, and prune policy to remove resources that are deleted from Git.
Access · Alerting
RBAC and Notifications
ArgoCD RBAC configuration to restrict which teams can sync which applications, and Notifications configuration to alert on sync failures, degraded applications, and successful deployments.
Our approach
App of Apps for self-managing ArgoCD
We bootstrap ArgoCD with an App of Apps pattern: one ArgoCD Application that manages a set of other Application definitions stored in Git. This means the entire application portfolio is defined in Git, and adding a new application is a Git commit rather than a manual ArgoCD API call.
Automatic sync with caution
Auto-sync with prune enabled will delete Kubernetes resources that are removed from Git. This is the desired behavior in a mature GitOps setup but requires confidence in the Git workflow. We enable auto-sync incrementally, starting with non-production environments, and enable prune only after the team's GitOps workflow is stable.
ApplicationSets reduce repetition
If the same application needs to be deployed to ten clusters or ten environments, writing ten Application definitions is error-prone. ApplicationSets generate them from a template with a generator that enumerates the clusters or environments. This is how multi-cluster delivery stays maintainable.
ArgoCD itself is managed as code
The ArgoCD installation, Application definitions, ApplicationSets, RBAC policies, and notification templates are all defined in Terraform and Helm values. ArgoCD's own configuration is managed by ArgoCD (via the App of Apps) so that no configuration exists only in the UI.
All engineering work is done by US-based engineers. We do not offshore any development or architecture work.
Part of our DevOps practice
FAQ
Common questions
Virginia · United States
Implementing ArgoCD?
Reach out and we will discuss the cluster topology, application portfolio, and GitOps workflow before any work begins.