Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.8.0/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.8.0/manifests/ha/install.yaml
Mono-Repository Improvements
Enhanced performance during manifest generation from mono-repository - the repository that represents the
desired state of the whole cluster and contains hundreds of applications. The improved argocd-repo-server
now able to concurrently generate manifests from the same repository and for the same commit SHA. This
might provide 10x performance improvement of manifests generation.
Annotation Based Path Detection
The feature that allows specifying which source repository directories influence the application manifest generation
using the argocd.argoproj.io/manifest-generate-paths
annotation. The annotation improves the Git webhook handler
behavior. The webhook avoids related applications reconciliation if no related files have been changed by the Git commit
and even allows to skip manifests generation for new commit by re-using generation manifests for the previous commit.
Horizontal Controller Scaling
This release allows scaling the argocd-application-controller
horizontally. This allows you to manage as many Kubernetes clusters
as needed using a single Argo CD instance.
New Core Functionality Features
Besides performance improvements, Argo CD got a lot of usability enhancements and new features:
- Namespace and CRD creation #4354
- Unknown fields of built-in K8S types #1787
- Endpoints Diffing #1816
- Better compatibility with Helm Hooks #1816
- App-of-Apps Health Assessment #3781
Global Projects
This release makes it easy to manage an Argo CD that has hundreds of Projects. Instead of duplicating the same organization-wide rules in all projects
you can put such rules into one project and make this project “global” for all other projects. Rules defined in the global project are inherited by all
other projects and therefore don’t have to be duplicated. The sample below demonstrates how you can create a global project and specify which project should
inherit global project rules using Kubernetes labels.
User Interface Improvements
The Argo CD user interface is an important part of a project and we keep working hard on improving the user experience. Here is an incomplete list of implemented improvements:
- Improved Applications Filters #4622
- Git tags and branches autocompletion #4713
- Project Details Page #4400
- New version information panel #4376
- Progress Indicators #4411
- External links annotations #4380 and more!
Config Management Tools Enhancements
Bug fixes and under the hood changes
In addition to new features and enhancements, we’ve fixed more than 50 bugs and upgraded third-party components and libraries that Argo CD relies on.
Enhancements
- feat: support resource actions on CRDs that use status subresources (#4690)
- feat: Add autocomplete for repo Revisions (#4645) (#4713)
- feat: Add support for ExecProvider cluster auth (#4600) (#4710)
- feat: Annotation based app paths detection in webhooks (#4699)
- feat: add Istio virtual service to the network view - part of #4675 (#4677)
- feat: Util for generate global project from ClusterRole (#4653)
- feat: Support oci-based helm repository (#4018)
- feat: Add 'proj role list-tokens' command (#4674)
- feat: support generating manifests for the same commit in parallel (#4625)
- feat: Include cluster name in application filter (#4529)
- feat: Add additional printer columns for Health and Sync status (#4641)
- feat: global project (#4506)
- feat: Failed manifest generation protection (#4238) (#4430)
- feat: Support controller horizontal scaling (#4285)
- feat: autosync protection (#4475)
- feat: Add version information panel (#4312) (#4376)
- feat: Add labels to list view icons(#4396) (#4493)
- feat: Upgrade Dex to v2.25.0 (#4470)
- feat: Add external link annotation support (#4380)
- feat: add labels for projects (#4446)
- feat: Progress indicators in Argo CD UI (#4227) (#4411)
- feat: display k8s object CREATED_AT time in local time instead of UTC (#4347) (#4383)
- feat: allow diff against a revision (#4205)
- feat: support gzip compression in api server (#4218)
- feat: Add Jsonnet version to version endpoint (#4207)
- feat: Flag to add kustomize common labels (#4131)
- feat: support storing app parameters in .argocd-app.yaml file (#4084)
- feat: do not include kube-api check in application liveness flow (#4163)
- feat: Add configurable Helm version (#4111)
- feat: add grpc metrics in repo server (#3827)
- feat: add git histogram metrics (#3828)
- feat(ui): Improve UX when filtering applications (#4403) (#4622)
- feat(cli): Add ID option to 'proj role create-token' (#4632) (#4636)
- feat(ui): widgets don't have tooltips (#4257) (#4422)
- feat(ui): Migrate project summary settings to EditablePanel for parity with rest of UI (#4400)
- feat(ui): widgets don't have tooltips (#4257) (#4261)
- feat: exclude files listed under exclusions (#4686)
- feat: adding commonAnnotations for Kustomize (#4613)
- feat: Add tooltips to Role JWTs view (#4642)
- feat: Add status badge for project #4001 (#4301)
- feat: Allow deny (#4293) (#4294)
- feat: Add tooltips to sync result table (#4310)
- feat: app create with -f should not ignore other options (#4322)
- feat: Added cluster authentication to AKS clusters (#4265)
- feat: upgrade redis deps to enable compression (#4259)
- feat: Migrate to Homebrew Core (#3978) (#3979)
- feat: allow clusters to include resources independently (#4027)
- feat: Add openshift as a dex connector type which requires a redirectURI (#4222)
- feat: clear filters to show (#4142) (#4143)
- feat: Namespace/CRD creation should happen before PreSync phase #4354
- feat: Argo CD should detect unknown fields in invalid specs as OutOfSync #1787
- feat: Diff on Endpoint confused by IP sorting #1816
- feat: Child applications should not effect parent application's health by default #3781
- feat: No error/warning condition if application destination namespace not monitored by Argo CD #4329
Bug Fixes
- fix: infer app destination server in indexer to prevent concurrent app object modification (#4993)
- chore: Fix erroneous path expansion in release action (#4907)
- fix(repository.go): rename .argocd-source.yaml in error message (#4964)
- chore: Upgrade go-jsonnet to v0.17.0 (#4891)
- fix: rollout health could incorrectly report v0.9 rollouts as Progressing (#4949)
- fix: reset cached manifest generation errors after 1hr instead of 12 requests (#4953)
- fix: cache missing app path and commit verification errors (#4947)
- fix: upgrades github.com/vmihailenco/msgpack/v5 to fix #4933 (#4952)
- fix: correctly compare application destinations with inferred cluster URL (#4937)
- refactor: upgrade helm to v3.4.1 (#4938)
- fix: failUnmarshal only checks for file resembles a resource (#4729)
- fix: Argo CD should present the live object in the resource version in git (#4740)
- fix: Only verify GPG signatures on metadata requests when verification is enforced (#4741)
- fix: Repo-server has silent unmarshalling errors leading to empty applications (#4423) (#4708)
- fix: inject artificial delay between sync waves to better support health assessments (#4715)
- fix: adding helm values file in New App (#4635)
- fix: add flag to indicate end of logs (#4696)
- fix: add argocd-redis SA to nonroot security context constraint (#4660)
- fix(ui): stack overflow crash of resource tree view for large applications (#4685)
- fix: Pick up correct commit SHA when using annotated git tags (#4231) (#4538)
- fix: ssh repo url match failed when webhook github http custom port (#4532)
- fix: Serve ReDoc JS from Argo CD server instead of from CDN (#4594)
- fix: only bundle the yaml language for Monaco (#4582)
- fix(ui): UI crash when ksonnet app has no environments (#4566)
- fix: login with apiKey capability (#4557)
- fix: editing Clusers in the UI drops credentials from the secret (#4553)
- fix: Summary legend overflow view (#4523)
- fix: api-server should not try creating default project it is exists already (#4517)
- fix: JS error on application list page if app has no namespace (#4499)
- fix(info.go): omitting wildcard paths from controller cache (#4479)
- fix: reposerver: Set GRPC max message size (#4472)
- fix: prevent sync error overflowing (#4453)
- fix: show error message if unable to terminate operation (#4437)
- fix: Support transition from a git managed namespace to auto create (#4401)
- fix(ui): center icon tiles in list view (#4262) (#4266)
- fix: Cluster remove should return an error for unknown cluster name (#4366)
- fix: Sync Window status in argocd CLI is not matched with argocd UI for same sync window (#3831) (#4372)
- Fixed padding issues with application list in cards and row view (#4364)
- fix: Reword application is healthy (#4336) (#4357)
- fix: Add tooltip for application tile detail labels (#4341) (#4343)
- fix: application external url falsely uses backend servicePort (#4339)
- fix: failed syncs are not retried soon enough (#4353)
- fix: Log output stops if message is too long (#3258) (#4334)
- fix: create valid spec for project policy (#4332)
- fix(applications-table.tsx): adding "name" to Cluster (#4317)
- fix: Only processes need root uid will run as root inside test container (#4210)
- fix: Log an error when invalid token exists (#4318)
- fix(logging.go): changing marshaler for JSON logging to use gogo (#4319)
- fix: Bundle google font into webpack build (#4324)
- fix: Pending deletion tooltip includes trailing semicolon
;
(#4250) (#4251) - fix: load only project names in UI (#4217)
- fix: vertically center 3+ letter abbreviations (#4179) (#4180)
- fix(cli): Fix local diff/sync of apps using cluster name (#4201)
- fix: remove stray period (#4183) (#4184)
- fix: Allow no config cluster (#4164)
- fix: UI setting auto sync causes erroneous config (#4118)
- fix: log warn when external url is not fully qualified (#4108)