Red Hat Delivers Full GitOps CI/CD Built on Tekton and Argo
Enterprise open source software provider Red Hat has launched both its OpenShift GitOps and OpenShift Pipelines features to general availability this week during KubeCon + CloudNativeCon Europe, delivering functionality based on the popular open source projects Argo CD and Tekton, respectively, which together provide a full continuous integration and continuous delivery (CI/CD) solution.
The company first released OpenShift Pipelines to preview in May 2020, and later that year discussed its plans for moving toward a full GitOps release, noting its integrations with traditional CI tools such as Jenkins, while also exploring its plans to adopt cloud native CI/CD tools. In February 2021, Red Hat followed up with the preview of OpenShift GitOps, and now the company says both are ready for prime time.
Senior director of product strategy at Red Hat Brian Gracely explained that the move to general availability not only conveys that the products are ready for production use, but also that they are fully up to date with the upstream projects upon which they are based, fully documented, and fully integrated with the rest of the Red Hat product portfolio. In addition, Gracely emphasized, this particular release highlights a different strategy that the company has taken as of late that offers its users more flexibility: modularity.
“This is another one of these areas where we no longer have to ship OpenShift as sort of all the features. We’ve made Git Ops, we’ve made Pipelines, we’ve made serverless, we’ve made service mesh, these individual modular operators, and so the nice thing about this is, customers can sort of add these capabilities to whichever cluster they want to, at whatever pace they want to,” said Gracely. “If I’m a customer, and I’ve standardized on some release, a lot of times in the past, you were like, ‘Oh, I can’t touch that release, even though I want some new capabilities.’ Because we shipped these as modular components, now they can be much more flexible about mixing and matching the capabilities.”
With this release, Gracely says that the CI/CD features available surpass those previously offered with integrations to tools such as Jenkins. OpenShift Pipelines, for example, is built upon Tekton and takes advantage of Kubernetes to run processes in a much more resource-aware manner than is possible with its predecessor.
“With previous things like Jenkins and all, they tended to take much bigger resource chunks, so they would take entire VMs, they take entire machines to run it,” said Gracely. “By running in a container, what that means is not only can we can we bound how much resources we need, but we can also utilize all the Kubernetes deployment models.”
OpenShift Pipelines runs each step of the CI/CD pipeline in its own container, allowing them to scale independently and minimize resources required during quiet periods, and has no central CI/CD server to manage. As such, Gracely explained, pipelines can be catered to their individual needs. For example, if something is always getting contributions and triggering builds, that pipeline can run as a Kubernetes daemon set to take advantage of as many machines as possible. Other jobs may run for a specific length during regular intervals, and can instead be treated as a batch job, turning off the resources when they are no longer needed.
“It really allows us to say, instead of making the pipelines these generic things that will take huge chunks of resources and treat every pipeline the same, we can actually get more granular, because Kubernetes built-in this idea that different deployments can look differently,” said Gracely. “Tekton sort of makes everything a worker node, if you will, so you don’t have to maintain this big stateful resource hog all the time.”
On the OpenShift GitOps end of the spectrum, there is less traditional technology to displace. GitOps is the relatively new practice of making a Git repository a single source of truth not only for developers but also for operations teams and their infrastructure configuration, and Argo CD is a declarative GitOps Operator for Kubernetes that “automates deploying applications to multiple clusters by syncing the application configuration to the target clusters and ensuring that the clusters are in the desired state,” according to Red Hat’s blog post on the topic.
“It’s really designed to understand the real intersection that happens between the platform team, who has to worry about resources, security, conflict, and the application team just saying ‘I just want to do some stuff, give me enough space to be productive in my project.’,” explained Gracely.
Red Hat first joined the Argo CD community in August 2020, and Gracely said that much of their initial contribution to the project has involved not only bringing it into OpenShift but also providing the project with insight.
“A lot of what we’ve been contributing back has just been customer insight as to usage patterns and those types of things. The contribution piece for us has been both that we have a deeper understanding of the technology, we can support it fully, and so forth, but also it’s given us at the committer level the ability to be sort of an advocate for our customers and the use cases that they have,” said Gracely.
OpenShift GitOps and OpenShift Pipelines are both available on the OperatorHub for all managed OpenShift subscribers, as well as the self-managed OpenShift Container Platform and the recently released OpenShift Platform Plus.