The purpose of this document is to describe the technical realization of the given software system architecture and the software requirements. It states how the design meets the requirements.
As described in the architecture, the system is installed into local namespaces. This document explains the individual components and their interactions.
These scripts may be used by build tasks to skip doing work when no changes have been made compared to a previous task run.
SDS-SHARED-4 |
|
Caches a build’s outputs and ods artifacts to the If Determine cache location at
Copies artifacts to Copies build outputs specified in If successful creates file Input parameters:
|
SDS-SHARED-5 |
|
Copies build from cache area. If Determines cache location at If there is no directory at Copy artifacts inside Copy output files inside Write the cache-location to file Touch file Input parameters:
|
SDS-TASK-7 |
|
Task to start pipeline. References SDS-TASK-8 and executes SDS-TASK-9. Input parameters: TODO |
SDS-TASK-8 |
|
Container image to start a pipeline. Based on |
SDS-TASK-9 |
|
The task checks out the repository of a given URL and Git ref into the mounted workspace, cleaning previous contents, except for the caching area at A build task may store cached dependencies under directory Context information is stored under
If the The Bitbucket build status of the commit being built is set to "in progress". The build status links back to the pipeline run. |
SDS-TASK-10 |
|
Task to finish pipeline. References SDS-TASK-11 and executes SDS-TASK-12. Input parameters: TODO |
SDS-TASK-11 |
|
Container image to start a pipeline. Based on |
SDS-TASK-12 |
|
Sets the Bitbucket build status to "failed" or "successful", depending on whether all tasks succeeded or not. The build status links back to the pipeline run. Creates an artifact for the pipeline run, containing its name and status, provided that all tasks succeeded. If the |
SDS-TASK-29 |
|
Optionally sends a status notification to a webhook receiver. Status notification message, webhook URL, content type, HTTP method, and triggering status values may be configured via a |
SDS-PIPELINE-MANAGER-1 |
|
Service (exposing a set of pods) for the pipeline manager |
SDS-PIPELINE-MANAGER-2 |
|
Deployment (providing declarative updates for pods and replica sets) for the pipeline manager. The container template references SDS-PIPELINE-MANAGER-3. |
SDS-PIPELINE-MANAGER-3 |
|
Container image to hosting the pipeline manager. Based on |
SDS-PIPELINE-MANAGER-4 |
|
The pipeline manager parses the JSON payload of received Bitbucket webhooks and triggers a pipeline run dependent on the events received. For Git commits of which the commit message instructs skipping CI, no pipelines are triggered. Instructions may be anywhere in the commit message and may be one of (case-insensitive):
A pipeline run is created based on the ODS config file read from the Git ref of the repository corresponding to the webhook request. A PVC is created per repository unless it exists already. The name is equal to When no other pipeline run for the same repository is running or pending, the created pipeline run starts immediately. Otherwise a pending pipeline run is created, and a periodic polling is kicked off to allow the run to start once possible. Since the pipeline manager does not persist state about pending pipeline runs, polling is also started for all repositories in the related Bitbucket project when the server boots. Pipelines runs are pruned when a webhook trigger is received. Pipeline runs that are newer than the configured time window are protected from pruning. Older pipeline runs are cleaned up to not grow beyond the configured maximum amount. The pruning strategy is applied per repository. |
SDS-DLD-1 |
|
The binary receives flags from the user identifying:
The OpenShift namespace is used to retrieve configuration and secrets required to communicate with Bitbucket and Nexus. The For all repositories in scope, the artifacts in the corresponding groups in Nexus are downloaded to the local host. The files are placed into |
SDS-SETUP-1 |
Helm chart |
The Helm chart contains resources related to the pipeline manager, as well as config maps, secrets and tasks supporting pipeline runs. |
SDS-SETUP-2 |
|
The script is supposed to be downloaded and piped into bash. The script installs the prerequisites not already present in the Web Terminal image (Helm plugin |
SDS-SETUP-3 |
|
The script installs the Helm chart located in
|
ID | Name | Version | Description | Link |
---|---|---|---|---|
SDS-EXT-2 |
Red Hat Universal Base Image 8 Minimal |
8.4 |
Universal Base Image Minimal is a stripped down image that uses microdnf as a package manager. It is maintained by Red Hat and updated regularly. |
https://catalog.redhat.com/software/containers/ubi8/ubi-minimal/5c359a62bed8bd75a2c3fba8 |
SDS-EXT-9 |
Git |
2.39 |
Distributed version control system. |
|
SDS-EXT-13 |
openssh-clients |
8.0 |
Clients necessary to make encrypted connections to SSH servers. |
|
SDS-EXT-27 |
Git LFS |
3.0.2 |
Git Large File Storage extension for versioning large files. |