Skip to content

Releases: dag-andersen/argocd-diff-preview

v0.2.8

25 May 15:46
c9a41a4

Choose a tag to compare

Changes

  • New Feature 🔥 Added --repo-regex for cases where repository matching needs more control, and made --repo stricter so it only matches exact repository URLs. Previously, --repo also 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 as gitops and gitops-charts. Use --repo-regex if 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.yaml files, when rendering many applications concurrently (Thanks to @TBeijen 🙏 #431)

v0.2.7

15 May 19:12
43fd6a6

Choose a tag to compare

Changes

  • Bug Fix 🐛 Binary runs now use the same built-in Argo CD Helm values-override.yaml as Docker runs, while still allowing user-provided overrides to take precedence [PR #425]
  • Bug Fix 🐛 Fixed repo-server-api rendering for multi-source Applications that use external $ref sources 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-config and --argocd-config-dir usage [docs] [PR #424]

v0.2.6

10 May 11:45
28a21bb

Choose a tag to compare

Changes

  • New Feature 🔥 Added a new argocd-diff-preview/render application selection annotation. Use argocd-diff-preview/render: always to force an Application or ApplicationSet to be processed, or argocd-diff-preview/render: never to skip an application. This will replace the argocd-diff-preview/ignore annotation in the future [docs] (#413)

v0.2.5

08 May 22:00
db81713

Choose a tag to compare

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-version to be set (Thanks to @jwinters01 🙏 #410)
  • New Feature 🔥 Added --fail-on-duplicate-generated-applications to make duplicate Application names generated by a single ApplicationSet fail 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 releaseName when 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

25 Apr 14:06
8cbd751

Choose a tag to compare

Changes

  • Enhancement ✨ Improved Kubernetes port-forward compatibility for API-based rendering by adding SPDY-over-WebSocket with SPDY fallback, benefiting both server-api and repo-server-api modes on environments like GKE using Fleet/Connect Gateway (Thanks to @samrensenhouse 🙏 #403)
  • Upgrade ⚙️ Upgraded Argo CD from v3.3.0 to v3.3.8 (#406)

v0.2.3

12 Apr 14:54
f1baf84

Choose a tag to compare

Changes

  • Bug Fix 🐛 Fixed repo-server-api renderer failing when a source has both ref and path set [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-length is 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

18 Mar 21:28
911b40d

Choose a tag to compare

Changes

  • Experimental Feature 🧪 Added --traverse-app-of-apps flag 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

13 Mar 19:29
c6e3dfa

Choose a tag to compare

Changes

  • Bug Fix 🐛 Fixed crash when --auto-detect-files-changed encounters symlinks to directories - symlink directories are now skipped gracefully ([issue #378])
  • Bug Fix 🐛 Fixed authentication required errors when using --render-method=repo-server-api - now correctly handles both repo-creds credential templates and the owner/repo slug format for --repo ([issue #355])
  • Updated Docs 📖 Added troubleshooting section for repo-server-api pod crashes causing lost connection to pod / connection refused errors, including mitigations via --concurrency or memory limits.

v0.2.0

09 Mar 22:53
00c1195

Choose a tag to compare

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-preview binary directly in your pipeline or extend the current image with an argocd binary
  • Breaking Change 🚧 Previously, rendered manifests were written to ./output/base-branch.yaml, ./output/target-branch.yaml, and ./output/<branch>/<app>.yaml by default. This has been removed. Use --output-branch-manifests and --output-app-manifests to 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

Screenshot 2026-03-09 at 22 36 19

v0.2.0-experimental-v2

05 Mar 22:29
e5cb003

Choose a tag to compare

Pre-release

Please use v0.2.0 instead 🚀