Last modified 2 years ago Last modified on 05/02/12 04:13:22

What is PulpDist?

PulpDist is (or, more accurately, will be) a tool for managing a network of Pulp servers as a secure, centrally coordinated, mirroring system. It will eventually provide filtered mirroring with robust access control between globally distributed sites over bandwidth limited and potentially high latency WAN links.

Key (planned) PulpDist features:

  • filtered mirroring
    • only selected directory trees are set up for replication rather than entire disk volumes
    • rsync filtering is used within trees to further reduce the volume of data transferred
  • robust access control
    • Pulp's X.509 certificate infrastructure
  • widely distributed sites with limited WAN bandwidth
    • where possible, generate rsync delta files on the upstream server (to minimise WAN round trips)
    • fallback to direct rsync to cover any gaps in synchronisation and to handle trees where the upstream server is just a standard rsync server
    • option to publish rsync delta files via an external content delivery network
    • ability to use more efficient content-specific transfer protocols where appropriate (e.g. using jigdo to regenerate ISOs on the downstream mirrors)

Progress on the project is currently reported via the 'pulpdist' tag on Nick Coghlan's personal blog. You can also take a look at the in development PulpDist documentation and the list of open issues in Bugzilla.

Any queries regarding this project can be directed towards the main Pulp mailing list.

The code for both the web application and custom Pulp plugins can be found in the public Git repo.

Checking out the repo:

$ git clone git://

To obtain RPMs for both PulpDist? itself and any PyPI dependencies not already provided in the Fedora or Pulp yum repositories, install the PulpDist yum repo configuration file.

$ wget -O /etc/yum.repos.d/fedora-pulpdist.repo

(Note: There aren't any public releases of PulpDist? at this time, but the repos do include packaged version of the PyPI dependencies referenced from the current spec file)

The project is currently in a pre-alpha state: backwards incompatible changes may be made without notice.


PulpDist is currently being worked on by a small team:

It has a fair way to go before the project infrastructure will be in a fit state for anyone else to sensibly contribute to it :)

As an early adopter of their not-yet-stable plugin APIs, we also work closely with the upstream Pulp developers, providing feedback and suggestions for possible API improvements.

Current DesignNotes

Documentation Notes

The PulpDist? documentation is created using Sphinx and reStructuredText. To build a local copy of the documentation on Fedora:

$ sudo yum install python-sphinx
$ git clone git://
$ cd pulpdist/doc
$ make html

Once an initial copy has been built locally, the final make command should take care of any further updates.