Argo CD v0.12.0stable Released Mar 23, 2019
โš ๏ธ Breaking Change Impact Score: 7/10

Argo CD v0.12.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.

Breaking-change evidence from the source

  • Breaking Changes ### Label selector changes, dex-server rename
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Argo CD v0.12.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.

โš ๏ธ Breaking Changes & Deprecations (1)

  • Breaking Changes ### Label selector changes, dex-server rename

โœจ New Features & Capabilities (2)

  • `argocd app edit APPNAME` - to edit an application spec using preferred EDITOR
  • `argocd proj edit PROJNAME` - to edit an project spec using preferred EDITOR

โšก Performance & Enhancements (6)

  • Table view when viewing applications
  • Filters on applications
  • Table view when viewing application resources
  • Switch to text-based diff instead of json diff
  • Ability to edit application specs
  • Support for Kustomize 2

๐Ÿ”ง Bug Fixes & Patches (6)

  • `argocd app patch APPNAME` - to patch an application spec
  • `argocd app patch-resource APPNAME` - to patch a specific resource which is part of an application
  • Documentation fixes and improvements (@twz123, @yann-soubeyrand, @OmerKahani, @dulltz)
  • Fix CRD creation/deletion handling (#1249)
  • Fixed multiple goroutine leaks in controller and api-server
  • Fix isssue where `argocd app set -p` required repo privileges. (#1280)
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
## 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 EDITOR * `argocd proj edit PROJNAME` - to edit an project spec using preferred EDITOR * `argocd app patch APPNAME` - to patch an application spec * `argocd 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: ```yaml spec: source: componentParameterOverrides: - name: image.tag value: v1.2 ``` should move to: ```yaml 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)