As Kubernetes and Red Hat OpenShift platform adoption grow and organizations move a larger portion of their infrastructure to these platforms, organizations are increasingly faced with the challenge of managing hybrid multicluster environments across the public cloud and on-premises infrastructure. While this approach brings flexibility and scalability to managing applications, the ability to ensure configuration consistency across these clusters, and the ability to roll out applications to multiple clusters in a consistent manner becomes a necessity. Enter the Argo CD GitOps Kubernetes Operator.
GitOps, Kubernetes, and configuration consistency
GitOps is an increasingly popular set of practices for managing the complexities of running hybrid multicluster Kubernetes infrastructure. GitOps centers on treating Git repositories as the single source of truth and applying Git workflows that have been consistently used for application development to infrastructure and application operators.
Declarative configuration and GitOps principles are the core of the OpenShift Container Platform values that led us to make OpenShift one of the most declarative Kubernetes platforms in the world. Virtually all aspects of OpenShift can be configured declaratively, taking advantage of Kubernetes custom resources that allow GitOps practitioners to store OpenShift configuration resources in a Git repo. This makes sure that all OpenShift cluster configurations are in sync with the source of truth in Git using the practitioners' tools of choice.
Argo CD and OpenShift
Argo CD is a popular Cloud Native Computing Foundation (CNCF) open source GitOps Kubernetes Operator for declarative configuration on Kubernetes clusters. Argo CD has a lively community of users with a growing user base among OpenShift customers. It is in fact one of the most popular community Kubernetes Operators on the OpenShift platform.
Red Hat has a long history of engaging with community projects that address enterprise needs. Continuing on that journey, we are now collaborating with Intuit and joining the Argo community as a member of the bootstrap steering committee. Doing this lets us actively contribute to the Argo community and help OpenShift customers take advantage of Argo CD for managing their applications in multicluster OpenShift and Kubernetes infrastructure using GitOps principles.
Argo CD, shown in Figure 1, works based on the GitOps pattern of using Git repositories as the source of truth for defining the desired application state. Kubernetes manifests can be specified in several ways, such as Helm, kustomize, and plain JSON or YAML, among others. Argo CD automates deploying applications to multiple customers by syncing Kubernetes manifests to the target clusters and making sure the clusters are in the desired state. Furthermore, it monitors the state of the deployed applications on Kubernetes clusters and constantly compares them to the manifests stored in Git, in order to detect any drift from the desired state; for example, in case of manual changes. When drift is detected, admins can be notified, or Argo CD can be configured to automatically correct the state of the application on the cluster based on the Git repositories.
Figure 1: Viewing application state in Argo CD.">Adi Sakala, senior director for OpenShift and developer engineering at Red Hat, states:
"OpenShift continues to help organizations through the Cloud Native journey modernizing their data centers and development teams. Continuous deployment and delivery of infra & applications plays a critical role as organizations rethink and retool delivery processes to scale the adoption of containerized development.
"The Argo project has widely been recognized and adopted in the Kubernetes ecosystem providing continuous delivery tooling. Red Hat as a leader of open source and hybrid cloud platform is happy to join hands with Intuit and the rest of the Argo community to further help drive the project. We believe when communities thrive with open governance and vibrant users it sets up for sustained growth of the project. Having Argo as a choice for OpenShift users will empower and enable enterprises to declaratively build and run cloud native applications on OpenShift using GitOps. We are thrilled to give OpenShift users this option."
What’s next
Argo CD is available today as an Argo community-owned Kubernetes Operator on the OperatorHub accessible through the OpenShift console admin perspective. In the coming months as we ramp up our engagement and contributions upstream in the Argo community, we will simultaneously drive a tighter integration within the OpenShift portfolio of developer tools that span over the three distinct phases that a change goes through until it reaches production (see Figure 2):
- Local development on the developer’s workstation with
odo
and CodeReady Containers, or in a web-based workspace with CodeReady Workspaces. - Continuous integration (CI) with Tekton Pipelines to build and test applications on every Git change.
- Continuous delivery (CD) with Argo CD to deliver applications to multicluster staging and production clusters.
We are excited about the road ahead with the addition of Argo CD to the OpenShift developer tools portfolio. Stay tuned for more exciting news over the coming months on what this means for application development workflows on OpenShift.
Last updated: August 18, 2020