Repositories

DLRN doesn’t stop at building packages, it also generates yum repositories you can install the packages from.

DLRN repositories are all hosted on http://trunk.rdoproject.org.

This documentation goes through the various repositories and what they are used for.

Building new packages and repositories

DLRN watches upstream git repositories for new commits. When there is one, DLRN builds a new version of the project’s package with the new commit.

On a successful build, DLRN will generate a new repository with the latest version of every package that successfully built.

A package build can fail due to different reasons, for example when a new dependency was introduced that needs to be added to the RPM spec file. If there is a build failure, no repository is generated and the project’s package is not updated.

The package will not be updated for as long as it fails to build. This means that newer repositories generated from other projects’ commits would not contain all the latest commits of the project that failed to build.

DLRN does not delete any generated repositories. This means we can use any previously built repositories if necessary.

Generated repositories are unique and each have their own hash. For example, you might be using the DLRN /centos7/current/delorean.repo repository but in fact this corresponds to /centos7/42/0c/420c638d6325d1ccf50eb5fe430c5d255dcbfb94_52cbbfe7.

DLRN manages these references as simple symbolic links for the current and consistent repositories. The current-passed-ci repository is a symbolic link managed automatically by RDO’s continuous integration pipeline and is not managed or known by DLRN itself.

DLRN repository: delorean-deps

OpenStack projects are typically built into the DLRN repositories. These projects require dependencies that DLRN does not build, for example python-requests, python-prettytable and so on.

The RDO project provides a mirror which contains all of these dependencies and the repository configuration is available at /delorean-deps.repo for each release.

For example:

DLRN repository: current

On a successful build, DLRN will generate a new repository with the latest version of every package that successfully built.

This new repository will be tagged as current. A current repo contains the last successfully built package from every project.

A DLRN current repository might not contain all the latest upstream commits, if any of them failed to build the package. For example, if we had 100 packages, 99 of them have been successfully built but openstack-nova failed, the current repository would contain the latest commits from 99 projects, and the last commit that could be built for openstack-nova, which is at least 1 commit behind the current master.

if there are any ongoing build failures that are unresolved.

This repository is available at /current/delorean.repo for each release.

For example:

DLRN repository: consistent

DLRN consistent repositories are generated for any given set of packages that have no current build failures.

These repositories have the latest and greatest of every package and all upstream commits have been successfully built up until that point. In the above example, if 99 packages are successfully built but openstack-nova fails to build, the consistent repository will not be updated until it is fixed.

The continuous integration done to test RDO packages target the DLRN consistent repositories.

This repository is available at /consistent/delorean.repo for each release.

For example:

DLRN repository: current-passed-ci

The RDO project has a continuous integration pipeline that consists of multiple jobs that deploy and test OpenStack as accomplished by different installers.

This vast test coverage attempts to ensure that there are no known issues either in packaging, in code or in the installers themselves.

Once a DLRN consistent repository has undergone these tests successfully, it will be promoted to current-passed-ci.

current-passed-ci represents the latest and greatest version of RDO trunk packages that were tested together successfully.

We encourage installer projects and users of RDO to use this repository to keep up with trunk while maintaining a certain level of stability provided by RDO’s CI.

This repository is available at /current-passed-ci/delorean.repo for each release.

For example: