TripleO Repo Management Tool

Create a tool to handle the repo setup for TripleO

Problem Description

The documented repo setup steps for TripleO are currently:

  • 3 curls
  • a sed
  • a multi-line bash command
  • a yum install
  • (optional) another yum install and sed command

These steps are also implemented in multiple other places, which means every time a change needs to be made it has to be done in at least three different places. The stable branches also need slightly different commands which further complicates the documentation. They also need to appear in multiple places in the docs (e.g. virt system setup, undercloud install, image build, undercloud upgrade).

Proposed Change


My proposal is to abstract away the repo management steps into a standalone tool. This would essentially change the repo setup from the process described above to something like:

sudo yum install -y
sudo tripleo-repos current

Historical note: The original proposal was called dlrn-repo because it was dealing exclusively with dlrn repos. Now that we’ve started to add more repos like Ceph that are not from dlrn, that name doesn’t really make sense.

This will mean that when repo setup changes are needed (which happen periodically), they only need to be made in one place and will apply to both developer and user environments.


Use’s repo setup. However, is not intended as a user-facing tool. It’s supposed to be a thin wrapper that essentially implements the documented deployment commands.

Security Impact

The tool would need to make changes to the system’s repo setup and install packages. This is the same thing done by the documented commands today.

Other End User Impact

This would be a new user-facing CLI.

Performance Impact

No meaningful change

Other Deployer Impact

Deployers would need to switch to this new method of configuring the TripleO repos in their deployments.

Developer Impact

There should be little to no developer impact because they are mostly using other tools to set up their repos, and those tools should be converted to use the new tool.



Primary assignee:
Other contributors:
<launchpad-id or None>

Work Items

  • Update the proposed tool to match the current repo setup
  • Import code into gerrit
  • Package tool
  • Publish the package somewhere easily accessible
  • Update docs to use tool
  • Convert existing developer tools to use this tool



Testing would be converted to use this tool so it would be covered by existing CI.

Documentation Impact

Documentation would be simplified.