Skip to content

Latest commit

 

History

History
127 lines (87 loc) · 3.42 KB

software-architecture.adoc

File metadata and controls

127 lines (87 loc) · 3.42 KB

Software Architecture

1. Purpose and Scope

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.

2. Definitions and Abbreviations

2.1. Abbreviations

Abbreviation Description

ODS

OpenDevStack

3. References

N/A

4. Software Architecture

4.1. Software System Overview

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:

System Context

The following diagram illustrates in more detail how the various components interact:

Software System

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:

Namespaced Installation

4.2. Interfaces

Source Action Protocol Destination Comment

Bitbucket

Webhook Trigger

HTTP POST request

ODS Pipeline Installation

Endpoint is an exposed event listener.

Task ods-pipeline-start

Checkout repository

Git

Bitbucket

Task ods-pipeline-start

Set build status

HTTP / JSON API

Bitbucket

Task ods-pipeline-start

Download existing artifacts

HTTP / JSON API

Nexus

Task ods-pipeline-finish

Set build status

HTTP / JSON API

Bitbucket

Task ods-pipeline-finish

Upload artifacts

HTTP / JSON API

Nexus

Task ods-pipeline-finish

Send notifications

HTTP / API

Configured notification service

Binary artifact-download

Retrieve configuration and secrets

HTTP / JSON API

OpenShift

Binary artifact-download

Retrieve Git revisions

HTTP / JSON API

Bitbucket

Binary artifact-download

Download artifacts

HTTP / JSON API

Nexus

4.3. Hosting Environment

ODS Pipeline runs on Redhat OpenShift Container Platform, and is embedded into an installation of OpenDevStack.

5. Deployment

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.

6. Appendix

N/A

7. Document History

As this document is version controlled in Git, all changes are tracked as commits. The history of changes to this file can be retrieved via git log --oneline --no-merges docs/design/software-architecture.adoc.