pulp / pulp/pulpcore

Add MultiRemoteDistribution support for pull-through caching with multiple remotes

Open
#7,815 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature Triage-Needed
Dominant language
Python
Stars
598
Forks
168
Avg merge
1d 4h
Merged PRs (30d)
86

Description

Problem Statement

Currently a distribution can only point to a single remote for pull-through caching. There are use cases where a distribution needs to pull content from multiple upstream sources. A new MultiRemoteDistribution is needed that can point to multiple remotes. When the content app handles a pull-through cache request using such a distribution, it should try each remote in order until it finds one that has the requested artifact. Once found, the content should be streamed to the client and cached in Pulp.

Requirements

  • Add a new MultiRemoteDistribution model that can reference multiple remotes
  • When serving a pull-through cache request, the content app must try each remote associated with the distribution until the artifact is found
  • Once a remote with the content is found, stream the artifact to the client and cache the package in Pulp
  • Each plugin must be able to inherit from MultiRemoteDistribution and implement it for its specific content type

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the existing distribution model and the content app's pull-through cache request handling. Then review how plugins inherit distribution types and how remotes are selected. Done means a MultiRemoteDistribution supports ordered remotes, streams the first matching artifact, caches it in Pulp, and can be implemented by each plugin for its content type.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.