base_path uniqueness constraint prevents syncing the same image from multiple remote registries
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
Start by reproducing the conflict with the documented pulp container remote, repository sync, and distribution create commands for two registries. Investigate how distributions enforce base_path uniqueness and how repositories are associated with distributions. Done means tags from multiple registries can be served under one image path without the uniqueness error, while existing same-registry behavior remains intact.
索引モデルが issue の本文から書いたものです。
説明
Summary
When the same container image path (e.g. library/mysql) is synced from
multiple remote registries, Pulp rejects the second and subsequent
distributions with a base_path uniqueness error.
Tags from the same image across different registries cannot be served
under a single distribution.
Current Behaviour
| Remote registry | Image | Derived base_path |
Result |
|---|---|---|---|
docker.io |
library/mysql |
library/mysql |
✅ Created |
100.10.1.114:443 |
library/mysql |
library/mysql |
❌ Rejected |
100.10.1.114:3445 |
library/mysql |
library/mysql |
❌ Rejected |
Error returned:
{"base_path": ["This field must be unique."]}
Note: Multiple tags of the same image from the same registry sync
and distribute correctly. The issue only occurs when different remote
registries provide tags for the same image path.
Expected Behaviour
If tags are coming from different registries for the same image, Pulp
should support serving them through the same distribution with the same
base_path. The unified tag list from all upstream sources should be
accessible to clients under a single namespace.
Reproduction Steps
# 1. Create remote A (public registry)
pulp container remote create \
--name "mysql-dockerhub" \
--upstream-name "library/mysql" \
--url "https://registry-1.docker.io" \
--include-tags "8.0 8.4"
# 2. Sync remote A → repo A
pulp container repository create --name "mysql-a"
pulp container repository sync --name "mysql-a" --remote "mysql-dockerhub"
# 3. Create distribution A → succeeds
pulp container distribution create \
--name "mysql-dist" \
--base-path "library/mysql" \
--repository "mysql-a"
# 4. Create remote B (private registry, different tags)
pulp container remote create \
--name "mysql-private" \
--upstream-name "library/mysql" \
--url "https://100.10.1.114:443" \
--include-tags "8.0-custom 8.4-patched"
# 5. Sync remote B → repo B
pulp container repository create --name "mysql-b"
pulp container repository sync --name "mysql-b" --remote "mysql-private"
# 6. Create distribution B → FAILS
pulp container distribution create \
--name "mysql-dist-private" \
--base-path "library/mysql" \
--repository "mysql-b"
# ERROR: {"base_path": ["This field must be unique."]}
Related Issues
- #2164 – Expose Image Tags in Pulp Container Distribution / CLI
— that issue added support for exposing tags within a single
remote/repository. This issue extends the same need across multiple
remotes/registries for the same image path.
Use Case
In enterprise environments it is common to mirror the same image from
multiple upstream registries (public + private, or primary + DR site) and
present them behind a single namespace to consumers. Currently there is
no way to achieve this in Pulp when the image path is identical across
registries.
- 主要言語
- Python
- スター
- 31
- フォーク
- 57
- 平均マージ
- 1日 8時間
- マージ済み PR(30日)
- 87
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pulp/pulp_container のほかの issue
-
Feature
難易度 3/5 1〜2日 初心者へのやさしさ 65/100
pulp/pulp_container#2519 ·
メンテナーはふだん 1 日以内に返信
-
Sync performance: skip /tags/list for specific tag lists対応中かも @parmstro が 21 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
pulp/pulp_container#2474 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
pulp/pulp_container#2473 ·
メンテナーはふだん 1 日以内に返信
-
Task
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
pulp/pulp_container#2246 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Issue
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
pulp/pulp_container#2049 ·
メンテナーはふだん 1 日以内に返信
pulp/pulp_container の issue をすべて見る
似ている issue
-
ai_p2 bug comp-datalake
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
ClickHouse/ClickHouse#128306 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
[bug] openlit: LLM spans from openlit 1.37+ get no OpenInference attributes, and cache and reasoning token counts are dropped対応中かも @sohom-cs が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
Arize-ai/openinference#4199 · リアクション 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
MichaelYcJo/SpecSeal#1192 ·