Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.10.0/manifests/install.yaml
HA:
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 on how to verify.
Upgrading
If upgrading from a different minor version, be sure to read the upgrading documentation.
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): ✨ 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)