Releases: dag-andersen/argocd-diff-preview
Releases · dag-andersen/argocd-diff-preview
v0.2.8
Changes
- New Feature 🔥 Added
--repo-regexfor cases where repository matching needs more control, and made--repostricter so it only matches exact repository URLs. Previously,--repoalso matched substrings of repository URLs. That behavior was undocumented and could cause the wrong source to be patched when one repository name was a substring of another, such asgitopsandgitops-charts. Use--repo-regexif you relied on substring or pattern-based repository matching (#436) - Bug Fix 🐛 Application renames are now shown in the diff output even when the rendered resources are otherwise unchanged (#435)
- Bug Fix 🐛 Fixed repo-server concurrency issues that could corrupt Helm repository files, such as empty
index.yamlfiles, when rendering many applications concurrently (Thanks to @TBeijen 🙏 #431)
v0.2.7
Changes
- Bug Fix 🐛 Binary runs now use the same built-in Argo CD Helm
values-override.yamlas Docker runs, while still allowing user-provided overrides to take precedence [PR #425] - Bug Fix 🐛 Fixed
repo-server-apirendering for multi-source Applications that use external$refsources when the primary source matches--repo([issue #426], [PR #428]) - Bug Fix 🐛 Improved cleanup of preview Applications by retrying finalizer removal when Argo CD updates the Application concurrently ([issue #414], [PR #429])
- Updated Docs 📖 Added binary examples for customizing Argo CD Helm values, including
./argocd-configand--argocd-config-dirusage [docs] [PR #424]
v0.2.6
Changes
- New Feature 🔥 Added a new
argocd-diff-preview/renderapplication selection annotation. Useargocd-diff-preview/render: alwaysto force an Application or ApplicationSet to be processed, orargocd-diff-preview/render: neverto skip an application. This will replace theargocd-diff-preview/ignoreannotation in the future [docs] (#413)
v0.2.5
Changes
- New Feature 🔥 Added support for installing Argo CD from OCI Helm registries, such as
oci://ghcr.io/argoproj/argo-helm/argo-cd. OCI chart URLs require--argocd-chart-versionto be set (Thanks to @jwinters01 🙏 #410) - New Feature 🔥 Added
--fail-on-duplicate-generated-applicationsto make duplicateApplicationnames generated by a singleApplicationSetfail fast in CI (Thanks to @drewbailey 🙏 #405) - Enhancement ✨ Added
checksum/secret:as a default diff ignore prefix to reduce noisy diffs from generated secret checksums (#412) - Bug Fix 🐛 Fixed false-positive Helm diffs by setting a stable Helm
releaseNamewhen it is unset, preventing temporary preview Application names from leaking into rendered resource names ([issue #408], #411) - Bug Fix 🐛 Fixed Helm dependency build errors being reported as misleading project permission errors, so the original Helm failure is now surfaced (Thanks to @TBeijen 🙏 #417)
- Bug Fix 🐛 Fixed cleanup of Applications by removing Argo CD deletion finalizers before deletion, preventing pre-delete hooks from blocking cleanup ([issue #414], #415)
v0.2.4
Changes
- Enhancement ✨ Improved Kubernetes port-forward compatibility for API-based rendering by adding SPDY-over-WebSocket with SPDY fallback, benefiting both
server-apiandrepo-server-apimodes on environments like GKE using Fleet/Connect Gateway (Thanks to @samrensenhouse 🙏 #403) - Upgrade ⚙️ Upgraded Argo CD from
v3.3.0tov3.3.8(#406)
v0.2.3
Changes
- Bug Fix 🐛 Fixed
repo-server-apirenderer failing when a source has bothrefandpathset [issue #401] - Bug Fix 🐛 Fixed markdown summary being too long when many applications have changes [PR #400]
- Bug Fix 🐛 Show helpful warning when
--max-diff-lengthis too small to display any diff content, instead of the misleading "No changes found" message (#393) - Updated Docs 📖 Added KSOPS stub plugin and SOPS metadata stripping workarounds for CMP users (Thanks to @mpeterson 🙏 [PR #395])
- Updated Docs 📖 Clarified app-of-apps support [PR #390]
v0.2.2
Changes
- Experimental Feature 🧪 Added
--traverse-app-of-appsflag that recursively discovers and renders child Applications and ApplicationSets found in rendered manifests, supporting multi-level app-of-apps hierarchies up to 10 levels deep. Please open an issue and give feedback if you try it out 🙏🏻 More details in the docs (Feature request: #41, #75, #200, #381) - Updated Docs 📖 Added app-of-apps guide documenting usage, filter behavior, and how application selection options interact with child app discovery
- Updated Docs 📖 Rewrote generated-applications page with full pipeline examples for Helm and Kustomize pre-rendering (PR #387)
v0.2.1
Changes
- Bug Fix 🐛 Fixed crash when
--auto-detect-files-changedencounters symlinks to directories - symlink directories are now skipped gracefully ([issue #378]) - Bug Fix 🐛 Fixed
authentication requirederrors when using--render-method=repo-server-api- now correctly handles bothrepo-credscredential templates and theowner/reposlug format for--repo([issue #355]) - Updated Docs 📖 Added troubleshooting section for
repo-server-apipod crashes causinglost connection to pod/connection refusederrors, including mitigations via--concurrencyor memory limits.
v0.2.0
Overview
This release brings a long-awaited improvement to the diff preview - a complete overhaul of the diffing system. The old implementation was heavily inspired by git diff. The new one is a custom, fully in-memory implementation that is both faster and more powerful.
We're also using this opportunity to update several default values that we've wanted to change for a long time. The goal is a better out-of-the-box experience, so users don't need to override parameters to get optimal performance.
We try to avoid breaking changes, so we've bundled several of them into this single release to minimize the upgrade overhead.
Changes
- New Feature 🔥 Diff preview under each Application is now split into per-resource sections, making it easier to identify exactly which Kubernetes resources changed
- Enhancement ✨ Container image is now ~60% smaller
- Enhancement ✨ Changed the default render method from the Argo CD CLI to the server API (introduced in v0.1.22), which is faster and works with namespace-scoped Argo CD instances
- Breaking Change 🚧 Removed the Argo CD CLI binary from the container image, since the new default render method no longer requires it. If you want to continue using the CLI for rendering, either install the
argocd-diff-previewbinary directly in your pipeline or extend the current image with anargocdbinary - Breaking Change 🚧 Previously, rendered manifests were written to
./output/base-branch.yaml,./output/target-branch.yaml, and./output/<branch>/<app>.yamlby default. This has been removed. Use--output-branch-manifestsand--output-app-manifeststo restore the old behaviour. - Breaking Change 🚧 Changed default values for several parameters (see table below)
| Parameter | Old Default | New Default | Why? |
|---|---|---|---|
--render-method |
cli |
server-api |
cli is slower than the other options and does not work with namespace-scoped Argo CD |
--line-count |
7 |
5 |
With the improved per-resource sections, fewer context lines are needed to understand a change |
--watch-if-no-watch-pattern-found |
false |
true |
Prevents accidentally skipping applications that have no annotations or watch patterns |
--auto-detect-files-changed |
false |
true |
A strictly better default — automatic change detection with no downsides. --files-changed still takes precedence |
--use-argocd-api |
false |
Removed | Deprecated. Use --render-method instead |
Preview with resource headers

v0.2.0-experimental-v2
Please use v0.2.0 instead 🚀