Skip to content

Helm, operators, and GitOps

First PublishedLast UpdatedByAtif Alam

These three concepts are related but solve different problems:

  • Helm packages and templates Kubernetes manifests.
  • Operators run custom reconcile logic for domain-specific workloads.
  • GitOps tools (like Argo CD/Flux) continuously sync desired state from Git into the cluster.

If these feel overlapping, this page gives you a quick mental model and when to use each.

Tool typePrimary jobContinuous reconcile logic?Typical examples
Helm chartsPackage + template manifests for install/upgradeNot by itself (it renders and applies)Helm
OperatorsManage complex systems via CRDs + controllersYes (custom controller loop)Prometheus Operator, External Secrets, cert-manager
GitOps controllersKeep cluster state in sync with GitYes (sync/reconcile loop)Argo CD, Flux

Helm turns many YAML files into a reusable chart with configurable values. It is best when you need:

  • repeatable installs across environments,
  • versioned app releases,
  • templating for image tags, replica counts, resources, and names.

Helm itself is mostly a packaging and release workflow. After resources are applied, normal Kubernetes controllers handle runtime behavior.

For details, see Helm and Helm Templating.

When Helm hurts: hooks, CRD ordering, subchart upgrades, secrets in values, and drift under GitOps — see Limitations and pitfalls on the Helm page.

Operators extend Kubernetes with CRDs and custom controllers. They are best when a workload needs Day 2 operations beyond basic Deployments/StatefulSets, such as:

  • backup/restore orchestration,
  • leader election/failover,
  • version-aware rolling upgrades,
  • external system coordination.

Operators continuously reconcile custom resources into the underlying objects and status.

For details, see Operators.

GitOps (Argo CD/Flux): desired state from Git

Section titled “GitOps (Argo CD/Flux): desired state from Git”

GitOps controllers watch Git and reconcile the cluster to match repository state. They are best when you want:

  • declarative, auditable deployments,
  • drift detection and self-healing,
  • pull-based delivery (cluster pulls desired state instead of CI pushing directly).

Argo CD/Flux can deploy plain YAML, Kustomize overlays, and Helm charts.

For details, see GitOps.

A common production workflow:

  1. App/platform manifests are defined in Git (plain YAML, Kustomize, or Helm values).
  2. Argo CD syncs those changes to the cluster.
  3. If an operator is installed, it watches custom resources and manages the deeper lifecycle.

So it is usually not Helm vs operators vs Argo CD; it is often:

  • Helm for packaging,
  • Argo CD for continuous delivery/sync,
  • Operators for runtime intelligence and Day 2 automation.
  • Use Helm when you need reusable packaging and release management.
  • Use an operator when the system needs ongoing specialized control logic.
  • Use GitOps when you want Git-centered deployment and continuous reconciliation across environments.
  • AIOps — How LLM diagnostics and RAG fit next to Helm, operators, and GitOps delivery.
  • Production Platform Checklist — Layered platform checks for ownership, guardrails, and drift detection.