Content Plugins

As part of the Pulp installation, you must add a content plugin for each content type that you want to manage. The following sections contain information about the available content plugins for both Pulp 2 and Pulp 3. If you do not find the plugin for the content type you want to manage, consider writing a plugin.

Plugin Changes between Pulp 2 and Pulp 3

  • The ISO content support found in the Pulp 2 RPM plugin is now provided by the File plugin.
  • The Docker plugin in Pulp 2 has been replaced by the Container plugin.
  • Currently, there is no Pulp 3 plugin for Puppet content.

Pulp 3 CLI Coverage

The Pulp 3 CLI is a work in progress. The CLI is implemented by the plugin writers, so the workflows that are possible with the CLI vary from plugin to plugin. At the moment, these plugins have the following coverage:

  • RPM: Sync workflow
  • File: Sync workflow; content upload
  • Ansible: Sync workflow (role & collection)
  • Container: Sync workflow
  • Python: Sync workflow
  • Debian: Sync workflow
  • OSTree: Sync workflow

Role Based Access Control Support

Role Based Access Support (RBAC) is still under active development. While the functionality is available in Pulpcore, each plugin must add it separately. Currently, the only plugin that has a robust implementation is Pulp Container.

Cloud Storage

It is possible to configure Pulp to use cloud storage. However, plugins can introduce changes that are incompatible with, for example, S3 requirements. The Pulp Ansible, RPM, File, Debian, Python, and Container plugins are regularly tested to ensure they remain compatible but the level of coverage is lower for other plugins.

Pulp 3 Content Plugin Features

RPM

  • Create, sync and publish a repository with RPM Content including RPMs, Advisories, Modularity, and Comps.
  • Create, sync and publish a repository with Unbreakable Linux Network (ULN) remotes to sync from ULN servers.
  • Version content and rollback if necessary.
  • Download content on-demand when requested by clients to reduce disk space.
  • Upload local RPM content in chunks.
  • Add, remove, copy, and organize RPM content into various repositories.
  • Host content either locally or on S3.
  • View distributions served by pulpcore-content in a browser.
  • De-duplication of all saved content.

File

  • Sync File packages from a remote to local repository.
  • Upload your own files.
  • Publish and organize files.

Container

For an in-depth look at the available workflows, see the Pulp Container workflow documentation.

You can read about Pulp container’s Role Based Access Control(RBAC) support here.

  • Synchronize container image repositories hosted on Docker-hub, Google Container Registry, Quay.io, and any other that is Docker Registry HTTP API V2-compatible in mirror or additive mode.
  • Version content and rollback if necessary.
  • Download content on-demand when requested by clients to reduce disk space.
  • Host content either locally or on S3.
  • Perform docker/podman pull from a container distribution served by Pulp.
  • Perform docker/podman push to the Pulp Registry.
  • Support for registry token authentication.
  • Curate container images by filtering what is mirrored from an external repository.
  • Curate container images by creating repository versions with a specific set of images.
  • Build an OCI format image from a Containerfile and make it available from the Pulp Registry.
  • De-duplication of all saved content.
  • Support disconnected and air-gapped environments with pulp import/export facility for synced container repositories.

Ansible

  • Mirror a subset of roles on-premise.
  • Mirror all of Galaxy’s roles on-premise.
  • Store private Ansible roles on-premise.
  • Install roles from pulp_ansible using the ansible-galaxy CLI.
  • Version content and rollback if necessary.
  • Support for the new multi-role content type from Galaxy.

Debian

  • Synchronize remote repository content and metadata locally.
  • Upload your own content.
  • Publish content to one or more repositories.

Python

  • Synchronize Python packages from PyPI locally.
  • Upload your own Python packages.
  • Publish and organize Python packages just like PyPI.
  • Install Python packages using pip as published by Pulp.

OSTree

The Pulp OSTree plugin is the latest plugin added. At the moment, it has alpha status and is under active development. The initial release contains the following functionality:

  • Synchronize content from a remote OSTree repository and serve it via Pulp.
  • Import new OSTree commits to an existing Pulp repository.
  • Consume content imported to Pulp using the ostree utility.

Unmaintained plugins

The following plugins have been created and developed to some extent but have not been regularly maintained. If you’re interested in extending or maintaining the basic functionality of these plugins, let us know.

Ruby Gem

  • Synchronize remote repository content and metadata locally.
  • Upload your own content.
  • Publish content to one or more repositories.

Chef Cookbook

  • Sync Cookbook content from a remote to local repository.
  • Upload your own content.
  • Publish and organize content.

Maven

  • Synchronize packages from a remote to local repository.
  • Upload your own Maven content.
  • Publish and organize packages.

Pulp 3 Content Plugins Information

This table contains links to information and sources for all Pulp 3 content plugins. If a plugin is missing contact us.

Pulp Plugin Docs Source Tracker Install with PyPI Install with RPM
Ansible plugin Ansible plugin docs Ansible plugin source Ansible plugin tracker Yes No
Chef cookbook plugin Cookbook plugin docs Cookbook plugin source Cookbook plugin tracker Yes No
Debian plugin DEB plugin docs DEB plugin source DEB plugin tracker Yes No
Container plugin Container plugin docs Container plugin source Container plugin tracker Yes No
File File plugin docs File plugin source File plugin tracker Yes No
GalaxyNG plugin GalaxyNG plugin docs GalaxyNG plugin source GalaxyNG tracker Yes No
Gem plugin Gem plugin docs Gem plugin source Gem plugin tracker Yes No
Maven plugin Maven plugin docs Maven plugin source Maven plugin tracker Yes No
OSTree plugin OSTree plugin docs OSTree plugin source OSTree plugin tracker Yes No
Python plugin Python plugin docs Python plugin source Python plugin tracker Yes No
RPM plugin RPM plugin docs RPM plugin source RPM plugin tracker Yes No

Pulp 2 Content Plugins Information

Pulp 2 will become End of Life in November 2021. For more information about migrating from Pulp 2 to Pulp 3, see the migration plugin documentation.

This table contains links to information and sources for all Pulp 2 content plugins. If a plugin is missing contact us.

Pulp Plugin Docs Source Tracker Install with PyPI Install with RPM
RPM plugin RPM plugin docs RPM plugin source RPM plugin tracker No Yes
Debian plugin DEB plugin docs DEB plugin source DEB plugin tracker No Yes
Docker plugin Docker plugin docs Docker plugin source Docker plugin tracker No Yes
Python plugin Python plugin docs Python plugin source Python plugin tracker No Yes
Puppet plugin Puppet plugin docs Puppet plugin source Puppet plugin tracker No Yes

Are we missing a plugin? Let us know via the pulp-dev@redhat.com mailing list.