Top GitOps Tools for Kubernetes in 2026: 12 Options Compared, Plus What Changes When Agents Write the YAML
A practical comparison of 12 GitOps tools for Kubernetes - Argo CD, Flux CD, Kargo, Argo Rollouts, Flagger, Kyverno, OPA Gatekeeper, External Secrets, Akuity, Codefresh GitOps, Qovery and more - grouped by the job they do, and what each layer needs now that AI agents open pull requests and GPU workloads run on your clusters.
GitOps on Kubernetes is not one tool but five layers: a reconciler (Argo CD or Flux CD), config generation (Helm, Kustomize), a promotion and progressive delivery layer (Kargo, Argo Rollouts, Flagger), a policy and secrets layer (Kyverno, OPA Gatekeeper, External Secrets Operator, Sealed Secrets), and a developer-facing control plane (Qovery, Akuity, Codefresh GitOps, Backstage).
Argo CD is the default when developers need a UI and per-application RBAC; Flux CD is the default when you want a small, CRD-driven, controller-only footprint. Both are CNCF Graduated, both reconcile Git to cluster state, and the decision is about operating model, not features.
Helm, Kustomize, Jsonnet and Timoni are manifest generators, not GitOps tools. They produce the YAML that Argo CD or Flux CD then reconciles. Confusing the two is the most common error in GitOps tool comparisons.
AI coding agents change which layer matters most. When a machine can open pull requests faster than a human can read them, the reconciler is the easy part, and the policy engine, the pull request preview environment, the audit trail and the rollback path become the bottleneck.
Guardrails are the real requirement for agent-driven change: policy evaluation on every change, per-environment RBAC that scopes what an agent can touch, and a full audit trail of who or what changed which environment.
AI and GPU workloads add requirements GitOps tools were not designed for: large model artifacts that do not belong in Git, node pools with GPU taints and tolerations, long warm-up probes, and idle GPU nodes that make non-production the most expensive line on the bill.
Most "top GitOps tools for Kubernetes" lists compare things that cannot be compared. They line up Argo CD next to Helm next to Jenkins, as if a reconciler, a template engine and a CI server did the same job. They don't. And the layer that matters most just changed, because a machine can now write Kubernetes manifests faster than a human can review them.
So before the list, here is the model that makes it make sense. GitOps on Kubernetes is five layers: a reconciler (Argo CD or Flux CD), config generation (Helm, Kustomize), promotion and progressive delivery (Kargo, Argo Rollouts, Flagger), policy and secrets (Kyverno, OPA Gatekeeper, External Secrets Operator), and a control plane and developer portal on top (Qovery, Akuity, Codefresh GitOps, Backstage). Pick one tool per layer and you have a stack. Compare tools across layers and you get nonsense.
I run Qovery, so I spend my days with platform teams who already picked a reconciler and hit the wall around it: promotion, previews, secrets, RBAC, and now a flood of agent-generated pull requests. This map answers the core comparison first, then covers what breaks when agents write the YAML and GPUs run the workloads.
What is GitOps on Kubernetes, and what makes a tool a GitOps tool?
GitOps means Git holds the declarative desired state of your Kubernetes clusters, and an in-cluster controller continuously reconciles reality to match it. A real GitOps tool pulls from a Git source and reconciles. It does not push from a CI job. That single distinction is what the OpenGitOps project formalized in its four principles: the system is declarative; desired state is versioned and immutable; software agents pull that state automatically; and agents continuously reconcile actual state to the declared state (Source). OpenGitOps shipped those principles as v1.0.0 back in October 2021, so this is settled ground, not a moving target (Source).
The push-versus-pull line is where most confusion lives. A GitHub Actions job that runs kubectl apply is not GitOps, even when the YAML lives in Git. It is push CI/CD holding cluster credentials, firing once, and forgetting. Pull-based reconciliation is different: a controller inside the cluster watches Git, applies the diff, and keeps applying it. The first thing teams feel from that is drift detection and self-healing - someone hot-fixes a Deployment with kubectl edit at 2am, and the controller reverts it to what Git says, or flags it.
Here is the part the comparison lists get wrong. Helm, Kustomize, Jsonnet and Timoni are manifest generators. They template and render YAML; a reconciler then consumes that output and applies it. Helm is not competing with Argo CD; Argo CD runs Helm for you. Keep those two jobs separate and the rest of this article reads cleanly.
GitOps by itself also does not hand you everything a production platform needs. Out of the box you do not get environment promotion, preview environments per pull request, secret values (Git should never hold plaintext secrets), developer self-service, an audit trail that spans environments, or a review step that scales when the changes stop coming from humans. Each of those is a layer you add on top of the reconciler.
What are the top GitOps tools for Kubernetes right now?
The short answer: Argo CD or Flux CD as the reconciler, plus a promotion tool (Kargo, Argo Rollouts or Flagger), a policy engine (Kyverno or OPA Gatekeeper), a secrets bridge (External Secrets Operator or Sealed Secrets), and optionally a control plane (Qovery, Akuity, Codefresh GitOps) so developers and agents never touch cluster credentials. Everything below fits one of the five layers.
Reconcilers.Argo CD and Flux CD are the two serious choices, and both are CNCF Graduated (Argo, Flux). Argo CD ships a UI, per-application RBAC and its own API server; Flux is a set of CRD-driven controllers with a CLI. Pick one. The head-to-head is the next section.
Config generation. Helm and Kustomize render the manifests. Both reconcilers speak both. This is a repo-structure decision, not a GitOps-tool decision.
Promotion and progressive delivery. These are two different jobs that get lumped together. Kargo (from Akuity, Apache 2.0, now past its 1.0 release) handles promotion: moving a verified artifact from one environment to the next by writing the commit for you, using its Warehouse, Freight and Stage model. Argo Rollouts and Flagger handle progressive delivery: canary and blue-green rollouts with metric analysis and automatic rollback. Flagger is part of the Flux family; Argo Rollouts is part of Argo. Do not reach for a promotion tool when you need a rollout controller, or the reverse.
Policy and secrets.Kyverno (CNCF Graduated as of March 2026) and OPA Gatekeeper (part of CNCF-graduated Open Policy Agent) validate and mutate resources at admission and audit what is already running. External Secrets Operator (CNCF Sandbox) pulls secret values from a real secrets manager into the cluster; Sealed Secrets encrypts them into Git instead. Section 6 goes deep here.
Control plane and developer portal.Akuity and Codefresh GitOps (now part of Octopus Deploy, details) run managed, enterprise Argo CD at fleet scale with SSO, RBAC and multi-instance dashboards. Backstage is a developer portal you assemble yourself. Qovery is an internal developer platform that runs the whole GitOps flow inside your own cloud account with previews, RBAC and audit built in. The boring, proven default in 2026 is still "Argo CD or Flux, plus Kustomize or Helm, plus Kyverno, plus External Secrets." Everything else is about who operates it.
One honest note on stewardship: Weaveworks, the company that created Flux, ceased commercial operations in February 2024 (Source). Flux did not go anywhere. ControlPlane hired the core maintainers, and Flux remains a CNCF Graduated project with active corporate backing (Source). Weave GitOps, the separate UI, is now community-driven and low-activity, so I would not build on it today.
Tool
Layer / job
UI
Multi-cluster
License
CNCF maturity / vendor
Best for
Weakest at
Argo CD
Reconciler
Yes
Hub-and-spoke
Apache 2.0
Graduated
App teams wanting a UI + RBAC
Heavier footprint
Flux CD
Reconciler
CLI (3rd-party UI)
Per-cluster
Apache 2.0
Graduated
Platform automation via CRDs
No first-party UI
Kargo
Promotion
Yes
Yes
Apache 2.0
Akuity (OSS)
Multi-stage promotion
Young, extra concepts
Argo Rollouts
Progressive delivery
Via Argo CD
Per-cluster
Apache 2.0
Part of Argo
Canary/blue-green + analysis
Replaces your Deployment
Flagger
Progressive delivery
No
Per-cluster
Apache 2.0
Part of Flux
Canary on existing Deployments
Needs a service mesh/ingress
Kyverno
Policy
Reports
Per-cluster
Apache 2.0
Graduated
YAML-native policy
Rego users may prefer OPA
OPA Gatekeeper
Policy
Reports
Per-cluster
Apache 2.0
OPA (Graduated)
Rego-based, cross-domain policy
Rego learning curve
External Secrets Operator
Secrets
No
Per-cluster
Apache 2.0
Sandbox
Pulling from a secrets manager
Needs an external vault
Sealed Secrets
Secrets
No
Per-cluster
Apache 2.0
Bitnami (OSS)
Secrets encrypted in Git
Key rotation, no external store
Akuity
Control plane
Yes
Fleet
Commercial
Vendor
Managed Argo CD at scale
Not a dev self-service PaaS
Codefresh GitOps
Control plane
Yes
Fleet
Commercial
Vendor (Octopus)
Enterprise Argo CD + dashboards
Heavier, enterprise-priced
Qovery
Control plane / IDP
Yes
Multi-cluster
Commercial
Vendor
Dev self-service, previews, guardrails in your cloud
Opinionated; you don't own each controller
How does each behave when the change comes from an agent rather than a human? The reconcilers apply whatever Git says, so they neither gate nor preview on their own; the policy engines gate; the progressive delivery tools roll back; and the control planes are where previews, scoped RBAC and audit trails live. That is the whole point of section 4.
Argo CD vs Flux CD: which one should you pick in 2026?
Pick Argo CD if you want a UI, per-application RBAC and a large app-team ecosystem. Pick Flux CD if you want a minimal set of CRD-driven controllers you can automate from your own platform code. Both are CNCF Graduated, both do drift detection and self-healing, and the real difference is the operating model, not a feature checklist.
The architectures tell the story. Argo CD is a small number of larger services: the application-controller that reconciles, the repo-server that renders manifests, and the API server behind the UI, with Redis as a cache (Source). Its core objects are Application, ApplicationSet and AppProject. Flux is the opposite shape: a set of single-purpose controllers - source-controller, kustomize-controller, helm-controller, notification-controller, plus the image controllers - driven by CRDs like GitRepository, Kustomization and HelmRelease (Source). Argo gives you a console; Flux gives you Lego bricks.
That difference propagates. For multi-cluster GitOps, Argo CD favors hub-and-spoke: one control plane, ApplicationSet generators fanning out to many clusters; Flux favors a controller install per cluster pointing at a shared repo. For multi-tenancy, Argo CD uses AppProject plus its own RBAC, while Flux uses namespaces plus spec.serviceAccountName impersonation. And for image automation, Flux's image-automation-controller watches a registry and commits new tags back to Git (Source) while Argo CD does the same through the separate Argo CD Image Updater - which matters when a model registry or an agent pipeline produces new image tags continuously.
On adoption, both are large: Argo CD sits around 24,000 GitHub stars and Flux around 8,400 as of August 2026, and CNCF's 2025 Argo CD user survey found 97% of surveyed users run it in production (a users' survey, so read it as depth of adoption among Argo shops, not market share) (Source). My rule of thumb: teams that want their developers in a UI pick Argo CD; platform teams building their own abstractions pick Flux.
Dimension
Argo CD
Flux CD
Reconciliation model
App controller + repo-server + API/UI
Set of single-purpose CRD controllers
Primary objects
Application, ApplicationSet, AppProject
GitRepository, Kustomization, HelmRelease
UI
First-party web UI
CLI, third-party dashboards
RBAC / multi-tenancy
AppProject + Argo RBAC
Namespaces + serviceAccount impersonation
Multi-cluster
Hub-and-spoke, ApplicationSet
Controller per cluster, shared repo
Helm support
Renders Helm via repo-server
Native HelmRelease controller
Image automation
Argo CD Image Updater (separate)
image-automation-controller (built in)
Extensibility
Config management plugins, Lua health
Composable controllers, notifications
Install footprint
Heavier, one console per instance
Lighter controllers, more of them
Best fit
App teams wanting a UI
Platform teams automating via CRDs
GitOps on your own cloud, with guardrails built for agent-speed change.
Qovery runs Argo CD-native GitOps inside your own AWS, GCP, Azure or Scaleway account, or your existing Kubernetes cluster - with OPA-based policy guardrails, per-environment RBAC, full deployment auditability, git-push deploys, a preview environment per pull request and environment auto-stop out of the box.
How do AI agents change what you need from your GitOps stack?
AI coding agents make Git the interface between machines and production, which shifts the bottleneck from writing manifests to reviewing them. When pull requests arrive faster than humans can read them, your policy engine, your per-pull-request preview environment, your audit trail and your automated rollback stop being nice-to-haves and become the control plane.
The shift is already measurable. In Stack Overflow's 2025 survey, 84% of developers said they use or plan to use AI tools, up from 76% (Source). GitHub's 2025 Octoverse reported 518.7 million merged pull requests, up 29% year over year, and noted that more than one in five code reviews on GitHub now involve an agent (Source). Google's 2025 DORA research found a positive relationship between AI adoption and delivery throughput, and a negative relationship with delivery stability (Source). More change, moving faster, less stable. That is exactly the situation GitOps guardrails exist for.
Pull-based reconciliation is the safest possible target for machine-generated change, because the agent commits to Git and never holds cluster credentials. Every change becomes a reviewable diff: versioned, revertible with git revert, and reconciled by a controller against a known desired state. That is the substrate. On top of it, four guardrails carry the weight:
Policy as the machine reviewer. OPA Gatekeeper or Kyverno evaluates every change against rules at admission time, and a platform layer can also evaluate policy before the change reaches the cluster. When a human is not reading each diff, the policy engine is.
A preview environment per pull request. An ephemeral environment spun up from the PR lets you observe the change actually running before merge. Argo CD's ApplicationSet Pull Request generator builds exactly this: an Application per open PR, torn down when the PR closes (Source).
Metric-based automatic rollback. Argo Rollouts or Flagger runs the new version as a canary, watches latency and error rates, and rolls back on its own. A bad change never becomes a full outage.
A complete audit trail. Deployment history per environment plus policy decision records are how you answer "which agent changed this, and what did the policy engine say?" after an incident.
Least privilege matters more with a machine on the keyboard: scoped Git tokens, protected branches with required checks, CODEOWNERS on cluster-level directories, no direct kubectl, and per-environment RBAC so an agent can only touch dev and preview while production stays gated. Auditability here is an engineering and incident-response argument, not a compliance one - when something breaks, you need to reconstruct who or what changed which environment, in order.
Name the failure modes so you can write policy against them: agents editing cluster-scoped resources, bumping a CRD version, widening an RBAC role, disabling a readinessProbe to make a broken pod look healthy, or generating a manifest that passes CI and then fails admission. Those are the diffs I want a policy engine to reject automatically. This is also where a control plane like Qovery fits for teams that would rather not assemble it themselves: per-environment RBAC, deployment history and audit logs, and a preview environment per pull request as default behavior, with the details in section 8.
Agents raise change volume and lower review capacity at the same time, and GitOps plus policy plus preview plus audit is the cheapest way to absorb that. No autonomous-production fantasy required.
How do you run AI and GPU workloads with GitOps on Kubernetes?
AI workloads are still Kubernetes workloads, so Argo CD and Flux CD reconcile them fine. The friction is everything around the manifest: model artifacts too large for Git, GPU node pools with taints and tolerations, long startup probes, and idle GPU nodes that turn non-production into the most expensive part of the bill. Kubernetes is now where this runs; CNCF's 2025 survey found 66% of organizations hosting generative AI models use Kubernetes for some or all of their inference workloads (Source).
Keep the model out of Git. A multi-gigabyte weights file does not belong in a manifest repo. Reference it by digest from object storage or a registry (OCI artifacts work well, and Flux treats OCI as a first-class source), and let Git hold only the pointer and the config. Your repo stays diff-able and your reconciler stays fast.
GPU scheduling belongs in the same reconciled manifests as the app. Pods request accelerators through the device plugin resource (for example nvidia.com/gpu under resources.limits), and GPU node pools are usually tainted so only GPU workloads land on them, with matching tolerations and node selectors on the pods (Source). Declare all of it in Git next to the Deployment, not by hand on the node pool.
Long warm-up is where health checks lie to you. A model that takes minutes to load looks unhealthy to a default probe, so tune startupProbe to gate liveness and readiness until the container has actually started (Source). Otherwise Argo CD marks the app Degraded, or your progressive delivery analysis fails a model that was simply still loading. For the rollout itself, canary with latency and error-rate analysis via Argo Rollouts or Flagger is the right pattern, because a bad model version usually looks like a perfectly healthy pod. The container is up; the answers are wrong. Only metric analysis catches that.
Cost is the headline, and it is brutal in non-production. GPU-backed preview and staging environments that never shut down are the number one surprise on the cloud bill. An AWS p5.48xlarge with eight H100s runs $55.04/hour on-demand, and even a g5.xlarge is about $1.006/hour (Source); a Scaleway L4 instance starts around EUR 0.79/hour (Source). Leave a handful running idle overnight across preview environments and you have found real money, so environment auto-stop and scale-to-zero for non-production should be automatic, not a Slack reminder. And because GPU capacity availability keeps pushing teams across AWS, GCP, Azure, Scaleway and their own clusters, a cloud-agnostic, Kubernetes-native GitOps stack becomes a practical requirement rather than a purity argument.
Which GitOps tools cover policy, secrets, and configuration?
Git cannot hold plaintext secrets, and a reconciler will happily apply a bad manifest, so a production GitOps stack pairs the reconciler with a policy engine (Kyverno or OPA Gatekeeper) and a secrets bridge (External Secrets Operator, Sealed Secrets or SOPS). These are the two layers that keep GitOps from quietly shipping something dangerous.
Kyverno versus OPA Gatekeeper. Kyverno writes policy as Kubernetes-native YAML with validate, mutate, generate and verifyImages rules, and reports results through PolicyReport (Source). Gatekeeper uses Rego (the policy language of Open Policy Agent) through ConstraintTemplate and Constraint, and has an audit mode that flags existing violations (Source). Both validate at admission and audit what is already running. Choose Kyverno if you want to stay in YAML; choose Gatekeeper if you already speak Rego or need one policy language across more than Kubernetes.
Rego and OPA also fit outside admission control. A platform layer can evaluate Rego to authorize what an automated caller or an agent is allowed to do through an API, before anything touches the cluster. Qovery's API Policy Token uses OPA and Rego for exactly that request-level authorization (Source), which is a natural fit for scoping agents. It complements, rather than replaces, an in-cluster admission controller.
Secrets. External Secrets Operator pulls values from AWS Secrets Manager, Google Secret Manager, Azure Key Vault or HashiCorp Vault into native Secrets via the ExternalSecret CRD (Source). Sealed Secrets encrypts values into Git as a SealedSecret, decrypted only by the in-cluster controller (Source). SOPS takes a third route: encrypted values live in Git and Flux decrypts them natively during reconciliation (Source). The rule: values in an external vault means ESO, values in Git means Sealed Secrets or SOPS.
Supply chain. Signature verification is how you distinguish human, CI and agent-authored commits. Kyverno's verifyImages checks Sigstore/cosign signatures (Source), Flux's GitRepository supports spec.verify for signed commits and tags (Source), and Argo CD's AppProject can require signed commits via signatureKeys (currently GPG-based and being superseded by newer source-integrity verification, so check the version you run).
Config layer. Helm, Kustomize, Jsonnet and Timoni shape your repo structure far more than they affect reconciler behavior. Helm packages and templates with values; Kustomize overlays plain YAML per environment. Pick the one your team will actually maintain, then let the reconciler apply the output.
Tool
Layer
Mechanism / language
Enforced at
Where secrets live
Argo CD
Flux CD
License
Kyverno
Policy
YAML policies + reports
Admission + audit
n/a
Yes
Yes
Apache 2.0
OPA Gatekeeper
Policy
Rego (Constraints)
Admission + audit
n/a
Yes
Yes
Apache 2.0
External Secrets Operator
Secrets
ExternalSecret CRD
Runtime sync
External vault
Yes
Yes
Apache 2.0
Sealed Secrets
Secrets
SealedSecret CRD
In-cluster decrypt
Encrypted in Git
Yes
Yes
Apache 2.0
SOPS (with Flux)
Secrets
KMS/age/PGP encryption
Decrypt at reconcile
Encrypted in Git
Partial
Native
MPL / OSS
What does a production GitOps stack actually look like, and what does it cost to run?
A production GitOps stack is roughly five moving parts plus a repo layout, and the cost is not licensing - it is the platform engineering time to run, upgrade and support it. That is exactly why teams without a dedicated platform team reach for a control plane.
The reference stack is not exotic: a Git provider with protected branches and required checks; Argo CD or Flux CD as the reconciler; Kustomize or Helm for config; Kyverno or OPA Gatekeeper for policy; External Secrets Operator for secrets; Argo Rollouts or Kargo for delivery and promotion; and observability so the rollout analysis has metrics to read. Promotion usually lands on one of three patterns: a branch per environment, a directory per environment (the common default), or a promotion tool that writes the commit for you (Kargo's Warehouse, Freight and Stage).
The real cost is the maintenance list nobody scopes at the start: controller upgrades, Kubernetes version upgrades, CRD migrations, RBAC sprawl, one Argo CD configuration per instance, and the ongoing work of stitching policy decisions and deployment history into something you can audit after an incident. Where teams stall is predictable: onboarding a new service, giving one developer or one agent a working preview environment, and multi-cluster fleet upgrades.
Someone has to own that. Gartner has projected that by 2026, 80% of large software engineering organizations will have established platform teams, up from 45% in 2022 (Source). So build-versus-buy is really "who runs the glue?" Three answers: run the OSS stack yourself, buy managed Argo CD (Akuity, Codefresh GitOps) so someone else operates the control plane, or adopt a full internal developer platform (Qovery, or Backstage plus integration work). There is no wrong answer, only a wrong match between the stack you chose and the size of the team maintaining it.
How does Qovery fit into a GitOps stack on Kubernetes, and what guardrails does it add for AI agents?
Qovery is a control plane that runs the full GitOps flow inside your own cloud account, so you keep declarative, git-driven, reconciled deployments while getting git-push deploys, a preview environment per pull request, per-environment RBAC, full deployment auditability, environment auto-stop and managed cluster upgrades without building the glue yourself. Two honest scoping notes up front: Qovery runs its own deployment engine rather than layering on an Argo CD you install (if you already run Argo CD, there is a beta integration to connect it), and its policy layer sits at the platform and deployment level, complementing rather than replacing an in-cluster admission controller like Kyverno or OPA Gatekeeper. It also does not replace your observability stack.
The reason it matters for agent-driven change is guardrails, not convenience. Three concrete pillars:
Per-environment RBAC with built-in and custom roles scoped per project and environment (Source), so an agent or a token can ship to dev and preview while production stays gated.
Full auditability through audit logs and deployment history that record who or what changed which environment (audit logs, deployment history).
Policy-based API access for automation, where the API Policy Token uses OPA and Rego to authorize what an automated caller or agent can do through the API (Source).
Tie it back to the agent angle: a preview environment per pull request, scoped per-environment permissions, policy-based API access and an audit trail are the four things agent-generated changes need most, and here they are default behavior rather than a custom ApplicationSet generator plus glue you maintain. Akuity and Codefresh GitOps are strong for a different job - operating managed and enterprise Argo CD fleets - and I would recommend them for that. Qovery's focus is developer self-service, environments, previews and guardrails on top of your cluster. Who it fits: teams with more services than platform engineers, and teams letting agents open deployment-affecting pull requests. Who it does not: teams that want to own every controller themselves.
Frequently asked questions
What are the best GitOps tools for Kubernetes in 2026?
There is no single best tool, because GitOps is five layers. For most teams the proven default is Argo CD or Flux CD as the reconciler, Kustomize or Helm for config, Kyverno or OPA Gatekeeper for policy, External Secrets Operator for secrets, and Argo Rollouts or Kargo for delivery and promotion. Add a control plane (Qovery, Akuity, Codefresh GitOps) if you lack the platform team to run all of it.
Is Argo CD or Flux CD better for a small team?
Argo CD if you want a UI and per-application RBAC out of the box, which most small teams do. Flux CD if you are a platform-minded team that prefers CRDs you can automate and a lighter set of controllers. Both are CNCF Graduated and both self-heal, so you will not be stuck either way.
Is Helm a GitOps tool?
No. Helm is a manifest generator that templates and packages Kubernetes YAML. A GitOps reconciler like Argo CD or Flux CD runs Helm and then continuously reconciles the rendered output against your cluster. Helm is part of the config layer, not the reconciler layer.
Can AI agents safely deploy to Kubernetes with GitOps?
Yes, and GitOps is the safest substrate for it, because the agent commits to Git and never holds cluster credentials. Every change is a reviewable, revertible diff. Safety comes from the guardrails around it: policy evaluation, a preview environment per pull request, metric-based automatic rollback, per-environment RBAC and an audit trail.
What guardrails do you need before letting an AI agent deploy to Kubernetes?
Four: a policy engine (Kyverno or OPA Gatekeeper) acting as the machine reviewer, a preview environment per pull request so you observe the change running before merge, progressive delivery with automatic rollback (Argo Rollouts or Flagger), and per-environment RBAC plus an audit trail so an agent can only touch dev and preview and you can reconstruct any change afterward.
How do you deploy AI and GPU workloads with Argo CD or Flux CD?
Reconcile them like any workload, but keep the model out of Git and reference it by digest from object storage or an OCI registry. Declare GPU scheduling (device-plugin resource requests, taints and tolerations) in the same manifests, tune startupProbe so slow model loads do not read as unhealthy, and put non-production GPU environments on auto-stop so idle nodes do not run up the bill.
How do I get preview environments per pull request with GitOps?
With Argo CD, use the ApplicationSet Pull Request generator, which creates an Application per open PR and removes it on close. With Flux, wire your CI to render a per-PR path the reconciler picks up. Or use a control plane like Qovery that spins up a preview environment per pull request and destroys it on merge without custom glue. GitOps has not changed as much as the traffic hitting it. The reconciler is still the easy part; the hard part is the review, the previews, the policy and the audit that now have to keep up with machines opening pull requests. Pick one tool per layer, put the guardrails in before you hand an agent the keys, and you can move at agent speed without giving up the ability to say who changed what.
Romaric founded Qovery to make Kubernetes accessible to every engineering team. He writes about platform strategy, developer experience, and the future of cloud infrastructure.
Next step
GitOps on your own cloud, with guardrails built for agent-speed change.
Qovery runs Argo CD-native GitOps inside your own AWS, GCP, Azure or Scaleway account, or your existing Kubernetes cluster - with OPA-based policy guardrails, per-environment RBAC, full deployment auditability, git-push deploys, a preview environment per pull request and environment auto-stop out of the box.