Releases: argoproj/argo-cd
v1.0.0-rc2
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.0.0-rc2/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.0.0-rc2/manifests/ha/install.yaml
Changes since v1.0.0-rc1
v0.12.3
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.3/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.3/manifests/ha/install.yaml
Changes since v0.12.2
- Application controller becomes unresponsive (#1476)
v1.0.0-rc1
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.0.0-rc1/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.0.0-rc1/manifests/ha/install.yaml
New Features
Network View
A new way to visualize application resources has been introduced to the Application Details page. The Network View visualizes connections between Ingresses, Services and Pods based on ingress reference service, service's label selectors and labels. The new view is useful to understand the application traffic flow and troubleshoot connectivity issues.
Custom Actions
Argo CD introduces Custom Resource Actions to allow users to provide their own Lua scripts to modify existing Kubernetes resources in their applications. These actions are exposed in the UI to allow easy, safe, and reliable changes to their resources. This functionality can be used to introduce functionality such as suspending and enabling a Kubernetes cronjob, continue a BlueGreen deployment with Argo Rollouts, or scaling a deployment.
UI Enhancements
- New color palette intended to highlight unhealthy and out-of-sync resources more clearly.
- The health of more resources is displayed, so it easier to quickly zoom to unhealthy pods, replica-sets, etc.
- Resources that do not have health no longer appear to be healthy.
Breaking Changes
- Remove deprecated componentParameterOverrides field #1372
Changes since v0.12.2
Enhancements
argocd app wait
should have--resource
flag like sync #1206- Adds support for
kustomize edit set image
. Closes #1275 (#1324) - Allow wait to return on health or suspended (#1392)
- Application warning when a manifest is defined twice #1070
- Create new documentation website #1390
- Default view should resource view instead of diff view #1354
- Display number of errors on resource tab #1477
- Displays resources that are being deleted as "Progressing". Closes #1410 (#1426)
- Generate random name for grpc proxy unix socket file instead of time stamp (#1455)
- Issue #357 - Expose application nodes networking information (#1333)
- Issue #1404 - App controller unnecessary set namespace to cluster level resources (#1405)
- Nils health if the resource does not provide it. Closes #1383 (#1408)
- Perform health assessments on all resource nodes in the tree. Closes #1382 (#1422)
- Remove deprecated componentParameterOverrides field #1372
- Shows the health of the application. Closes #1433 (#1434)
- Surface Service/Ingress external IPs, hostname to application #908
- Surface pod status to tree view #1358
- Support for customizable resource actions as Lua scripts #86
- UI / API Errors Truncated, Time Out #1386
- UI Enhancement Proposals Quick Wins #1274
- Update argocd-util import/export to support proper backup and restore (#1328)
- Whitelisting repos/clusters in projects should consider repo/cluster permissions #1432
Bug Fixes
- Don't compare secrets in the CLI, since argo-cd doesn't have access to their data (#1459)
- Dropdown menu should not have sync item for unmanaged resources #1357
- Fixes goroutine leak. Closes #1381 (#1457)
- Improve input style #1217
- Issue #908 - Surface Service/Ingress external IPs, hostname to application (#1347)
- kustomization fields are all mandatory #1504
- Resource node details is crashing if live resource is missing $1505
- Rollback UI is not showing correct ksonnet parameters in preview #1326
- See details of applications fails with "r.nodes is undefined" #1371
- UI fails to load custom actions is resource is not deployed #1502
- Unable to create app from private repo: x509: certificate signed by unknown authority #1171
v0.12.2
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.2/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.2/manifests/ha/install.yaml
Changes since v0.12.1
- Fix racing condition in controller cache (#1498)
- "bind: address already in use" after switching to gRPC-Web (#1451)
- Annoying warning while using --grpc-web flag (#1420)
- Delete helm temp directories (#1446)
- Fix null pointer exception in secret normalization function (#1389)
- Argo CD should not delete CRDs(#1425)
- UI is unable to load cluster level resource manifest (#1429)
v0.12.1
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.1/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.1/manifests/ha/install.yaml
Changes since v0.12.0
- [UI] applications view blows up when user does not have permissions (#1368)
- Add k8s objects circular dependency protection to getApp method (#1374)
- App controller unnecessary set namespace to cluster level resources (#1404)
- Changing SSO login URL to be a relative link so it's affected by basehref (#101) (@arnarg)
- CLI diff should take into account resource customizations (#1294)
- Don't try deleting application resource if it already has
deletionTimestamp
(#1406) - Fix invalid group filtering in 'patch-resource' command (#1319)
- Fix null pointer dereference error in 'argocd app wait' (#1366)
- kubectl v1.13 fails to convert extensions/NetworkPolicy (#1012)
- Patch APIs are not audited (#1397)
- 'argocd app wait' should fail sooner if app transitioned to Degraded state (#733)
- Add mapping to new canonical Ingress API group - kubernetes 1.14 support (#1348) (@twz123)
- Adds support for
kustomize edit set image
. (#1275) - Allow using any name for secrets which store cluster credentials (#1218)
- Update argocd-util import/export to support proper backup and restore (#1048)
v0.12.0
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0/manifests/ha/install.yaml
New Features
Improved UI
Many improvements to the UI were made, including:
- Table view when viewing applications
- Filters on applications
- Table view when viewing application resources
- YAML editor in UI
- Switch to text-based diff instead of json diff
- Ability to edit application specs
Custom Health Assessments (CRD Health)
Argo CD has long been able to perform health assessments on resources, however this could only
assess the health for a few native kubernetes types (deployments, statefulsets, daemonsets, etc...).
Now, Argo CD can be extended to gain understanding of any CRD health, in the form of Lua scripts.
For example, using this feature, Argo CD now understands the CertManager Certificate CRD and will
report a Degraded status when there are issues with the cert.
Configuration Management Plugins
Argo CD introduces Config Management Plugins to support custom configuration management tools other
than the set that Argo CD provides out-of-the-box (Helm, Kustomize, Ksonnet, Jsonnet). Using config
management plugins, Argo CD can be configured to run specified commands to render manifests. This
makes it possible for Argo CD to support other config management tools (kubecfg, kapitan, shell
scripts, etc...).
High Availability
Argo CD is now fully HA. A set HA of manifests are provided for users who wish to run Argo CD in
a highly available manner. NOTE: The HA installation will require at least three different nodes due
to pod anti-affinity roles in the specs.
Improved Application Source
- Support for Kustomize 2
- YAML/JSON/Jsonnet Directories can now be recursed
- Support for Jsonnet external variables and top-level arguments
Additional Prometheus Metrics
Argo CD provides the following additional prometheus metrics:
- Sync counter to track sync activity and results over time
- Application reconciliation (refresh) performance to track Argo CD performance and controller activity
- Argo CD API Server metrics for monitoring HTTP/gRPC requests
Fuzzy Diff Logic
Argo CD can now be configured to ignore known differences for resource types by specifying a json
pointer to the field path to ignore. This helps prevent OutOfSync conditions when a user has no
control over the manifests. Ignored differences can be configured either at an application level,
or a system level, based on a group/kind.
Resource Exclusions
Argo CD can now be configured to completely ignore entire classes of resources group/kinds.
Excluding high-volume resources improves performance and memory usage, and reduces load and
bandwidth to the Kubernetes API server. It also allows users to fine-tune the permissions that
Argo CD needs to a cluster by preventing Argo CD from attempting to watch resources of that
group/kind.
gRPC-Web Support
The argocd CLI can be now configured to communicate to the Argo CD API server using gRPC-Web
(HTTP1.1) using a new CLI flag --grpc-web
. This resolves some compatibility issues users were
experiencing with ingresses and gRPC (HTTP2), and should enable argocd CLI to work with virtually
any load balancer, ingress controller, or API gateway.
CLI features
Argo CD introduces some additional CLI commands:
argocd app edit APPNAME
- to edit an application spec using preferred EDITORargocd proj edit PROJNAME
- to edit an project spec using preferred EDITORargocd app patch APPNAME
- to patch an application specargocd app patch-resource APPNAME
- to patch a specific resource which is part of an application
Breaking Changes
Label selector changes, dex-server rename
The label selectors for deployments were been renamed to use kubernetes common labels
(app.kuberentes.io/name=NAME
instead of app=NAME
). Since K8s deployment label selectors are
immutable, during an upgrade from v0.11 to v0.12, the old deployments should be deleted using
--cascade=false
which allows the new deployments to be created without introducing downtime.
Once the new deployments are ready, the older replicasets can be deleted. Use the following
instructions to upgrade from v0.11 to v0.12 without introducing downtime:
# delete the deployments with cascade=false. this orphan the replicasets, but leaves the pods running
kubectl delete deploy --cascade=false argocd-server argocd-repo-server argocd-application-controller
# apply the new manifests and wait for them to finish rolling out
kubectl apply <new install manifests>
kubectl rollout status deploy/argocd-application-controller
kubectl rollout status deploy/argocd-repo-server
kubectl rollout status deploy/argocd-application-controller
# delete old replicasets which are using the legacy label
kubectl delete rs -l app=argocd-server
kubectl delete rs -l app=argocd-repo-server
kubectl delete rs -l app=argocd-application-controller
# delete the legacy dex-server which was renamed
kubectl delete deploy dex-server
Deprecation of spec.source.componentParameterOverrides
For declarative application specs, the spec.source.componentParameterOverrides
field is now
deprecated in favor of application source specific config. They are replaced with new fields
specific to their respective config management. For example, a Helm application spec using the
legacy field:
spec:
source:
componentParameterOverrides:
- name: image.tag
value: v1.2
should move to:
spec:
source:
helm:
parameters:
- name: image.tag
value: v1.2
Argo CD will automatically duplicate the legacy field values to the new locations (and vice versa)
as part of automatic migration. The legacy spec.source.componentParameterOverrides
field will be
kept around for the v0.12 release (for migration purposes) and will be removed in the next Argo CD
release.
Removal of spec.source.environment and spec.source.valuesFiles
The spec.source.environment
and spec.source.valuesFiles
fields, which were deprecated in v0.11,
are now completely removed from the Application spec.
API/CLI compatibility
Due to API spec changes related to the deprecation of componentParameterOverrides, Argo CD v0.12
has a minimum client version of v0.12.0. Older CLI clients will be rejected.
Changes since v0.11
- Improved UI
- Custom Health Assessments (CRD Health)
- Configuration Management Plugins
- High Availability
- Fuzzy Diff Logic
- Resource Exclusions
- gRPC-Web Support
- CLI features
- Additional prometheus metrics
- Sample Grafana dashboard (#1277) (@hartman17)
- Support for Kustomize 2
- YAML/JSON/Jsonnet Directories can now be recursed
- Support for Jsonnet external variables and top-level arguments
- Optimized reconciliation performance for applications with very active resources (#1267)
- Support a separate OAuth2 CLI clientID different from server (#1307)
- argocd diff: only print to stdout, if there is a diff + exit code (#1288) (@marcb1)
- Detection and handling of duplicated resource definitions (#1284)
- Support kustomize apps with remote bases in private repos in the same host (#1264)
- Support patching resource using REST API (#1186)
- Deprecate componentParameterOverrides in favor of source specific config (#1207)
- Support talking to Dex using local cluster address instead of public address (#1211)
- Use Recreate deployment strategy for controller (#1315)
- Honor os environment variables for helm commands (#1306) (@1337andre)
- Disable CGO_ENABLED for server/controller binaries (#1286)
- Documentation fixes and improvements (@twz123, @yann-soubeyrand, @OmerKahani, @dulltz)
- Fix CRD creation/deletion handling (#1249)
- Git cloning via SSH was not verifying host public key (#1276)
- Fixed multiple goroutine leaks in controller and api-server
- Fix isssue where
argocd app set -p
required repo privileges. (#1280) - Fix local diff of non-namespaced resources. Also handle duplicates in local diff (#1289)
- Deprecated resource kinds from 'extensions' groups are not reconciled correctly (#1232)
- Fix issue where CLI would panic after timeout when cli did not have get permissions (#1209)
- invalidate repo cache on delete (#1182) (@narg95)
v0.12.0-rc6
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc6/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc6/manifests/ha/install.yaml
Changes since v0.12.0-rc5
- argocd diff: only print to stdout, if there is a diff + exit code (#1288)
v0.12.0-rc5
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc5/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc5/manifests/ha/install.yaml
Changes since v0.12.0-rc4
- Application warning when a manifest is defined twice (#1070)
- Fix concurrent read/write error in state cache (#1290)
- Local diff seems to get confused by non namespaced resources (#1287)
- Application view (sometimes) shows only blank canvas (#1282)
- Fix a goroutine leak in api-server application.PodLogs and application.Watch
- Fix issue where
argocd app set -p
required repo privileges.
v0.12.0-rc4
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc4/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc4/manifests/ha/install.yaml
Changes since v0.12.0-rc3
- Azure Git Repos Fail: unexpected client error: status code: 400 (#1067)
- go-git is unable to properly handle AWS CodeCommit (#1243)
- Application controller does not handle CRD creation/deletion well (#1247)
- Application controller does not handle cluster credentials update (#1220)
- Excluded resources setting is ignored by controller (#1248)
- Application controller incorrectly build application objects tree (#1252)
- UI loads helm parameters without taking into account selected values files (#1261)
- Project field in 'create application' dialog is confusing (#1236)
v0.12.0-rc3
Quick Start
Non-HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc3/manifests/install.yaml
HA:
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v0.12.0-rc3/manifests/ha/install.yaml
Changes since v0.12.0-rc2
- Fix nil pointer dereference in CompareAppState (#1234)
- [UI] Enable autocomplete suggestions filtering only on application list page