Bug #18533

Docker upstream repository name length limit

Added by Filip Van Raemdonck about 1 month ago. Updated 17 days ago.

Status:Ready For Testing
Priority:Normal
Assigned To:Thomas McKay
Category:Repositories
Target version:Team Tom - iteration 11
Difficulty:trivial Pull request:https://github.com/Katello/katello/pull/6660
Bugzilla link:
Story points-
Velocity based estimate-
Release3.4.0Release relationshipAuto

Description

Trying to add a docker repository with a length of more than 30 characters for the image name part fails with error: "Docker upstream name must be a valid docker name"

This seems somewhat arbitrary, image with a name of more than 30 characters do exist on Docker Hub (and other publicly accessible registries).

$ sudo docker search openvswitch | grep -E "/[a-zA-Z0-9-]{30}[^ ]" 
docker.io    docker.io/intelonp/centos-source-neutron-openvswitch-agent                            centos-source-neutron-openvswitch-agent         0                    [OK]
docker.io    docker.io/intelonp/centos-source-openvswitch-db-server                                centos-source-openvswitch-db-server             0                    [OK]
docker.io    docker.io/intelonp/centos-source-openvswitch-vswitchd                                 centos-source-openvswitch-vswitchd              0                    [OK]
docker.io    docker.io/rbbratta/centos-source-neutron-openvswitch-agent                            centos-source-neutron-openvswitch-agent         0                    [OK]
docker.io    docker.io/rbbratta/centos-source-openvswitch-db-server                                centos-source-openvswitch-db-server             0                    [OK]
docker.io    docker.io/rbbratta/centos-source-openvswitch-vswitchd                                 centos-source-openvswitch-vswitchd              0                    [OK]
docker.io    docker.io/tripleoupstream/centos-binary-openvswitch-vswitchd                                                                          0

History

#1 Updated by Thomas McKay about 1 month ago

  • Assigned To set to Thomas McKay
  • Target version set to Team Tom - iteration 11

#2 Updated by Filip Van Raemdonck about 1 month ago

From https://github.com/docker/distribution/blob/master/docs/spec/api.md

Classically, repository names have always been two path components where each path component is less than 30 characters. The V2 registry API does not enforce this. The rules for a repository name are as follows:

A repository name is broken up into path components. A component of a repository name must be at least one lowercase, alpha-numeric characters, optionally separated by periods, dashes or underscores. More strictly, it must match the regular expression [a-z0-9]+(?:[._-][a-z0-9]+)*.
If a repository name has two or more path components, they must be separated by a forward slash ("/").
The total length of a repository name, including slashes, must be less than 256 characters.

So it looks like the existing restriction in katello is a relic from v1 registry era.

#3 Updated by Justin Sherrill about 1 month ago

  • Release set to 3.4.0
  • Difficulty set to trivial

#4 Updated by The Foreman Bot 17 days ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/Katello/katello/pull/6660 added

Also available in: Atom PDF