Argo CD v2.10.0stable Released Feb 06, 2024
Impact Score: 5/10

Argo CD v2.10.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: argocd ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Argo CD v2.10.0. Source highlight: kubectl create namespace argocd

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โœจ New Features & Capabilities (6)

  • feat(controller): add sync jitter(#14241) (#16820) (#16960)
  • feat(ui): add status panel extensions (#15780)
  • feat: Implement Server-Side Diff (#13663)
  • feat(ui): Show prompt when every resource requires pruning (#16603)
  • feat: PostDelete hook support (#16595)
  • feat(security): log user when access is blocked (#16558)

โšก Performance & Enhancements (3)

  • docs: improve toolchain/k3d docs (#15913)
  • docs: Improve helm docs #15706 (#15755)
  • docs: improve notifications docs (#15816)

๐Ÿ”ง Bug Fixes & Patches (6)

  • 2.10.0 has a major issue in application controller running in HA mode. A fix will be in 2.10.1.
  • feat(appset): Advanced Templating using templatePatch (#14893)
  • fix(ci): correct helm checksum path (#17081) (#17083)
  • fix(controller): fix application controller deployment crashing (#16984) (#17093)
  • fix(server): allow disabling content-type check (#16959) (#16976)
  • fix(appcontroller): Uptake fix in gitops engine which fixes application sync with auto create ns and server side apply (#16942) (#16963)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## Quick Start ### Non-HA: ```shell kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.10.0/manifests/install.yaml ``` ### HA: ```shell kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.10.0/manifests/ha/install.yaml ``` ## Release Signatures and Provenance All Argo CD container images are signed by cosign. A Provenance is generated for container images and CLI binaries which meet the SLSA Level 3 specifications. See the [documentation](https://argo-cd.readthedocs.io/en/stable/operator-manual/signed-release-assets) on how to verify. ## Upgrading If upgrading from a different minor version, be sure to read the [upgrading](https://argo-cd.readthedocs.io/en/stable/operator-manual/upgrading/overview/) documentation. ## Known Issues * 2.10.0 has a [major issue in application controller](https://github.com/argoproj/argo-cd/issues/17124) running in HA mode. A [fix](https://github.com/argoproj/argo-cd/pull/17167) will be in 2.10.1. ## Changes This release includes 217 contributions from 114 contributors (90 of them new) with 56 features and 47 bug fixes. ### Features (56) - feat(controller): add sync jitter(#14241) (#16820) (#16960) - feat(ui): add status panel extensions (#15780) - feat: Implement Server-Side Diff (#13663) - feat(ui): Show prompt when every resource requires pruning (#16603) - feat: PostDelete hook support (#16595) - feat(security): log user when access is blocked (#16558) - feat(ui): Add sourceNamespaces in Projects UI and only show it if AppsInAnyNamespaceEnabled flag is set (#16249) - feat(appset): Advanced Templating using templatePatch (#14893) - feat: Argocd notification self service (#16488) - feat(cli): Added example to admin-cluster.go and projectwindow.go files (#16128) - feat(server): log app Spec along with event (#16416) - feat(opentelemetry): :sparkles: support for secured OTLP endpoint and headers (#15573) - feat(oidc): optionally query OIDC UserInfo to gather group claims (#12062) - feat(app): Support app sync --dry-run --revision some-revision with arbitrary revisions(#12592) (#16387) - feat: add support for ALL_PROXY (#10451) - feat(appset): Added 'slugify' sprig function (#15188) - feat: Support for Kustomize Components (#16230) - feat: add retry logic for k8s client #7692 (#16154) - feat: grace period for repo errors to prevent aggressive unknown sync state (#16085) - feat: add examples to --help output for admin.go file (#16030) - feat: add examples to --help ouput for argocd_server.go file (#16032) - feat: Allow 'both' option for uibannerposition (#14623) - feat: PKCE authentication flow for web logins #9890 (#15889) - feat(cli): example for generate-allow-list (#16136) - feat(cli): Add examples to --help output for get KEYID (#16019) - feat(cli): Add examples to --help output for "gpg_list" (#16017) - feat: Add examples to --help output for remaining "create PROJECT ROLE-NAME" (#15983) - feat(cli): Add examples to `argocd proj role` cli family (#15875) - feat(cli): add admin-app-example (#15690) (#15861) - feat(cli): add project flag to avoid permission denied errors on 404 (#16040) - feat: expose notification secrets for request payload templating (#16055) - feat: make git requests configurable (#15646) - feat: add write back to application informer (#15987) - feat(cli): Add examples to --help output for "list PROJECT" (#16033) - feat(cli): Add examples to --help output for "gpg add" (#16020) - feat(ui): Recursive Helm Values files detection (#15935) (#15936) - feat: use rate limited queue (#15480) - feat: Add examples to --help output for remaining "get APPNAME" (#15862) - feat(cli): add the repocred-list-example (#15690) (#15869) - feat(cli): add the cluster-list-example (#15690) (#15866) - feat: Add examples to --help output for "delete PROJECT ROLE-NAME" (#15986) - feat(cli): Add examples to projectwindows.go (#15860) - feat(health): add iammanager.keikoproj.io/Iamrole health check (#15899) - feat: Add examples to --help output for "generate-spec PROJECT" (#15871) - feat(cli): add the repo-example (#15690) (#15865) - feat(cli): Add examples to --help output for "set APPNAME" (#15872) - feat(cli): Add examples to --help output for "logs APPNAME" (#15873) - feat(cli): Add example to argocd relogin command (#15839) - feat: Add examples to --help output for all "argocd proj" cmds (#15824) - feat(cli): Added example to --help output for bcrypt (#15838) - feat(cli): Add example to --help output for app actions (#15822) - feat(cli): Add examples to --help output for remaining "argocd account" (#15814) - feat(cli): Add examples to --help output for remaining "argocd repocreds" cmds (#15846) - feat(cli): Add example to `--help` output 1 (#15782) - feat(cli): Added example to --help output for context (#15809) - feat(ci): retry individual e2e tests (#15696) ### Bug fixes (47) - fix(ci): correct helm checksum path (#17081) (#17083) - fix(controller): fix application controller deployment crashing (#16984) (#17093) - fix(server): allow disabling content-type check (#16959) (#16976) - fix(appcontroller): Uptake fix in gitops engine which fixes application sync with auto create ns and server side apply (#16942) (#16963) - fix: Use the cache for sharding (#15237) (#16902) - fix: enforce content type header for API requests (#16860) (#16877) - fix(appset): Use case insensitive comparison of repo details in appset webhook handler (#16503) (#16504) - fix(cli): `argocd admin settings resource-overrides health` to not ignore wildard customizations (#16461) - fix(repo-server): excess git requests, short-circuit GenerateManifests ref only (#16501) - fix(appset): Always remove ownerReferences when appset policy doesn't allow app's deletion (#12172) (#16506) - fix(ui): use background delete to match k8s terminology (#15579) - fix: Use math.MaxInt (instead of math.MaxInt64) to fix builds on 32bit platforms (#16065) - fix: cert-manager.io/certificate health.lua for consistent issuing (Issue #16523) (#16520) - fix(doc): Fix documentation templatePatch (#16522) - fix: Tooltips point in wrong direction#11935 (#12578) - fix(ui): add exec check to avoid API calls (#16168) - fix PerconaXtraDBCluster health (#16434) - fix(controller): Address diff cache miss issues (#16458) - fix(cli): pass redis compression to cluster stats and shards commands (#16060) (#16421) - fix: upgrade notifications-engine (#16354) - fix(ui): User Info blob is too far to the right relative to Applications/Settings/Documentation (#12016) - fix: fixed cli admin dashboard cmd (#16430) - fix(appset): use topics for Gitlab SCM Provider (#13169) (#13170) - fix(appset): prevent app deletion according to appset policy (#12172) (#15903) - fix: failing lint and unit test (#16275) - fix(appset): Fix name conflict in appset controller (#16207) (#16222) - fix(ui): summary: fix sync options block layout (#16152) - fix api docs (#16186) - fix(ui): Improve apps tiles view (#16140) - fix(appset): ignoreApplicationDifferences not working (#15965) - fix: rbac validate command can now take either namespace or policy-file (#15543) - fix: Add timezone to projectwindows list (#15929) - fix(banzai/KafkaCluster): Update health.lua (#15962) - fix(docs): proj role list example (#16074) - fix: list manually provided external urls before generated ones (#13296) - fix: Add ENV variable to configure GRPC Keep Alive Time (#15656) (#15806) - fix: delete event cache deadlock test flakiness (#15964) - fix(ci): unstable integration test (#15976) - fix: update docs for ApplicationService.Get to reflect reality (#15927) - fix: Replace antonmedv/expr with expr-lang/expr (#15879) - fix(notifications): Allow notifications controller to notify on all namespaces (#15702) - fix(cli): Do not error out with no errors (#15688) - fix: codeowners syntax error (#15781) - fix(appset): add option to disable SCM providers entirely (#14246) (#15248) - fix(applicationset): git generator ignores empty files (#15661) - fix(ci): misplaced config option (#15698) - fix(ci): do not fail fast on e2e test failures (#15694) ### Documentation (39) - docs(hooks): add postdelete to table (#17048) (#17051) - docs(kustomize): add components yaml example (#17043) (#17046) - docs(argocd-cm): add timeout.reconciliation.jitter example (#17044) (#17047) - docs(applicationset): explain impact of empty spec in templatePatch (#17042) (#17045) - docs: add context to configmap example (#16763) (#16764) - docs: configmap items are strings (#16737) (#16738) - docs: add documentation for the argocd cluster commands (#16555) - docs: update telepresence quickstart link (#16616) - docs: callout the need to restart pods to pickup service accounts (#16610) - docs: fix indentation for preserve file mode (#16598) - docs(monitoring): add new ServiceMonitors for redis, dex, notifications (#16534) - docs: fix broken link in secret-management.md (#16588) - docs: Add Kong Inc. as a user (#16582) - docs: Fix minor typo in Declarative Setup (#16550) - docs: fix kustomize patches example (#16353) - docs: Katie as Release Champion for 2.10 and Added a column for Release Approver (#16341) - docs: update release doc and issue template (#16329) - docs: fix upgrade instructions (#16326) - docs: Add @gdsoumya to approvers in OWNERS (#16331) - docs: Document `ApplyOutOfSyncOnly` in application spec (#16282) - docs: add Axians ACSP to users (#16226) - docs: Ensure consistent proper case of Kubernetes (#16205) - docs: Add Semgrep as a user (#16185) - docs(cmp): Document ConfigManagementPlugin.spec.version more clearly (#15974) - docs(appset): ApplicationSets generators docs to use go templates (#16109) (#16127) - docs: added identity-center.md doc for AWS SSO (#15689) - docs(bounty): proposal for feature to hide annotations on secrets in UI (#15699) - docs: add percona to list of Argo users (#16079) - docs: improve toolchain/k3d docs (#15913) - docs: Improve helm docs #15706 (#15755) - docs: clarify health inheritance (#15799) - docs: improve notifications docs (#15816) - docs: actually all helm hooks are ignored (#15752) - docs: add `CONTRIBUTING.md` copy at repo root (#14889) - docs: add Mercedes-Benz.io to user list (#15768) - docs: Add documentation for Zitadel SSO integration (#15029) - docs: move self-signed certs gitlab scm docs (#15720) - docs: add dynamic cluster distribution doc in the menu (#15716) - docs: Maintaining Uniformity In Documentation Writing Style (#15713) ### Other (65) - chore(deps): bump Helm to 3.14.0 (#17031) (#17032) (#17061) - chore(deps): rm go-jose Cxb6dee8d5-b814 high vuln (#16947) (#16970) - chore(deps): bump github.com/go-git/go-git/v5 from 5.8.1 to 5.11.0 (#16911) - Added Openkruise workload integration health check scripts (#16238) (#16805) - Add meta.Duration as known type for diffing (#16587) - Add Statsig as a user (#16604) - chore: upgrade kubernetes dependencies from 0.26.4 to 0.26.11 (#16581) - resource_customizations/db.atlasgo.io: atlas operator resources (#16364) - chore: update PR template to suggest cherry-pick releases (#16560) - chore(deps): bump cosign-installer from 3.1.2 to 3.2.0 (#16495) - Fix extra space in application tree pod group (#16358) - Renamed/corrected OCI proposal filename (#16452) - chore: Update USERS.md (#16425) - chore: Bump otel to 1.21.0 (#16420) - chore(deps): bump github.com/go-jose/go-jose/v3 from 3.0.0 to 3.0.1 (#16418) - chore(deps): bump docker/build-push-action from 4.1.1 to 5.1.0 (#16392) - chore: Use safe example domains defined in RFC 2606 (#16389) - Add traefik pending ingress solution (#16391) - chore(deps): bump @types/superagent from 4.1.15 to 4.1.21 in /ui (#16342) - chore(deps): fix superagent vulnerability (#16305) - chore(deps): bump Helm to 3.13.2 (#16320) (#16321) - chore(deps): bump argo-ui (#16264) - copy ServerName into clientOpts (#16267) - chore(ui): Change testEnvironment from node to jsdom (#16287) - Update USERS.md (#16251) - Documentation "Annotations and Labels used by Argo CD": fix internal link to `../faq.md#why-is-my-app-out-of-sync-even-after-syncing` (#16236) - chore: update gitops engine version (#16232) - chore: add SECURITY-INSIGHTS.yml (#16135) - chore: Upgrade Redis to redis:7.0.14 (#16164) - Added an example of project scoped cluster (#16210) - chore: specify namespace when restarting deployments in remote e2e tests (#16192) - Remove unnecessary error checking (#16150) - chore(appset): better structured logging for controller (#16149) - chore: fix typo in declarative tests filename (#15934) - chore: let docs approvers approve mkdocs.yml (#16134) - chore(deps): bump kustomize to v5.2.1 (#16054) - added example of using build env vars in your Kustomized Argo CD Application (#16025) - chore: Revert "fix: Replace antonmedv/expr with expr-lang/expr" (#16027) - add example to --help command in argocd_admin_dashboard.md file (#16034) - chore(deps): upgrade k8s version and client-go (#15852) - Added timezone example to sync_windows page (#15926) - bump helm 3.13.1, kustomize 5.1.1 (#15703) - chore(deps): bump github.com/google/go-cmp from 0.5.9 to 0.6.0 (#15919) - chore(deps): bump library/golang from 1.21.1 to 1.21.3 in /test/remote (#15892) - chore(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 (#15916) - chore(deps): bump google.golang.org/grpc from 1.56.2 to 1.58.3 (#15893) - test(e2e): allow build of argocd-e2e-cluster image for remote tests (#15805) - chore(deps): bump gitops-engine (#15736) - chore: log more fields with error (#15735) - chore: skip server certificate verification for http requests in e2e tests (#15733) - test(e2e): always specify master as the initial git branch (#15662) - chore(ci): fix generate code CI failure (#15828) - test(e2e): update git submodule remote tests to use submodule url (#15701) - test(e2e): do not always include plaintext for account update password (#15665) - fea(cli)t: Add example to --help output for "argocd appset get" (#15808) - chore: Add SCRM Lidl International Hub as users (#15801) - chore(cli): clarify core mode code (#15800) - chore: allow docs approvers to merge USERS.md changes (#15773) - chore: revert codeowners test change (#15777) - chore: don't make argocd-approvers owners of anything (#15774) - test: bump k8s versions for e2e tests (#15766) - chore: set proper struct tag for ApplicationSetTerminalGenerator.Plugin field (#15742) - Fixed Custom Link Text not Hyperlinked (#15747) - Converted italic text to normal text (#15692) - chore(deps): bump semver from 5.7.1 to 5.7.2 in /ui-test (#14457)