Skip to main content
GitOps
Technology ServicesGitOps · DevOpsArgoCDVirginia · US-Based

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.

ArgoCDApplication SetsApp of AppsHelmKustomizeRBACNotificationsTerraform

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.

argocd_spec.json
version: [
"ArgoCD 2.x"
]
sources: [
"Helm",
"Kustomize",
"Plain YAML"
]
patterns: [
"App of Apps",
"ApplicationSet"
]
multi-cluster: [
"Hub and spoke"
]
infra: [
"Terraform",
"Helm"
]
engineering: [
"Virginia, United States"
]

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.