Cloud-Native CI/CD with OpenShift Pipelines

With Red Hat OpenShift 4.1, we are proud to release the developer preview of OpenShift Pipelines to enable creation of cloud-native Kubernetes-style continuous integration and continuous delivery (CI/CD) pipelines based on the Tekton project. 

Why OpenShift Pipelines?

OpenShift has long provided an integrated CI/CD experience based on Jenkins which is actively used by a large percentage of the OpenShift users. While Jenkins has been a popular choice as a CI engine for many teams, it was designed before the existence of cloud-native paradigms which made it difficult to run in containerised environments like Kubernetes. OpenShift Pipelines builds upon the Tekton project to enable teams to build Kubernetes-style delivery pipelines that they can fully control and own the complete lifecycle of their microservices without having to rely on central teams to maintain and management a CI server, plugins, and its configurations.

While we plan to continue providing support for Jenkins images on OpenShift, we also want to address some of the challenges users have been facing to simplify running CI/CD pipelines on OpenShift. OpenShift Pipelines is the result of this endeavor and focuses on providing a cloud-native CI/CD experience that is built for containers and Kubernetes as a first-class platform. 

OpenShift Pipelines Benefits

OpenShift Pipelines allows teams to build, test and deploy their applications using cloud-native pipelines and take control of their application lifecycle.

Kubernetes style pipelines: Create pipelines using standard Kubernetes CRDs that are portable across Kubernetes distributions.

Runs serverless: Create and run pipelines, period. No CI/CD server to manage and maintain.

Deploy to multiple platforms: Your pipelines run on Kubernetes, but you can deploy to many Kubernetes, VMs and serverless platforms from the pipeline.

Build images with Kubernetes tools: You can use the build tool of your choice for building images. Source-to-Image (S2I), Buildah and Dockerfiles, Jib, Kaniko and more.

Developer tools: Command-line tool to interact with the pipelines in addition to integrations with OpenShift developer console and IDE plugins.

What is Tekton?

Tekton is an open source project that provides a standard terminology, Kubernetes-style resources and building blocks for creating serverless CI/CD pipelines on Kubernetes. It was born out of Knative Build, a rudimentary framework initially created for building container images to be deployed as Knative serverless applications. 

As the interest in Knative Build and use cases that latched to it expanded, Tekton was created as a standalone project to focus on CI/CD use cases and provide an open, standard and native Kubernetes CI/CD solution. Tekton since then has grown into a popular and fast-moving project driven by many contributors. It is governed by the Continuous Delivery Foundation which was formed recently as an industry-effort to define the practices, guidelines and standards related to continuous delivery.

Pipeline Concepts

Tekton defines a set of Kubernetes custom resources (CRD) as standard constructs for creating CI/CD pipelines. The following is a brief introduction to these CRDs:

  • Task: A sequence of commands (steps) that are run in separate containers in a  pod.
  • Pipeline: A collection of tasks that are executed in a defined order.
  • PipelineResource: Inputs (e.g. git repo) and outputs (e.g. image registry) to a pipeline.
  • TaskRun: Runtime representation of an execution of a task.
  • PipelineRun: Runtime representation of an execution of a pipeline.

Create Your First Pipeline

OpenShift Pipelines is available in the Red Hat OpenShift 4.1 OperatorHub and gets installed on the cluster via an operator. To give OpenShift Pipelines a try, get an OpenShift 4.1 cluster via cloud.redhat.com, then follow this tutorial to build your first cloud-native pipeline.

For feedback and questions you can reach us on #openshift-pipelines channel on the Tekton Slack.

What’s Next?

OpenShift Pipelines, although functional, is not yet full-featured and is released as Developer Preview in order for users to get experience with Tekton. 

We plan to continue to work with the Tekton community to push the project forward and to create a user experience around it with a rich user interface, additional integrations, extensions, and developer tooling to simplify creating and using CI/CD pipelines across existing and new projects.

Stay tuned for upcoming releases soon!

 

Categories
Containers, OpenShift Ecosystem
Tags
, , , , , ,