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 increase efficiency in their operations and development teams.
Red Hat is pleased to announce that version 1.14 of OpenShift GitOps has been released, bringing with it some exciting new capabilities.
New in version 1.14
Optional aggregated cluster role for application controller
By default, the Operator will create a ClusterRole that contains a specific set of hard-coded Kubernetes permissions for the application-controller component. In this new version you can now optionally enable the use of a Kubernetes aggregated ClusterRole to provide additional flexibility in managing permissions.
This feature is optional and disabled by default, it can be enabled by setting the field aggregatedClusterRoles as follows:
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: argocd
namespace: argocd
# ...
spec:
aggregatedClusterRoles: true
# ...
Once enabled, additional permissions can be aggregated to the application-controller by creating new ClusterRoles with the aggregation label argocd/aggregate-to-admin: 'true'.
Complete documentation on this feature is available here.
Repo Server can now mount volumes
By default the repo-server component managed by the operator will use an EmptyDir for storage however there may be situations where the usage of a persistent volume is required such as requiring a larger storage capacity. The OpenShift GitOps Operator now supports the ability to provision a persistent volume to the repo-server via the .spec.repo.volumes and .spec.repo.volumeMounts fields in the Argo CD Custom Resource (CR).
Sidecar/Init container support added for Server and Application-Controller
The operator now enables specifying sidecar containers for the Server and Application-Controller components. Sidecars can be done via the fields spec.server.sidecarContainers and spec.controller.sidecarContainers and init containers can be done via spec.server.initContainers and spec.controller.initContainers.
Argo CD 2.12 Available
With this version, Argo CD has been upgraded to 2.12 which brings a number of new features and benefits including:
- Rollback with Applications using Multi-Source is now available in both the Argo CD CLI and GUI. In the GUI the Details panel shows the most recent revision or commit information for each source. As well the History and Details panels show the revision history for each source.
- A new Consistent Hash with Bounded Load sharding algorithm has been added which provides a more uniform distribution of clusters across shards and minimizes redistribution of clusters across shards.
- Support for adding Application labels to Kubernetes Events to facilitate correlation of Events. A new configuration item, resource.includeEventLabelKeys, has been added to specify label keys to include. This also supports wildcarding of label keys.
- The manifest-generate-paths, which improves performance for mono-repos, now supports glob patterns.
- With Project Scoped Repository Credentials, Argo CD will now allow multiple app projects to have separate repository credentials having the same repository URL.
A blog on the changes in Argo CD 2.12 is available here and a detailed list of all changes can be found here in the changelog with the release information. Changes in Argo CD from the previous 2.11 release to 2.12 can be viewed here.
Conclusion
OpenShift GitOps 1.14 is a significant update with many new features, to learn more about this update please review the official documentation and release notes.