Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.1.0-rc1/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.1.0-rc1/manifests/ha/install.yaml
Argo CD Core
Argo CD Core - lightweight Argo CD distribution that packages only core GitOps features and relies
on Kubernetes API/RBAC to power UI and CLI.
Core Features
- The synchronization process became much much faster and requires significantly less memory.
- An additional caching that ensures that each repository's target revisions are queried only once per
reconciliation cycle. This dramatically reduces the number of Git requests. - Improved Diffing Customizations: use JQ path expressions to exclude required fields from the diffing.
- Health assessment support for new CRDs: introduced health assessment of CRDs from trident.netapp.io,
elasticsearch.k8s.elastic.co, cluster.x-k8s.io, and minio.min.io API groups.
Improved Settings
A set of changes had been implemented to simplify configuring Argo CD.
- Simplified Repository Registration: you no longer need to modify the argocd-cm ConfigMap to register a
new Git or Helm repository. - Enhanced Resource Customizations: the resource.customizations key has been deprecated in favor of
a separate ConfigMap key per resource. - Reference secret values from any Kubernetes secret: starting v2.1 you can use sensitive data stored in
any Kubernetes secret to configure Argo CD. - Simplify parametrization of Argo CD server processes: an additional optional ConfigMap argocd-cmd-params-cm
has been introduced.
Refreshed User Interface
- Enhanced and more consistent filters on Applications List and Applications Details pages.
- Status bar on the Application List page.
- The redesigned search box on the Application List page and more.
The argocd-util CLI deprecation
The argocd CLI and now available under argocd admin subcommand.
Features
- feat: add 'argocd-util cluster shards' command that prints shards statistics (#6353)
- feat: add custom resource health checks for trident.netapp.io/TridentOrchestrator and trident.netapp.io/TridentBackendConfig (Closes [ISSUE #6550]) (#6552)
- feat: add first class support to access repositories using proxy (#5581) (#6286)
- feat: Add health-checks for Elasticsearch #6052 (#6052)
- feat: add network policies to restrict traffic flow between argocd components (#6156)
- feat: add proxy field to repository create form (#6565)
- feat: Add Redis SSL support. Fixes #4688 (#6742)
- feat: add status bar to applications list, issue #6275 (#6710)
- feat: add support to backup applicationsets (#6095)
- feat: Add the ability to change user password in the UI (#5444)
- feat: allow admins to enable the usage of lua standard library (#6087)
- feat: allow argocd-cm to reference K8S Secrets (#4188) (#4342)
- feat: allow jq path expressions in diffing customizations (#4320) (#6109)
- feat: allow substitutions in plugin env variables (#6097)
- feat: Ask for confirmation when adding a cluster (#6172)
- feat: cache resolved git/helm repository revisions (#6102)
- feat: disable reconciliation if timeout.reconciliation is set to 0 (#6406)
- feat: Externalize TLS cert for argocd-server (#6071)
- feat: Headless Argo CD (aka GitOps Agent) (#6361)
- feat: Ignore preserveUnknownFields in Diff from CRD Spec (#6503)
- feat: Implement cluster-api CRD health checks (#5142)
- feat: Implement MinIO Tenant CRD health check (#6509)
- feat: make http client retryable (#6632)
- feat: merge argocd-util into 'argocd admin' subcommand (#6773)
- feat: Repository Configuration as Secrets (#6103)
- feat: simplify parametrization of Argo CD server processes (#6328)
- feat: split resource.customizations into sub keys (#6060)
- feat: Support Kustomize --force flags (#6443)
- feat: support managing cluster resources in a namespaced mode (#6581)
- feat: Supported set metadata annotations with
argocd-util app generate-spec
command (#6633) - feat: Upgrade Helm to v3.6.0 and pass --kube-version to templating (#6359)
- feat: use RLock and RUnlock for project to improve performance (#6225)
- feat(ui): Add view toggle to hide/show unschedulable node in pod view (#6263)
- feat(ui): Adds resource filter panel. Fixes #6379 #6331 #6081 (#6717)
- feat(ui): Improved applications list filters (#6091)
- feat(ui): Information header for selected resource panel (#5557)
- feat(ui): Keyboard shortcuts (#5601)
- feat(ui): Persist visibility of apps list filters in local storage (#6748)
Bug Fixes
- fix: [#5462] ArgoCD UI External links dropdown caret positioned incorrectly in list view (#6668)
- fix: add client side retry to prevent 'transport is closing' errors (#6402)
- fix: add generate bearer token option to
argocd-util cluster generate-spec
(#6317) - fix: add insecure-skip-tls-verify on helm pull when Creds.InsecureSkipVerify is set to true (#6458)
- fix: add missing --container flag to 'argocd app logs' command (#6320)
- fix: allow argocd-notification ingress to repo-server (#6746)
- fix: Allow gRPC connections from gRPC versions >1.17.x (#6577)
- fix: app hard refresh should refresh cached app details (#6463)
- fix: Application list page filter counts are confusing (#6625) (#6626)
- fix: argocd cluster add --in-cluster (#6276)
- fix: argocd-server crashes due to nil pointer dereference (#6757)
- fix: avoid possible nip pointer dereference during syncing (#6354)
- fix: Cannot read property 'forEach' of undefined (#6803)
- fix: controller should refresh app before running sync operation (#6294)
- fix: display log streaming error in logs viewer (#6100) (#6273)
- fix: Don't record the user claims of invalid tokens (#5897)
- fix: download Pod Logs button not honouring argocd-server rootpath (#6548) (#6627)
- fix: Enable helm OCI to work for lots of different URLs without having to create a repo for each one (#6027)
- fix: Fail gracefully when unable to unmarshal cluster secret (#6427)
- fix: file descriptor leak (#6064)
- fix: grpc web proxy must ensure to read full header (#6319)
- fix: gzip static resources if gzip is enabled (#6279)
- fix: knative health reporting #6130 (#6131)
- fix: label selector is useless when name variable is not set (#5975)
- fix: logout redirect URL (#6347)
- fix: make application-controller run as nonroot (#5819)
- fix: missing live resources without a health check should not affect application health (#6446)
- fix: Modify column size for Count field (#6611)
- fix: namespace install shouldn't contain namespace in the manifests (#6266)
- fix: pods Tooltip runs offscreen #5481 (#6685)
- fix: prevent 'cannot read property "filter" of undefined' during nodes filtering (#6453)
- fix: re-use same http transport in grpc proxy to avoid goroutine leak (#6444)
- fix: remove break for appsCount (#6115)
- fix: replace colons in addition to slashes in app tmp directory (#6290) (#6293)
- fix: repo-server should reset manifests cache when k8s version/api versions change (#6434)
- fix: rewrite Host header in dex reverse proxy (#6183)
- fix: run argo-cd repo server as non-root with read-only-root-fs (#5814)
- fix: run server as nonroot (#5820)
- fix: spark application check fails on missing section (#6036)
- fix: The UI crashes when trying to access some application with an empty commit message (#6756)
- fix: TypeError: Cannot read property 'group' of undefined (#6755)
- fix: unable to delete an Application if its target cluster is deleted, Argo CD enters infinite app deletion reconciliation loop (#6557)
- fix: unset --plugin-env should return OK when not found (#6457)
- fix: Update redis to 6.2.4 (#6475)
- fix: upgrade to kustomize 4.1.2 (#6059)
- fix: userinfo /v1/session/userinfo should return authenticated=false if token has expired (#6282)
- fix: Version warning banner in docs (#6682)
- fix: WebUI failure when loading pod view 't.parentRefs is undefined' (#6490) (#6535)
- fix: when resolve dependencies, use repo from project. (#6090)
- fix(ui): Crash on application pod view (#6384)
- fix(ui): Don't count errored or completed neighbor pods toward resource consumption (#6259)
- fix(ui): Hide Diff tab in Application Details when App is synced (#6214)
- fix(ui): Resource details panel crashes when resource deleted (#6260)
- fix(ui): Show orphaned resources option in list view did not work (#6171)
Other
- refactor: upgrade gitops engine (#6578) (#6606)
- refactor: upgrade k8s client to v0.21.0 (#6322)
- chore: container did not support setting the timezone via an env var like '-e TZ=Europe/Brussels'; Solution: adding tzdata package solve this issue (#6481)
- chore: docker image build compatible with arm64 (#6192)
- chore: pre filter groups before enforcing #4296 (#6651)
- chore: Update container base image to Ubuntu 21.04 (#6652)
- docs: use jq path expression to ignore differences to caBundle mutating webhook (#6470)