GitOps has continued in its popularity and has become the standard way to manage Kubernetes cluster configuration and applications. Red Hat continues to see the widespread adoption of the GitOps methodology across our portfolio as customers look for ways to bring increased efficiency to their operations and development teams.
Red Hat is pleased to announce that version 1.12 of OpenShift GitOps has been released, bringing with it some exciting new capabilities.
New in version 1.12
Argo CD Notifications is now Generally Available
Argo CD Notifications are now Generally Available and supported in this release. Notifications are used to proactively notify users of changes in the application state, for example when an Application goes to a Degraded or Out-Of-Sync state. In previous releases, Notifications was configured through a configmap however in this release this is now done for triggers and templates with a NotificationsConfiguration custom resource as per the example below:
apiVersion: argoproj.io/v1alpha1
kind: NotificationsConfiguration
metadata:
name: default-notifications-configuration
spec:
triggers:
trigger.on-sync-status-unknown: |
- when: app.status.sync.status == 'Unknown'
send: [my-custom-template]
templates:
template.my-custom-template: |
message: |
Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
Important: Due to the change in configuration for Notifications, users should be aware that when upgrading to this release the existing Notifications ConfigMap argocd-notifications-cm will be removed. Please take a backup of this before upgrading.
Argo CD CLI available as a Technology Preview
The Argo CD Command Line Interface (CLI) is now available as a Technology Preview as it moves to becoming a productized component of OpenShift GitOps. The Argo CD CLI tool is available through RPMs in RHEL and to download via the OpenShift mirror registry.
ApplicationSets in Any Namespace available as Technology Preview
ApplicationSets in Any Namespace can now be configured in the OpenShift GitOps operator. This feature enables the deployment of ApplicationSets in namespaces other than the namespace where Argo CD is located. This is particularly useful when operating OpenShift GitOps for multiple tenants and platform teams wish to limit access to the namespace where Argo CD is running.
This feature compliments the Applications in Any Namespace feature and both of these features remain in Technology Preview in this release.
Wildcard Support for Applications in Any Namespace
Prior to this release, operators would need to specify all source namespaces where Applications in Any Namespace would be used. Now you can specify namespaces in the sourceNamespaces field of the Argo CD Custom Resource using wildcards.
This change makes it easier for operators to support namespaces based on common patterns, for example instead of manually including namespaces team1-dev, team1-stage, team2-dev, team2-stage, etc an administrative user could simply specify team*. Specifying just the wildcard, *, will include all namespaces.
Argo CD 2.10 Available
With this version, Argo CD has been upgraded to 2.10 which brings a number of new features and benefits including:
- ApplicationSet templates are now available with the new templatePatch field enabling more complex structures then the default string field
- A new Server-Side Apply (SSA) diff strategy is now available to optionally enable with the existing diff strategy remaining the default. This feature is Beta in upstream Argo CD and thus is Technical Preview in this release of OpenShift GitOps.
- A new sync hook is available, PostDelete, which can be used to clean-up or finalize after all Application resources have been deleted.
- Kustomize offers components as a way to build manifests with composition rather than inheritance (bases and overlays). In this new release you can now specify components to include directly in the Application Custom Resource.
A blog on the changes in Argo CD 2.10 is available here and a detailed list of all changes can be found here in the release information.