<!-- llms-explorer concept facts · https://llms-explorer.com/tree/ako-dry-run-mode/ · pack 2026-10-24 · ~976 tokens -->

# AKO Dry Run Mode

> Source-anchored research for AKO Dry Run Mode. Run status: COMPLETED.

Parent: [MongoDB Atlas Infrastructure as Code](https://llms-explorer.com/tree/mongodb-atlas-infrastructure-as-code/) · 4 facets · 11 facts · page: https://llms-explorer.com/tree/ako-dry-run-mode/

## How it works

- Debug logging adds resource diffs for PUT/PATCH comparisons and extra Atlas GET requests; MongoDB recommends using debug logging in non-production because it increases load. (low confidence) — [source](https://www.mongodb.com/docs/atlas/operator/current/ak8so-dry-run.md)

## Problems, failure modes and limitations

- Kubernetes API dry run with dryRun=All validates requests without persisting Kubernetes objects. AKO dry run requires actual Kubernetes resources and previews Atlas-side operations, so Kubernetes API validation alone cannot substitute for it. (high confidence) — [source](https://kubernetes.io/docs/reference/using-api/api-concepts/)

## Comparisons and alternatives

- AKO dry run performs one reconciliation pass and exits rather than continuously reconciling. (high confidence) — [source](https://www.mongodb.com/docs/atlas/operator/current/ak8so-dry-run.md)
- A Kubernetes Job launches AKO with --dry-run. Reconciliation runs once rather than periodically; inspect emitted events with kubectl -n mongodb-atlas-system get events --field-selector reason=DryRun. (high confidence) — [source](https://www.mongodb.com/docs/atlas/operator/current/ak8so-dry-run.md)
- Inference from the v2.16.0 transport: a proposed Atlas mutation event does not prove Atlas would accept that request, because the transport returns a local DryRunError instead of sending the mutation. Treat it as an intent preview rather than an end-to-end execution guarantee. (high confidence) — [source](https://github.com/mongodb/mongodb-atlas-kubernetes/blob/v2.16.0/internal/dryrun/transport.go)

## Facts and statements

- AKO dry run previews intended Atlas mutations without applying them. In v2.16.0, DryRunTransport forwards GET, CONNECT, TRACE and HEAD requests, but returns DryRunError for other methods; POST, PUT, PATCH and DELETE become proposed create, update or delete messages. (high confidence) — [source](https://www.mongodb.com/docs/atlas/operator/current/ak8so-dry-run.md)
- MongoDB's cached documentation snapshot labels AKO dry run public preview and warns that the feature and documentation may change during preview. (low confidence) (verified as of 2026-10-14) — [source](https://www.mongodb.com/docs/atlas/operator/current/ak8so-dry-run.md)
- For upgrade rehearsals, MongoDB instructs users to use a new Kubernetes/OpenShift cluster with target-version CRDs, custom resources, credential secrets, service account and RBAC. Replacing CRDs on the existing cluster may break reconciliation. (low confidence) — [source](https://www.mongodb.com/docs/atlas/operator/current/ak8so-dry-run.md)
- The Atlas CLI provides atlas kubernetes dry-run, with --operatorVersion, --targetNamespace, --watchNamespace, --watch and --watchTimeout. The documented procedure uses --watch to wait; without it, the CLI exits after installation. (high confidence) — [source](https://www.mongodb.com/docs/atlas/cli/current/command/atlas-kubernetes-dry-run.md)
- In release 2.8.1, MongoDB fixed missing dry-run reporting for team-related operations. PR #2268 identifies swallowed errors for AtlasProject team associations; older output could omit intended actions. (high confidence) — [source](https://github.com/mongodb/mongodb-atlas-kubernetes/releases/tag/v2.8.1)
- Ariga's separately developed Atlas Kubernetes Operator documentation says its migration operator lacks dry run; that statement concerns AtlasMigration resources and does not contradict MongoDB AKO's documented dry-run capability. (high confidence) (verified as of 2026-10-23) — [source](https://www.atlasgo.io/integrations/kubernetes/versioned)
