Siamak Sadeghianfar (@siamaks), Product Manager at RedHat, shared details about two brand-new open source projects, OpenShift Pipelines and Tekton, at the 2019 Nexus User Conference. These projects, inspired by Jenkins, aim to standardize Kubernetes CI/CD pipelines in a way that wasn’t possible before.
“Jenkins has been a centerpiece for Continuous Integration, and with the introduction of Pipeline Jenkins plugin, it has become a popular tool for building Continuous Delivery pipelines,” Siamak previously wrote.
As Siamak explains in his presentation, Jenkins is great, but, it has some limitations. It wasn’t built for container environments, to start. Configuration can be brittle. Jenkins also suffers from “plugin mania” due to its popularity. Critically, Jenkins is not cloud-native; some community members have tried to solve this by building Jenkins X.
What are the features of a cloud-native CI/CD? Siamak lists three:
- It must be container based. Specifically, the pipeline is built as a container environment and supports apps that run containers.
- It must be serverless. For example, like Travis CI.
- It must share characteristics of DevOps teams: decentralized, cross-functional, and distributed -- and support the software lifecycle through this pipeline
Continuous Delivery Foundation
Enter, the newly formed Continuous Delivery Foundation. The goal: “An open-source project for providing a set of shared and standard components for building Kubernetes-style CI/CD systems”.
As the foundation explains,
“Tekton is a set of shared, open source components for building CI/CD systems. It modernizes the Continuous Delivery control plane and moves the brains of software deployment to Kubernetes. Tekton’s goal is to provide industry specifications for CI/CD pipelines, workflows and other building blocks through a vendor neutral, open source foundation.”
Developers are invited to contribute to this “Kubernetes-native pipeline resource” at https://tekton.dev/.
Kurt Madel, a DevOps evangelist, explains the emerging landscape:
Jenkins X has since moved on to embrace Tekton Pipelines, its sister project in the newly established Continuous Delivery Foundation. The two youngest CDF projects are building a Native K8s CD solution together.
Tekton is an open source project that provides 100% K8s resources (CRDs) as a standard industry specification for end-to-end CD pipelines. And Jenkins X has integrated Tekton in what is quickly becoming the default way to execute Jenkins X CD pipelines - of course there will still be a JVM Jenkins engine available for traditional/non-native pipelines in Jenkins X. But with Tekton (backed by Prow), as the pipeline execution engine, Jenkins X is now a truly Native K8s CD platform.
As Siamak wrote at RedHat,
CI/CD is one of the popular use-cases for OpenShift Container Platform. OpenShift provides a certified Jenkins container for building Continuous Delivery pipelines and also scales the pipeline execution through on-demand provisioning of Jenkins slaves in containers. This allows Jenkins to run many jobs in parallel and removes the wait time for running builds in large projects.
“OpenShift Pipelines is built for Kubernetes, but can deploy to any target platform,” says Siamak. He went on to explain at the Nexus User Conference that OpenShift Pipelines is based on Tekton. There are several benefits:
- Offers standard Kubernetes-style pipelines
- Allows you to run pipelines in containers
- Provides a powerful command-line tool
- Builds images with Kubernetes tools
- Deploys to multiple platforms
- Integrated CI/CD experience
Try OpenShift Pipelines yourself. The project files walk you through accessing an OpenShift fork cluster, defining basic rules, and creating a sample pipeline using Tekton CRDs.
Watch Siamak’s presentation here: