Skip to content

Releases: argoproj/argo-cd

v0.11.0-rc1

10 Dec 17:50
Compare
Choose a tag to compare
v0.11.0-rc1 Pre-release
Pre-release

New Features

New application controller architecture

The application controller has a completely redesigned architecture for better scalability, and
improve performance during application reconciliation. This was achieved by maintaining an
in-memory, live state cache of lightweight Kubernetes object metadata. During reconciliation, the
controller no longer performs expensive, in-line queries of app labeled resources in K8s API server,
instead relying on the metadata in the local state cache. This dramatically improves performance
and responsiveness, and is less burdensome the K8s API server. A second benefit to this, is that the
relationship between object when computing the resource tree, can be displayed, even for custom
resources.

Multi-namespaced applications

Argo CD will now honor any explicitly set namespace in a mainfest. Resources without a namespace
will continue to be deployed to the namespace specified in spec.destination.namespace. This
enables support for a class of applications that install to multiple namespaces. For example,
Argo CD now supports the istio helm chart, which deploys some resources to an explit istio-system
namespace.

Large application support

Full resource objects are no longer stored in the Application CRD object status. Instead, only
lightweight metadata is stored in the status, such as a resource's sync and health status.
This change enables Argo CD to support applications with a very large number of resources
(e.g. istio), and reduces the bandwidth requirements when listing applications in the UI.

Resource lifecycle hook improvements

Resource hooks are now visible from the UI. Additionally, bare Pods with a restart policy of Never
can now be used as a resource hook, as an alternative to Jobs, Workflows.

K8s recommended application labels

Resource labeling has been changed to use app.kubernetes.io/instance as recommended in
Kubernetes recommended labels,
(changed from applications.argoproj.io/app-name). This will enable applications created by Argo CD
to interoperate with other tooling that are also converging on this labeling, such as the Kubernetes
dashboard. Additionally, Argo CD will no longer inject any tracking labels at the
spec.template.metadata level.

External OIDC provider support

Argo CD now supports auth delegation to an existing, external OIDC providers without the need for
Dex (e.g. Okta, OneLogin, Auth0, Microsoft, etc...)

The optional, Dex IDP OIDC provider is still bundled as part of the
default installation, in order to provide a seamless out-of-box experience, and enables Argo CD to
integrate with non-OIDC providers, or to benefit from Dex's full range of
connectors.

OIDC group claims bindings to Project Roles

Group claims from the OIDC provider can now be bound to Argo CD project roles. Previously, group
claims were managed at the centralized ConfigMap, argocd-rbac-cm. This enables project admins to
self service access to applications within a project.

Declarative Argo CD configuration

Argo CD settings can be now be configured either declaratively, or imperatively. The argocd-cm
ConfigMap now has a repositories field, which can reference credentials in a normal Kubernetes
secret which you can create declaratively, outside of Argo CD.

Helm repository support

Helm repositories can be configured at the system level, enabling the deployment of helm charts
which have a dependency to external helm repositories.

Breaking changes:

  • As a consequence to moving to recommended kubernetes labels, when upgrading from v0.10 to v0.11,
    all applications will immediately be OutOfSync due to the change in labeling techniques. This will
    correct itself with another sync of the application. However, since Pods will be recreated, please
    take this into consideration, especially if your applications is configured with auto-sync.

  • There was significant reworking of the app.status fields to simplify the datastructure and
    remove fields which were no longer used by the controller. No breaking changes were made in
    app.spec.

  • An older Argo CD CLI (v0.10 and below) will not be compatible with an Argo CD v0.11. To keep
    CI pipelines in sync with the API server, it is recommended to have pipelines download the CLI
    directly from the API server https://${ARGOCD_SERVER}/download/argocd-linux-amd64 during the CI
    pipeline.

Changes since v0.10:

  • Declarative setup and configuration of ArgoCD (#536)
  • Declaratively add helm repositories (#747)
  • Switch to k8s recommended app.kubernetes.io/instance label (#857)
  • Ability for a single application to deploy into multiple namespaces (#696)
  • Self service group access to project applications (#742)
  • Support for Pods as a sync hook (#801)
  • Support 'crd-install' helm hook (#355)
  • Remove resources state from application CRD (#758)
  • Refactor, consolidate and rename resource type data structures
  • Improve Application state reconciliation performance (#806)
  • API server & UI should serve argocd binaries instead of linking to GitHub (#716)
  • Failed to deploy helm chart with local dependencies and no internet access (#786)
  • Out of sync reported if Secrets with stringData are used (#763)
  • Unable to delete application in K8s v1.12 (#718)

v0.10.6

15 Nov 03:01
0dfcd2f
Compare
Choose a tag to compare
  • Fix issue preventing in-cluster app sync due to go-client changes (issue #774)

v0.10.5

14 Nov 02:40
5d185b6
Compare
Choose a tag to compare
  • Increase concurrency of application controller
  • Update dependencies to k8s v1.12 and client-go v9.0 (#729)
  • Fix issue where applications could not be deleted on k8s v1.12
  • add argo cluster permission to view logs (@conorfennell)
  • [UI] Allow 'syncApplication' action to reference target revision rather then hard-coding to 'HEAD'
  • [UI] Issue #768 - Fix application wizard crash

v0.10.4

08 Nov 02:06
89ece31
Compare
Choose a tag to compare
  • Health check is not discerning apiVersion when assessing CRDs (issue #753)
  • Fix nil pointer dereference in util/health (@mduarte)

v0.10.3

29 Oct 07:03
Compare
Choose a tag to compare
  • Fix applying TLS version settings
  • Update to kustomize 1.0.10

v0.10.2

25 Oct 20:12
Compare
Choose a tag to compare
  • Fix app refresh err when k8s patch is too slow
  • Update to kustomize 1.0.9

v0.10.1

24 Oct 20:28
Compare
Choose a tag to compare
  • Handle case where OIDC settings become invalid after dex server restart (issue #710)
  • git clean also needs to clean files under gitignore (issue #711)

v0.10.0

19 Oct 22:01
Compare
Choose a tag to compare

Changes since v0.9:

  • Allow more fine-grained sync (issue #508)
  • Display init container logs (issue #681)
  • Redirect to /auth/login instead of /login when SSO token is used for authenticaion (issue #348)
  • Support ability to use a helm values files from a URL (issue #624)
  • Support public not-connected repo in app creation UI (issue #426)
  • Use ksonnet CLI instead of ksonnet libs (issue #626)
  • We should be able to select the order of the yaml files while creating a Helm App (#664)
  • Remove default params from app history (issue #556)
  • Update to ksonnet v0.13.0
  • Update to kustomize 1.0.8
  • API Server fails to return apps due to grpc max message size limit (issue #690)
  • App Creation UI for Helm Apps shows only files prefixed with values- (issue #663)
  • App creation UI should allow specifying values files outside of helm app directory bug (issue #658)
  • argocd-server logs credentials in plain text when adding git repositories (issue #653)
  • Azure Repos do not work as a repository (issue #643)
  • Better update conflict error handing during app editing (issue #685)
  • Cluster watch needs to be restarted when CRDs get created (issue #627)
  • Credentials not being accepted for Google Source Repositories (issue #651)
  • Default project is created without permission to deploy cluster level resources (issue #679)
  • Generate role token click resets policy changes (issue #655)
  • Input type text instead of password on Connect repo panel (issue #693)
  • Metrics endpoint not reachable through the metrics kubernetes service (issue #672)
  • Operation stuck in 'in progress' state if application has no resources (issue #682)
  • Project should influence options for cluster and namespace during app creation (issue #592)
  • Repo server unable to execute ls-remote for private repos (issue #639)
  • Resource is always out of sync if it has only 'ksonnet.io/component' label (issue #686)
  • Resource nodes are 'jumping' on app details page (issue #683)
  • Sync always suggest using latest revision instead of target UI bug (issue #669)
  • Temporary ignore service catalog resources (issue #650)

v0.9.2

28 Sep 16:59
Compare
Choose a tag to compare
  • Update to kustomize 1.0.8
  • Fix issue where argocd-server logged credentials in plain text during repo add (issue #653)
  • Credentials not being accepted for Google Source Repositories (issue #651)
  • Azure Repos do not work as a repository (issue #643)
  • Temporary ignore service catalog resources (issue #650)
  • Normalize policies by always adding space after comma

v0.9.1

24 Sep 21:46
Compare
Choose a tag to compare
  • Repo server unable to execute ls-remote for private repos (issue #639)