Pipelines

Solution Designer provides an UI to configure the pipelines, which are used to build projects into components and either release this component or deploy it to the desired target. This configuration can be accessed from the CI/CD page which is located in the navigation bar on the left, when a project is open. On this page it is possible to create, edit and delete the pipeline configurations.

Available pipeline types

There are three general types of pipelines available:

Release pipeline

A Release pipeline is intended for building the project from the configured Git repository and then publish the container image in the OpenShift Registry and the Helm chart in the configured Helm Repository.

A Release pipeline allows the user to configure the following Pipeline features (see Edit pipeline configuration):

  • Enable unit test execution
  • Auto trigger
  • Timestamp tag
  • Enable unique SemVer Check

Deploy pipeline

A Deploy pipeline is intended for building the project from the configured Git repository and deploys it to its defined deployment target.

A Deploy pipeline allows the user to configure the following Pipeline features (see Edit pipeline configuration):

  • Enable unit test execution
  • Auto trigger
  • Deployment target

Custom pipeline

The Release and Deploy pipeline type/template can be by used and extended for own pipeline types/templates.

A Custom pipeline is intended for providing a complete own pipeline template that has no dynamic input parameters (Pipeline features, see Edit pipeline configuration), except the git information of the project. Meaning all needed additional parameters need to be handled in the pipeline template.

Available and installed tasks/definitions

During the installation of IBM Industry Solutions Workbench, the following pipeline task definitions are created in the namespace, where IBM Industry Solutions Workbench is getting installed.

Task definitions

A task is a collection of sequential steps, that will be executed during a pipeline run. Each task of a pipeline will run inside an own pod on the cluster. To be able to share data/files (like the cloned git project) between the tasks workspaces are used and mounted into the task pods (see Tekton Workspaces).

Each step of a task will be executed in an own container inside the pod. For example, if a pipeline consists of two tasks and the pipeline will be executed, OpenShift Pipelines will create two pods, one for each task.

The installation will create the following pipeline tasks as Kubernetes resources inside your OpenShift project. These are used by the different types of pipelines and service projects.

General information

Creation, triggering and deletion of a new pipeline can be done in Solution Designer. The creation of a new pipeline will also trigger the first execution/run of the pipeline. All created pipelines can then be re-triggered in Solution Designer manually. Use the Run button in the CI/CD page in Solution Designer to start a release or a deployment of your project.

Note:

It is possible to add own pipeline types/templates to the available types in the Solution Designer. Own pipeline types can then be used for creating service project pipelines, see Pipeline Customization.

Persistent Volume for PipelineRun Workspace

Every PipelineRun will automatically create a PersistentVolumeClaim and request 1024Mi by default. The requested size of the PersistentVolumeClaim is configurable via the ISW Custom Resource see Extended Configuration - tekton.workspace.storage. The PersistentVolumeClaim will stay as long as the PipelineRun instance exists and will be automatically cleaned up once the PipelineRun instance gets deleted.

Note:

It is recommended to introduce a cleanup strategy for the created PipelineRun instances. IBM Industry Solutions Workbench provides one cleanup possibility that can be enabled via the ISW Custom Resource see Extended Configuration - tekton.cleanup.enabled