Skip to content

Latest commit

 

History

History
22 lines (17 loc) · 3.25 KB

comparison-pipelines-as-code.adoc

File metadata and controls

22 lines (17 loc) · 3.25 KB

Comparison to Pipelines-as-Code

The following details some similarities and differences between ODS Pipeline and Pipelines-as-Code. It is not intended to suggest one or the other but to serve as a starting point to compare the two. The information used in the comparison was last updated on 2023-10-13.

Similarities

  • Built on top of Tekton / OpenShift Pipelines

  • Allow to define pipelines in the source code repository

  • Trigger pipeline runs in response to Git push and other events in the version control server

  • Report status of pipeline run back to the version control server

Differences

  • ODS Pipeline only works with Bitbucket Server, whereas Pipelines-as-Code works with Gitlab and GitHub as well

  • Pipelines-as-Code is installed as part of OpenShift Pipelines, whereas ODS Pipeline is offered as a Helm chart. ODS Pipeline does not use any CRDs which means it can be installed without being cluster admin.

  • For Pipelines-as-Code, the definition of a pipeline run is a full PipelineRun YAML resource. ODS Pipeline cuts boilerplate by allowing to specify only the tasks of the pipeline to run.

  • ODS Pipeline comes with opinionated start and finish tasks that do quite some plumbing (Git clone, setting Bitbucket status, interaction with Nexus etc.). These tasks are automatically added to each pipeline run.

  • ODS Pipeline allows to configure task parameters based on triggers, e.g. allowing to have the same pipeline executed for different branches, but with different parameters.

  • ODS Pipeline ships with a built-in concept of "pipeline run artifacts", which allow to retain information about tasks (e.g. executed unit tests, SBOM files etc) in Nexus.

  • Based on the "pipeline run artifacts" concept, ODS Pipeline offers a turnkey solution to promote applications from one environment to the other. This functionality is implemented in the start and finish tasks. Users can configure a promotion chain (e.g. DEV → QA → PROD) which then moves built artifacts such as container images from one environment to the other. See the Example Project for more details.

  • ODS Pipeline provides two Go packages, tektontaskrun and odstasktest, for testing (any) Tekton tasks in a KinD cluster.

  • Pipelines-as-Code allows to configure a concurrency limit per repository, while ODS Pipeline has a fixed limit of one pipeline run per repository at a time.