Alternate Content Sources

Warning

This feature requires plugin support to work correctly.

Warning

This feature is provided as a tech preview and could change in backwards incompatible ways in the future

Overview

Pulp supports the concept of Alternate Content Sources (ACS) which sync content using a remote. Each content source is a potential alternate provider of files that are associated with content units in Pulp.

The ACS are useful when dealing with an unreliable or slow internet connection to remote repositories. Also, when some parts of the repositories are already present on the local filesystem, configuring a remote pointing to, e.g., file://path/to/the/repo enables the related ACS to fetch the content faster. Similarly, if there exists a mirror of a CDN that is known to be geographically closer to clients, the ACS may come to the place as well.

Setting the ACS tells Pulp to first check for alternative sources of content in an attempt to pull the remote content. The ACS have a global scope. Thus, alternative sources will be used in all future synchronization tasks regardless of the remote specified during the sync time as long as the checksums of remote artifacts match.

Creating ACS

To create ACS, you’ll need a Remote with the “on_demand” policy. You can have ACS point to multiple Repositories by specifying the paths parameter. Each path will be appended to the Remote’s url.

pulp <plugin_name> acs create --name <acs_name> --remote <remote> --path <path> --path <path>

Note

The path option is optional and can be specified multiple times. If a path is not provided, the url of your remote is used to search for content.

Updating ACS

To update ACS, use a similar call to your ACS but with update command:

pulp <plugin_name> acs update --name <acs_name> --remote <remote>

To add or remove paths, use the path subcommand:

pulp <plugin_name> acs path add --name <acs_name> --path <path>
pulp <plugin_name> acs path remove --name <acs_name> --path <path>

Refreshing ACS

To make ACS available the next time you sync, you will need to call the refresh command. It will go through your paths and catalog content from your content source.

pulp <plugin_name> acs refresh --name <acs_name>