The purpose of this document is to describe the architecture of the software system. It shall provide a graphical overview of the software system, its structure and interfaces to internal and external components.
ODS Pipeline is used alongside an existing ODS Core installation. It is a replacement for Jenkins as the CI/CD engine. The following diagram illustrates the relationship of ODS Pipeline to external systems:
The following diagram illustrates in more detail how the various components interact:
As the diagram above shows, the ODS Pipeline installation is made up of one container installed by project admins (once per project) containing configuration (config maps and secrets), the pipeline manager and task resources (Tekton task definitions and their referenced images). The following diagram shows more detail about the installation:
Source | Action | Protocol | Destination | Comment |
---|---|---|---|---|
Bitbucket |
Webhook Trigger |
HTTP POST request |
ODS Pipeline Installation |
Endpoint is an exposed event listener. |
Task |
Checkout repository |
Git |
Bitbucket |
|
Task |
Set build status |
HTTP / JSON API |
Bitbucket |
|
Task |
Download existing artifacts |
HTTP / JSON API |
Nexus |
|
Task |
Set build status |
HTTP / JSON API |
Bitbucket |
|
Task |
Upload artifacts |
HTTP / JSON API |
Nexus |
|
Task |
Send notifications |
HTTP / API |
Configured notification service |
|
Binary |
Retrieve configuration and secrets |
HTTP / JSON API |
OpenShift |
|
Binary |
Retrieve Git revisions |
HTTP / JSON API |
Bitbucket |
|
Binary |
Download artifacts |
HTTP / JSON API |
Nexus |
There is one major deployment (typically in the project’s cd-namespace) of the system managed by project administrators.
The installation provides a pipeline manager, allowing to trigger pipelines in response to Bitbucket events, and a start and finish task to do some plumbing for those pipelines, such as setting the Bitbucket build status.
The deployment is described in a Helm chart. For details, see the Installation Guide.