Argo CD vs Harness for Kubernetes Deployments: Policy Controls, Licensing Economics and Multi-Cluster Support in 2026
Harness GitOps runs Argo CD under the hood, so the comparison comes down to what you pay for on top. A source-backed comparison of policy controls, how each one is licensed and what drives the bill, and how each handles many clusters, with Qovery as a third option that can also unify the Argo CD instances you already run.
Harness GitOps is built on Argo CD. Harness documents Argo CD as its only GitOps reconciler and does not support Flux. Choosing between them is choosing what sits on top of the same engine: your own assembly of add-ons, or Harness's commercial control plane.
Policy controls: Argo CD gives you per-instance RBAC (Casbin policies, SSO groups), AppProjects and sync windows, and you add Kyverno or OPA Gatekeeper for admission policy. Harness adds OPA Policy as Code on GitOps Applications, approvals, freeze windows, account/org/project RBAC and a 2-year audit trail. However, Harness GitOps policies do not apply to Argo CD auto-syncs.
Licensing economics: Argo CD is Apache 2.0 and costs nothing to license; you pay in engineering time, with four minor releases a year and patches for only the three most recent. Harness CD does not publish paid prices. It licenses by active service, consuming 1 service license per 20 service instances at the 95th percentile over 30 days, so replica counts drive the bill.
Multi-cluster: Argo CD pushes from a hub that needs network access to each cluster's API server, or you run one instance per cluster. The pull-based argocd-agent is still on 0.x releases (v0.11.0, 11 November 2026). Harness GitOps Agents connect outbound over HTTPS, and one agent can reach several clusters.
Qovery is a third option when the goal is self-service deployment across clouds without assembling or buying a GitOps governance layer. It runs in your own cloud account or existing clusters, and its Argo CD integration can bring the Argo CD instances you already run into one view, read-only.
Most "Argo CD vs Harness" comparisons treat them as rival engines. Harness GitOps runs Argo CD, so you are comparing two ways to govern the same reconciler: build the governance yourself on open source, or pay Harness for it.
I talk with platform teams about this choice regularly, and the decision almost never turns on sync performance. It turns on three things: who can deploy what and under which policy, what the bill looks like in year two, and how the setup behaves when you go from 3 clusters to 30. Those are the three axes of this article, each backed by the vendors' own documentation as of November 2026.
Pick Argo CD if you have platform engineers who will own RBAC, admission policies, audit plumbing and quarterly upgrades, and you want zero license cost and full control. Pick Harness if you would rather buy approvals, OPA policy evaluation, freeze windows and a central audit trail across teams, and can live with service-based licensing and a sales-led price.
Pick neither, and look at a platform like Qovery, if what your developers need is self-service deployment into your own cloud accounts, and GitOps governance was a means to that end rather than the goal.
Question
Argo CD (open source)
Harness (CD and GitOps)
Qovery
What is it?
CNCF graduated GitOps controller
Commercial delivery platform; GitOps module built on Argo CD
Agentic DevOps platform deploying to your own cloud or clusters
License
Apache 2.0, free
Free plan, then Essentials and Enterprise (contact sales)
Free plan, then Starter, Growth, Scale, Enterprise
Policy engine
Add Kyverno or OPA Gatekeeper
Built-in OPA Policy as Code
OPA-based API policy tokens for agents, RBAC per environment type
Approvals and freezes
Sync windows; approvals live in Git PRs
Approval steps, deployment freeze windows
Deployment rules and RBAC; approvals live in Git PRs
Audit trail
Git, Argo CD events, Kubernetes audit logs, joined by you
Built-in, 2-year retention, streaming
Organization audit logs, plus Git
Multi-cluster model
Hub push, or one instance per cluster; agent model in 0.x
GitOps Agents with outbound connectivity
Qovery-managed or connected clusters across clouds, one RBAC model
Best for
Teams with platform engineers who want control
Enterprises buying governance off the shelf
Teams that want self-service on their own cloud without building a platform
How are Argo CD and Harness actually related?
Harness GitOps is a commercial control plane over Argo CD. The Harness GitOps FAQ says it plainly: "Harness GitOps supports Argo CD as the only GitOps reconciler", and Flux is not supported.
The architecture follows from that:
A Harness GitOps Agent runs in your cluster and either installs Argo CD components or connects to an existing Argo CD, which Harness calls "Bring Your Own Argo CD" (agent installation docs).
The agent connects out. It needs outbound HTTPS to app.harness.io, so your clusters do not have to expose their API servers to a central hub.
Harness lags upstream by design. It supports "n to n-2" minor versions of Argo CD, and the docs list GitOps Agent 0.129.0 to 0.130.0 as supporting Argo CD 2.8.2 through 3.5.6. Upstream Argo CD v3.6.0 shipped on 3 November 2026.
Argo CD itself is a CNCF graduated project with about 24,600 GitHub stars and an Apache 2.0 license (checked on the GitHub repository on 14 November 2026). Harness leaves reconciliation as it is and changes who decides, who approves, who records it, and who pays.
Which gives better policy controls, Argo CD or Harness?
Harness gives you more policy controls out of the box: OPA policies on GitOps Applications and pipelines, approval steps, freeze windows and a central audit trail. Argo CD gives you solid primitives (RBAC, AppProjects, sync windows) and expects you to add admission control and approvals yourself. The gap is narrower than vendor pages suggest, because Harness's GitOps policies do not cover Argo CD auto-syncs.
What does Argo CD give you for policy?
Argo CD ships four policy primitives:
RBAC. Casbin policies in the argocd-rbac-cm ConfigMap, in the form p, <subject>, <resource>, <action>, <object>, <effect>, with two built-in roles, role:readonly and role:admin, and SSO groups mapped with g lines (RBAC docs). Application permissions go down to resource level, for example update/*/Pod/*/*.
AppProjects. Restrict which repositories an app may deploy from, which clusters and namespaces it may deploy to, and which cluster-scoped resources it may create (Projects docs).
Sync windows.allow and deny windows on a cron schedule, scoped by application, namespace or cluster, defined in the AppProject (sync windows docs).
Git itself. Branch protection and required reviews are your approval gate.
Here is an AppProject for a payments team that can only deploy from its own repository to its own namespaces, cannot create cluster-scoped resources, and cannot auto-sync production on Friday evenings:
What is missing is content policy. Argo CD will happily sync a Deployment running as root or pulling :latest. That is the job of an admission controller such as Kyverno or OPA Gatekeeper, which you install, write policies for and upgrade on every cluster. We compared those two in where deployment policy belongs: OPA Gatekeeper, Kyverno or the platform layer.
RBAC is also per instance. Ten Argo CD instances means ten argocd-rbac-cm ConfigMaps to keep consistent, usually through a GitOps repository that manages Argo CD itself.
What does Harness add on top?
Harness adds a governance layer that Argo CD does not have:
OPA Policy as Code for GitOps Applications. Policies of entity type "GitOps Application" are evaluated "On Save" and "On Sync", against an input document that carries the Argo CD Application (Harness docs). The same engine governs pipelines (Policy as Code overview).
Hierarchical RBAC. Principals, resource groups and roles bound at account, organization or project scope, inherited downward. The model is strictly additive: Harness states there is "no explicit deny" (Harness access control).
Audit trail. Built in, retained for 2 years, with streaming to external storage for longer retention (Harness audit trail).
Here is an "On Save" policy, adapted from the patterns in Harness's samples, that blocks GitOps Applications targeting system namespaces and refuses Argo CD auto-sync (the next section explains why):
Harness policy stops at Argo CD's own reconciliation loop. Harness's docs state that "OPA policies do not apply to auto-syncs" and are "evaluated only when a sync is initiated through the Harness UI or API". Syncs triggered from the Argo CD CLI are not evaluated either. Harness's own workaround is an On Save policy that denies applications with auto-sync enabled, which is the second rule above.
Two more boundaries worth knowing before you sign:
Freeze windows are a CD pipeline feature. The freeze docs say deployment freeze "does not apply to Harness GitOps PR pipelines".
Neither tool replaces admission control. Harness evaluates the Application definition, not every Pod spec rendered from a Helm chart. If you need "no privileged containers" enforced at the cluster, you still run Kyverno or Gatekeeper.
Policy control
Argo CD
Harness
Who can sync what
Casbin RBAC per instance, AppProject roles
Account, org and project RBAC, additive only
Where apps may deploy
AppProject destinations, sourceRepos
AppProjects underneath, plus OPA on save
Policy as code on deployments
Not built in; Kyverno or Gatekeeper at admission
OPA on GitOps Applications and pipelines
Applies to auto-sync
Admission policies apply to everything
No; only syncs through Harness UI or API
Time-based controls
Sync windows (allow and deny)
Freeze windows for CD; sync windows from Argo CD
Approvals
Git PR reviews, branch protection
Approval steps in pipelines, plus Git
Audit trail
Git, Argo CD events, Kubernetes audit logs, joined by you
Built-in, 2-year retention, streaming
If you stay on Argo CD, the missing piece is usually the approval record. Our post on audit trails and RBAC across multi-cluster Argo CD shows how to join Git reviews, Argo CD events and API server audit logs into one trail.
One control plane over every cluster, Argo CD included.
Qovery deploys to Kubernetes in your own AWS, GCP, Azure or Scaleway account or on clusters you already run, with per-environment RBAC, audit logs and OPA-based policy tokens for agents. Its Argo CD integration shows your existing Argo CD applications in the same place.
Argo CD costs $0 in licenses and an ongoing slice of a platform team. Harness costs a negotiated license that scales with active services and their replica counts, and a much smaller slice of a platform team. Which one is cheaper depends almost entirely on how many services you run, how many replicas each one has, and what an engineer-week costs you.
"Harness CD consumes 1 service license for every 20 service instances of a service" for containerized and VM workloads. A service with 5 instances uses 1 license; a service with 25 instances uses 2.
Instances are sampled every 60 minutes and measured at the 95th percentile over 30 days, so a load test or a blue-green cutover does not spike your count, but steady autoscaling does.
Only active services count: those deployed in the last 30 days.
Serverless: 1 license per 5 functions. Pipeline executions with no service: 1 license per 2,000 executions.
GitOps applications linked to a Harness Service count through that Service (behind the CDS_GITOPS_SERVICE_BASED_LICENSING feature flag); applications not linked to a service use application-based counting.
Harness also sells a developer-based model. Under "Developer 360", CD includes "1 Service for every 3 Developers", with more services bought as add-ons (Harness subscriptions).
On the pricing page, both paid plans route to sales and show no price. The Continuous Delivery and GitOps limits that are public: Essentials allows up to 60 concurrent pipeline executions and up to 5 deployment templates; Enterprise allows up to 500 concurrent executions. Both include GitOps and freeze windows.
A worked example, using only the documented rules. Take 40 microservices, each running on average 6 replicas in production, 2 in staging and 2 in dev, all deployed weekly:
If instances are counted per service across environments, each service sits at 10 instances, which means 40 service licenses.
Turn on autoscaling that holds production at 18 replicas most of the month, and each service sits at 22 instances at the 95th percentile, which means 80 service licenses. The code and the team stay the same, and the license units double.
Model this before signing, because Harness cost tracks your runtime footprint. Ask your account team how instances across environments are aggregated for your contract, and model your 95th-percentile replica counts, not your averages.
What does free Argo CD actually cost to run?
Argo CD's cost is operational. Three items dominate:
Upgrades. A minor release "occurs four times a year, once every three months", and "only the three most recent minor versions are eligible for patch releases" (release process). Skip three quarters and you are on an unpatched version.
Scaling. Past a certain number of clusters, the application controller needs sharding across replicas with ARGOCD_CONTROLLER_REPLICAS and a sharding method (high availability docs).
The add-ons. Kyverno or Gatekeeper, SSO, notifications, audit log shipping and the approval record are each a project with its own upgrades.
If you want Argo CD without operating it, there is a published reference price. Akuity, founded by Argo's creators, lists its Pro plan "starting at $495/month" with one Argo CD instance and 50 Argo CD applications included, then $99 a month per extra 10 applications, up to 1,500 applications. That is a useful benchmark for what the hosting part of Argo CD is worth, separate from governance.
Cost driver
Argo CD self-managed
Managed Argo CD (Akuity Pro)
Harness CD and GitOps
Qovery
License unit
None
Instance plus application bundles
Active service (1 per 20 instances, p95 over 30 days) or developers
Free plan; Growth $899/month; other tiers on the pricing page
What scales the bill
Engineer time, cluster count
Number of Argo CD applications
Services and their replica counts
Plan tier and usage limits
Upgrades owned by
You, every quarter
Akuity for the control plane
Harness for the control plane; you for agents
Qovery for the control plane
Governance included
None beyond RBAC, projects, sync windows
Varies by plan
OPA, approvals, freezes, audit
RBAC, audit logs, policy tokens, deployment rules
Which handles multi-cluster Kubernetes better?
Harness has the simpler network model for many clusters: agents connect outbound, and one Harness account gives you one RBAC and audit layer across all of them. Argo CD can run very large fleets, but you choose between a central hub that must reach every API server and one instance per cluster with N copies of RBAC, unless you adopt the newer agent-based model.
How does Argo CD do multi-cluster?
There are three patterns, each with a cost:
Hub and spoke (push). One Argo CD registers remote clusters as Secrets labelled argocd.argoproj.io/secret-type: cluster (declarative setup) and pushes to them. One RBAC config, one UI, but the hub needs network access and credentials to every API server, and it becomes a single high-value target.
Instance per cluster. Each cluster runs its own Argo CD and pulls from Git. No inbound access needed, but RBAC, SSO, notifications and upgrades multiply by the number of clusters.
argocd-agent (pull, hub-managed). The argocd-agent project splits Argo CD into a principal on the hub and agents on workload clusters, so spokes connect out to the hub. It is still under argoproj-labs and on 0.x releases, with v0.11.0 published on 11 November 2026. It is worth piloting, but plan for change.
ApplicationSets with the cluster generator template the same app across clusters, which solves config sprawl but not RBAC or audit sprawl.
How does Harness do multi-cluster?
Harness puts a GitOps Agent near your clusters. The docs say you typically install it in the target cluster, but "you can install it in any cluster, and it can connect to remote clusters using the credentials you provide". Agents connect outbound, multiple agents provide high availability, and everything rolls up into one Harness account with account, org and project RBAC. One constraint from the FAQ: "All applications within an Argo CD ApplicationSet must be managed by the same agent."
The trade-off is that Harness becomes the control plane. Your clusters reconcile through Argo CD either way, but who-can-do-what lives in Harness.
How does Qovery do multi-cluster?
Qovery manages clusters on AWS, GCP, Azure and Scaleway, or connects clusters you already run (EKS, GKE, AKS, k3s, on-premise) through qovery cluster install. The Qovery control plane is separate from your data plane: workloads run in your own accounts, and one RBAC model covers every cluster. Custom roles scope access per project and per environment type (Development, Preview, Staging, Production), and per cluster. Cross-cloud networking between clusters is not built in; it is configurable with a VPN, Cilium Cluster Mesh or Tailscale.
Multi-cluster aspect
Argo CD
Harness
Qovery
Connectivity
Hub pushes to each API server, or instance per cluster; agent model pulls
Agent connects outbound over HTTPS
Qovery agent in each cluster connects to the Qovery control plane
RBAC across clusters
One config per instance
One account, org, project hierarchy
One organization, custom roles per cluster and environment type
AWS, GCP, Azure, Scaleway, or any existing cluster
Existing Argo CD
It is Argo CD
Bring Your Own Argo CD
Argo CD integration, read-only view per instance
Where does Qovery fit as a third option?
Qovery fits when the outcome you want is developers and agents deploying safely to many clusters in your own cloud accounts, and neither assembling Argo CD governance nor buying it from Harness is how you want to get there. It does not fit if your organization has standardized on Git-only GitOps for every change; keep Argo CD then.
Qovery is an Agentic DevOps platform. It does not host your applications: they run on Kubernetes in your AWS, GCP, Azure or Scaleway account, or on clusters you already run. What it brings to this comparison:
Policy for humans and agents. Built-in roles (Owner, Admin, DevOps, Billing Manager, Viewer) plus custom roles per project and environment type. For AI agents, an API Policy Token attaches an Open Policy Agent (Rego) policy evaluated on every request, before it reaches the endpoint, and logs the agent as policy:<token-id>:<token-name>. The feature is in preview and its input contract may change. The background is in our OPA permissions post.
Unifying Argo CD instances you already run. The Argo CD integration maps each Argo CD instance to a Qovery cluster. Argo CD applications appear as Qovery environments organized by namespace, with pod status, shell, logs, sync and health status, and a manifest diff. Deployment ownership stays in Argo CD, and those applications are read-only in Qovery; sync and rollback actions are listed as planned. For a team with five Argo CD instances and five argocd-rbac-cm files, that is one place to see all of them without migrating anything (announcement).
Everything else on the same plane: git-push deployments, preview environments per pull request, environment cloning, Helm and Terraform services, a Terraform provider, audit logs, cost visibility and deployment rules.
Qovery is not a drop-in Harness replacement for pipeline-heavy release orchestration with multi-stage approvals and change-ticket integrations, and it is not an admission controller. If your auditors require a ServiceNow approval on every production change, Harness is closer to that out of the box.
Pick Argo CD if you have at least one platform engineer who wants to own RBAC, Kyverno or Gatekeeper, notifications and quarterly upgrades, your fleet is reachable from one hub or small enough for an instance per cluster, and license cost is the constraint.
Pick managed Argo CD (Akuity, for example) if you want Argo CD exactly as it is, without operating the control plane, and you will still build approvals and policy yourself.
Pick Harness if you need approvals, freeze windows, OPA policy and a 2-year audit trail across many teams now, you are comfortable routing syncs through Harness so policies apply, and you have modelled the service license count at your 95th-percentile replicas.
Pick Qovery if the goal is self-service deployment to your own cloud accounts across AWS, GCP, Azure or Scaleway without a dedicated platform team, with RBAC per environment type and scoped access for AI agents, and you want your existing Argo CD instances visible in the same place while you decide.
How do I evaluate Qovery from Claude Code or Cursor?
If you want your coding agent to look at your Qovery organization and clusters while you compare, install the Agent Skills and the read-only MCP Server:
BASH|Agent Skills for Claude Code, Cursor, Codex, OpenCode, Gemini CLI
curl -fsSL https://skill.qovery.com/install.sh | bash
# MCP Server for Claude Code: OAuth sign-in, read-only by default
claude mcp add --transport http qovery https://mcp.qovery.com/mcp --callback-port 4242
The first command installs skills such as qovery-onboard and qovery-deploy. Your agent asks before it creates anything.
The second opens an OAuth sign-in in your browser. The server can list clusters, environments and deployment status but cannot change them.
Then ask in plain language, for example: "List my Qovery clusters and the environments on each, and tell me which ones come from Argo CD."
ArgoCD vs Harness for Kubernetes deployments: which gives better policy controls?
Harness gives more policy controls out of the box: OPA Policy as Code on GitOps Applications and pipelines, approval steps, freeze windows, hierarchical RBAC and a 2-year audit trail. Argo CD gives RBAC, AppProjects and sync windows, and you add Kyverno or Gatekeeper for admission policy. Note that Harness GitOps policies do not apply to Argo CD auto-syncs, only to syncs started through Harness.
Is Harness GitOps built on Argo CD?
Yes. Harness documents Argo CD as the only GitOps reconciler it supports, and Flux is not supported. The Harness GitOps Agent either installs Argo CD components or connects to an existing Argo CD instance, and supports Argo CD minor versions n to n-2.
How is Harness CD licensed compared with Argo CD?
Argo CD is Apache 2.0 and free to license. Harness CD consumes 1 service license per 20 service instances, measured at the 95th percentile over 30 days, and only services deployed in the last 30 days count; a developer-based model includes 1 service per 3 developers. Harness does not publish prices for its paid plans.
Which is better for multi-cluster Kubernetes, Argo CD or Harness?
Harness has the simpler model at scale: GitOps Agents connect outbound and roll up into one RBAC and audit layer. Argo CD needs a hub with network access to every cluster or one instance per cluster, and its pull-based argocd-agent is still on 0.x releases. Both reconcile with Argo CD underneath.
Can Qovery work with Argo CD instances we already run?
Yes. Qovery's Argo CD integration maps each Argo CD instance on a cluster added to Qovery and shows its applications as Qovery environments, with logs, pod status, shell access and sync status. They stay read-only in Qovery, so deployments keep going through Argo CD and Git.
Morgan co-founded Qovery and leads engineering. He writes about Kubernetes architecture, DevOps best practices, and building resilient infrastructure at scale.
Next step
One control plane over every cluster, Argo CD included.
Qovery deploys to Kubernetes in your own AWS, GCP, Azure or Scaleway account or on clusters you already run, with per-environment RBAC, audit logs and OPA-based policy tokens for agents. Its Argo CD integration shows your existing Argo CD applications in the same place.