Skip to content
Browse files

Add documentation for TripleO/RDO/OSP Pipelines

This documentation covers the promotion pipelines
and the use of the DLRN API Promoter script to
promote and update images, repos and symlinks.

Change-Id: Idcd8f4f4cd9bb8468ede95f4e879f0e2f710c9ba
  • Loading branch information...
rlandy committed Oct 9, 2017
1 parent 9e6170f commit 2f9d4b96c2f46d5cb453571c3f396fe2021dd9cf
@@ -0,0 +1,141 @@
How the TripleO-RDO Pipelines' Promotions Work

Building consumable RDO repos and images involves various stages.
Each stage takes inputs and outputs artifacts. This document explains the
stages comprising the promotion pipelines, and the tools used to create
and manage the resulting artifacts.

What is DLRN?

DLRN is a tool to build RPM packages from each commit to a set of
OpenStack-related git repositories that are included in RDO.
DLRN builds are run through CI and to detect packaging issues with the
upstream branches of these Openstack projects.

DLRN Artifacts - Hashes and Repos

When a DLRN build completes, it produces a new hash and related repo version.
For example, the Pike builds on CentOS are available at:
The builds are placed in directories by DLRN hash. Each directory contains
the RPMs as well as a repo file
and a ``commit.yaml`` file

There are some standard links that are updated as the builds complete and pass
stages of CI. Examples are these links are:


The above links will be referenced in the sections below.

Promoting through the Stages - DLRN API


`client <>`_
enables users to query repo status, upload new hashes and create promotions.
Calls to the dlrnapi_client retrieve the inputs to stages and upload artifacts
after stages.

For example:


$ dlrnapi --url \
promotion-get --promote-name tripleo-ci-testing

[{'commit_hash': 'ec650aa2c8ce952e4a33651190301494178ac562',
'distro_hash': '9a7acc684265872ff288a11610614c3b5739939b',
'promote_name': 'tripleo-ci-testing',
'timestamp': 1506427440},
{'commit_hash': 'ec650aa2c8ce952e4a33651190301494178ac562',

$ dlrnapi --url \
repo-status --commit-hash ec650aa2c8ce952e4a33651190301494178ac562 \
--distro-hash 9a7acc684265872ff288a11610614c3b5739939b

[{'commit_hash': 'ec650aa2c8ce952e4a33651190301494178ac562',
'distro_hash': '9a7acc684265872ff288a11610614c3b5739939b',
'in_progress': False,
'job_id': 'consistent',
'notes': '',
'success': True,
'timestamp': 1506409403,
'url': ''},
{'commit_hash': 'ec650aa2c8ce952e4a33651190301494178ac562',
'distro_hash': '9a7acc684265872ff288a11610614c3b5739939b',
'in_progress': False,
'job_id': 'periodic-singlenode-featureset023',
'notes': '',
'success': True,
'timestamp': 1506414726,
'url': ''},
{'commit_hash': 'ec650aa2c8ce952e4a33651190301494178ac562',

DLRN API Promoter

`The DLRN API Promoter script
is a Python script that, based on the information in an input config file,
will promote an existing DLRN link to another link, provided the required tests
return successful results.

For example,
`the master ini config file
is passed to the `promoter script
to promote the ``current-tripleo`` link to ``current-tripleo-rdo``. See the
sections above where both these links (for Pike) were shown.

In the RDO Phase 1 pipeline, the tests listed under the ``[current-tripleo-rdo]``
are run with the ``current-tripleo`` hash. Each test reports its ``success`` status to the
DLRN API endpoint for the Master release, ``api-centos-master-uc``.

If each test reports ``SUCCESS: true``, the content of the ``current-tripleo``
will become the new content of the ``current-tripleo-rdo`` hash.

For complete documentation on how to run the Promoter script see:

Pushing RDO containers to ````

The DLRN Promotor script calls the `container push playbook
to push the RDO containers at each stage to `
Note that the the above ```` link shows containers tagged with ``tripleo-ci-testing``,
``current-tripleo`` and ``current-tripleo-rdo``.

DLRN API Promoter Server

It is recommended that the Promoter script is run from a dedicated server.
`The promoter-setup repo
contains the Ansible playbook used to setup the promoter-server in the RDO
Cloud environment. This playbook allows the promoter script server to be
rebuilt as required.

@@ -8,3 +8,5 @@ TripleO Contributor Guide
@@ -0,0 +1,99 @@
Promotion Stages

The list below shows each stage within the RDO promotion workflow.
Each stage shows the inputs taken and the artifacts produced.

.. note:: All the links shown in the diagram refer to the Master release.

Links for stable branches would include the stable release name,
for example, `Pike stable release <>`_.

1. **Upstream TripleO**

`CI DLRN Master consistent
is generated every 30 mins from upstream commits in case of no packaging errors.

The ``current`` build contains the latest packages that can be built,
even if some other packages are failing to build. The ``current`` and
``consistent`` builds will be equivalent where there are no problems with
the build. See
(for Master) for the result of builds.

2. **Upstream Promotion Pipeline**

` zuul <>`_

*Update* from consistent -> tripleo-ci-testing

*Push containers* to ```` tagged with ``tripleo-ci-testing``

Run tests - if tests report success ->
*Promote* from tripleo-ci-testing -> current-tripleo using DLRN Promoter

*Push containers* to (tripleo-ci-testing)
and upon promotion, also tag them with ``current-tripleo``

*Update images* using DLRN Promoter
See artifacts referenced:
RH1 mirror server for images

*Push containers* to ```` tagged with ``current-tripleo``

Logs from the DLRN Promoter can be accessed on
`A Sova instance <>`_ is used to monitor these jobs

3. **RDO Phase 1**


Run tests - if tests report success ->
*Promote* from current-tripleo -> current-tripleo-rdo using DLRN Promoter

*Promote the images* to

*Tag the containers* as ``current-tripleo-rdo``

*Push containers* to ```` tagged with ``current-tripleo-rdo``

4. **RDO Phase 2**

Get RDO Phase 1 generated image (RDO on CentOS) from$BUILD_SYS/$PIN/$hash_id
and cache internally

Build http://<internal>/ci-images/master (RDO on RHEL)

Run tests (RDO on CentOS for baremetal and RDO on RHEL)
If tests report success ->
*Update symlink* using DLRN Promoter

*Update the images link* as

*Tag the containers* as ``current-tripleo-rdo-internal``

Run futher downstream jobs (scale etc.)

5. **OSP Phase 0**

*Hand off* to RHOSP builds

0 comments on commit 2f9d4b9

Please sign in to comment.
You can’t perform that action at this time.