From d2dddfad6d6d355f80095c2c7ae7c09293eb2627 Mon Sep 17 00:00:00 2001 From: r03t <118639422+r03t@users.noreply.github.com> Date: Fri, 26 Dec 2025 00:09:24 +0100 Subject: [PATCH] feat: allow empty base_path for distributions This enables Docker registry mirror compatibility by allowing pull-through distributions to serve at the root path (empty base_path). When base_path is empty, the distribution matches all incoming paths, making it work as a transparent Docker Hub mirror. --- pulpcore/app/models/publication.py | 2 +- pulpcore/app/serializers/publication.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pulpcore/app/models/publication.py b/pulpcore/app/models/publication.py index f354f0dd5a5..c8b88d8a73d 100644 --- a/pulpcore/app/models/publication.py +++ b/pulpcore/app/models/publication.py @@ -615,7 +615,7 @@ class Distribution(MasterModel): name = models.TextField(db_index=True) pulp_labels = HStoreField(default=dict) - base_path = models.TextField() + base_path = models.TextField(blank=True) pulp_domain = models.ForeignKey("Domain", default=get_domain_pk, on_delete=models.PROTECT) hidden = models.BooleanField(default=False, null=True) checkpoint = models.BooleanField(default=False) diff --git a/pulpcore/app/serializers/publication.py b/pulpcore/app/serializers/publication.py index 72d1dabcbfe..e972d0ec400 100644 --- a/pulpcore/app/serializers/publication.py +++ b/pulpcore/app/serializers/publication.py @@ -221,6 +221,7 @@ class DistributionSerializer(ModelSerializer): overlap with other distribution base paths (e.g. "foo" and "foo/bar")' ), validators=[DomainUniqueValidator(queryset=models.Distribution.objects.all())], + allow_blank=True, ) base_url = BaseURLField( source="*",