Changes From Pulp 2

Renamed Concepts

Importers -> Remotes

CLI users may not have been aware of Importer objects because they were embedded into CLI commands with repositories. In Pulp 3, this object is now called a remote. The scope of this object has been reduced to interactions with a single external source. They are no longer associated with a repository.

Distributors -> Publication/Exporters

CLI users may not have been aware of Distributor objects because they were also embedded into CLI commands with repositories. In some cases these distributors created metadata along with the published content, e.g. YumDistributor. In other cases, Distributor objects pushed content to remote services, such as the RsyncDistributor.

For Pulp 2 Distributors that produce metadata, e.g. YumDistributor, Pulp 3 introduces a publication that stores content and metadata created describing that content. The responsibilities of serving a publication are moved to a new object, the distribution. Only plugins that need metadata produced at publish time will have use publications.

For Pulp 2 Distributors that push content to remote systems, e.g. RsyncDistributor, Pulp 3 introduces an exporter that is used to push an existing publication to a remote location. For content types that don’t use publications, exporters can export repository version content directly.

New Concepts

Repository Version

A new feature of Pulp 3 is that the content set of a repository is versioned. Each time the content set of a repository is changed, a new immutable repository version is created. An empty repository version is created upon creation of a repository.


The combination of publications and distributions allows users to promote and rollback instantly. With one call, the user can update a distribution (eg. “Production”) to host any pre-created publication.

Going Live is Atomic

Content is served by a distribution and goes live from Pulp’s content app as soon as the database is configured to serve it. This guarantees a users view of a repository is consistent and as the entire repository is made available atomically.