Skip to main content

Features

Server Side Pagination

Server-side pagination significantly enhances the performance of the Argo CD frontend and extends its scalability to support tens of thousands of applications. For more details, check out the blog post: Argo CD Ultimate Scalability. This feature is enabled by default in Akuity Argo CD and does not require additional configuration.

Argo CD Application Resource Filtering

The Argo CD Application Resource Filtering feature enables the application of fine-grained filters to Kubernetes resources retrieved from the configured Git or Helm repository. The feature is useful to exclude specific resources from the application sync process without making changes in the deployment repository.

The feature introduced new field customizations in the source section of the Application CRD. The field allows to exclude or include resources based on their group, kind, name or namespace.

spec:
source:
# new section that allows to customize the delivered set of resources
customizations:
# exclude allows to exclude some resources based on their group, kind, name or namespace
# by default nothing is excluded
exclude:
# the example below excludes all resources from the 'apps' group
- group: 'apps'
kind: '*'
# include allows to include only some resources based on their group, kind, name or namespace
# by default everything is included
include:
# the example below includes only resources from the 'RDS' kind
- group: '*'
kind: 'RDS'
name: '*'
namespace: '*'

The following example demonstrates how to exclude all Deployment resources from the application sync process:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: guestbook
spec:
destination:
namespace: default
server: https://kubernetes.default.svc
project: default
source:
customization:
exclude:
- kind: Deployment
path: guestbook
repoURL: https://github.com/argoproj/argocd-example-apps
targetRevision: HEAD

Application Set Applications Filtering

The ApplicationSet Applications Filtering feature allows you to apply additional filters to the list of applications generated by an ApplicationSet. The functionality is useful in case when filtering logic is too complex and cannot be implemented at the ApplicationSet generators level.

The feature introduced new field filter in the spec section of the ApplicationSet CRD:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: guestbook-app-set
spec:
generators: ...
template: ...
# a new section that allows to filter out generated applications
filter:
expressions:
# simple filter by name
- app.metadata.name == "us-west-1-guestbook"
# filter by managed resource: filter out applications that don't have any resources
- len(appInfo.GetManagedResources()) > 0)

The filter allows defining a list of expressions that are evaluated against each generated application. The expressions are powered by expr-lang libarary. The following variables are available in the expressions:

  • app - represents the generated application.
  • appInfo.GetManagedResources() - function that returns a list of Kubernetes resources managed by the generated Application.