Bug 1518866 - atomic pull unable to find image by shortname from registry.fedoraproject.org
Summary: atomic pull unable to find image by shortname from registry.fedoraproject.org
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: atomic
Version: 27
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Brent Baude
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1518857
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-11-29 16:42 UTC by Micah Abbott
Modified: 2017-12-11 04:09 UTC (History)
12 users (show)

Fixed In Version: atomic-1.20.1-6.fc26 atomic-1.20.1-6.fc27
Clone Of: 1518857
Environment:
Last Closed: 2017-12-09 22:27:07 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Micah Abbott 2017-11-29 16:42:17 UTC
Using Fedora 27 Atomic Host on the 'testing' branch, we get a similar version of 'atomic' and similar problems with the Fedora registry:

# rpm -q atomic
atomic-1.20.1-3.fc27.x86_64

# atomic --debug pull f26/cockpit                                            
Namespace(_class=<class 'Atomic.pull.Pull'>, assumeyes=False, debug=True, func='pull_image', ignore=False, image='f26/cockpit', profile=False, reg_type=None, src_creds=None, storage=None)                        
Unable to find f26/cockpit                                                                                                                                                                                         
Traceback (most recent call last):                        
  File "/usr/bin/atomic", line 185, in <module>                                                                                                                                                                    
    sys.exit(_func())                                                                                    
  File "/usr/lib/python3.6/site-packages/Atomic/pull.py", line 54, in pull_image                         
    remote_image_obj = be.make_remote_image(self.args.image)                                             
  File "/usr/lib/python3.6/site-packages/Atomic/backends/_docker.py", line 270, in make_remote_image                                                                                                               
    img_obj = self._make_remote_image(image)                                                                                                                                                                       
  File "/usr/lib/python3.6/site-packages/Atomic/backends/_docker.py", line 275, in _make_remote_image
    return self._make_image(image, None, remote=True)                                                                                                                                                              
  File "/usr/lib/python3.6/site-packages/Atomic/backends/_docker.py", line 180, in _make_image           
    img_obj = Image(image, remote=remote)                                                                
  File "/usr/lib/python3.6/site-packages/Atomic/objects/image.py", line 54, in __init__                                                                                                  
    self._instantiate()                                                                    
  File "/usr/lib/python3.6/site-packages/Atomic/objects/image.py", line 81, in _instantiate                                                                                    
    self._setup_common()                                                                       
  File "/usr/lib/python3.6/site-packages/Atomic/objects/image.py", line 89, in _setup_common
    self.registry, self.repo, self.image, self.tag, self.digest = Decompose(self.fq_name).all
  File "/usr/lib/python3.6/site-packages/Atomic/objects/image.py", line 127, in fq_name  
    self._fq_name = ri.find_image_on_registry(quiet=True)
  File "/usr/lib/python3.6/site-packages/Atomic/discovery.py", line 96, in find_image_on_registry
    raise RegistryInspectError("Unable to find {}".format(self.orig_input))
Atomic.discovery.RegistryInspectError: Unable to find f26/cockpit         
                                                                                                                                     
During handling of the above exception, another exception occurred:                                                                            
                                                                                                                                                                                       
Traceback (most recent call last):          
  File "/usr/bin/atomic", line 213, in <module>                                                                                                                                          
    sys.exit(1)                                                                                
SystemExit: 1                                                                                                          

# atomic --debug pull registry.fedoraproject.org/f26/cockpit                                                                                                                           
Namespace(_class=<class 'Atomic.pull.Pull'>, assumeyes=False, debug=True, func='pull_image', ignore=False, image='registry.fedoraproject.org/f26/cockpit', profile=False, reg_type=None, src_creds=None, storage=None)                                                 
Pulling registry.fedoraproject.org/f26/cockpit:latest ...                                                
Executing: /usr/bin/skopeo --policy=/etc/containers/policy.json --debug copy --remove-signatures docker://registry.fedoraproject.org/f26/cockpit:latest docker-daemon:registry.fedoraproject.org/f26/cockpit:latest
DEBU[0000] Using registries.d directory /etc/containers/registries.d for sigstore configuration          
DEBU[0000]  Using "default-docker" configuration                                                         
DEBU[0000]  No signature storage configuration found for registry.fedoraproject.org/f26/cockpit:latest   
DEBU[0000] Looking for TLS certificates and private keys in /etc/docker/certs.d/registry.fedoraproject.org                                                                                                         
DEBU[0000] GET https://registry.fedoraproject.org/v2/                                                    
DEBU[0000] Ping https://registry.fedoraproject.org/v2/ err <nil>                                         
DEBU[0000] Ping https://registry.fedoraproject.org/v2/ status 200                                        
DEBU[0000] GET https://registry.fedoraproject.org/v2/f26/cockpit/manifests/latest                        
DEBU[0000] IsRunningImageAllowed for image docker:registry.fedoraproject.org/f26/cockpit:latest          
DEBU[0000]  Using default policy section                                                                 
DEBU[0000]  Requirement 0: allowed                                                                       
DEBU[0000] Overall: allowed                                                                              
DEBU[0000] Downloading /v2/f26/cockpit/blobs/sha256:d9e106a323d28cbd18b989acd2398c09b223d32c284c0cef3b894c40d386b9c0                                                                                               
DEBU[0000] GET https://registry.fedoraproject.org/v2/f26/cockpit/blobs/sha256:d9e106a323d28cbd18b989acd2398c09b223d32c284c0cef3b894c40d386b9c0                                                                     
DEBU[0000] Manifest has MIME type application/vnd.docker.distribution.manifest.v2+json, ordered candidate list [application/vnd.docker.distribution.manifest.v2+json]                                              
DEBU[0000] ... will first try using the original manifest unmodified                                     
Copying blob sha256:3a9ba673192ff666c7be242a4f3ecb44c284f78be561781555eaef831f6bb6c7                     
DEBU[0000] Downloading /v2/f26/cockpit/blobs/sha256:3a9ba673192ff666c7be242a4f3ecb44c284f78be561781555eaef831f6bb6c7                                                                                               
DEBU[0000] GET https://registry.fedoraproject.org/v2/f26/cockpit/blobs/sha256:3a9ba673192ff666c7be242a4f3ecb44c284f78be561781555eaef831f6bb6c7                                                                     
DEBU[0001] Detected compression format gzip                                                              
 0 B / 78.92 MB [--------------------------------------------------------------]DEBU[0001] Using original blob without modification                                                                                
DEBU[0001] Sending as tar file sha256:3a9ba673192ff666c7be242a4f3ecb44c284f78be561781555eaef831f6bb6c7   
 78.92 MB / 78.92 MB [=====================================================] 51s                         
Copying blob sha256:297d98ccfdffc3a3a6e21b3af6a659f5e7199ad0e5d2336ba52bb0d12c6dd44a                     
DEBU[0053] Downloading /v2/f26/cockpit/blobs/sha256:297d98ccfdffc3a3a6e21b3af6a659f5e7199ad0e5d2336ba52bb0d12c6dd44a                                                                                               
DEBU[0053] GET https://registry.fedoraproject.org/v2/f26/cockpit/blobs/sha256:297d98ccfdffc3a3a6e21b3af6a659f5e7199ad0e5d2336ba52bb0d12c6dd44a                                                                     
DEBU[0055] Detected compression format gzip                                                              
 0 B / 132.25 MB [-------------------------------------------------------------]DEBU[0055] Using original blob without modification                                                                                
DEBU[0055] Sending as tar file sha256:297d98ccfdffc3a3a6e21b3af6a659f5e7199ad0e5d2336ba52bb0d12c6dd44a   
 132.25 MB / 132.25 MB [=================================================] 1m35s                         
Copying config sha256:d9e106a323d28cbd18b989acd2398c09b223d32c284c0cef3b894c40d386b9c0
DEBU[0150] No compression detected                      
 0 B / 3.71 KB [---------------------------------------------------------------]DEBU[0150] Using original blob without modification     
DEBU[0150] Sending as tar file sha256:d9e106a323d28cbd18b989acd2398c09b223d32c284c0cef3b894c40d386b9c0 
 3.71 KB / 3.71 KB [========================================================] 0s
Writing manifest to image destination
DEBU[0150] Sending as tar file manifest.json            
Storing signatures
DEBU[0150] docker-daemon: Closing tar stream            
DEBU[0150] docker-daemon: Waiting for status            
DEBU[0160] docker-daemon: sending done, status <nil>    


# cat /etc/containers/registries.conf                                        
# This is a system-wide configuration file used to                                                                                                                                                                 
# keep track of registries for various container backends.                                                                                                                                                         
# It adheres to TOML format and does not support recursive
# lists of registries.                                                                                                                                                                                             
                                                                                                         
# The default location for this configuration file is /etc/containers/registries.conf.                   
                                                                                                         
# The only valid categories are: 'registries.search', 'registries.insecure',                                                                                                                                       
# and 'registries.block'.                                                                                                                                                                                          
                                                                                                     
[registries.search]                                                                                                                                                                                                
registries = ['docker.io', 'registry.fedoraproject.org', 'registry.access.redhat.com']                   
                                                                                                         
# If you need to access insecure registries, add the registry's fully-qualified name.
# An insecure registry is one that does not have a valid SSL certificate or only does HTTP.
[registries.insecure]
registries = []


# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
#
# Docker only
[registries.block]
registries = []





+++ This bug was initially created as a clone of Bug #1518857 +++

Description of problem:
atomic pull is unable to find images by shortname from registry.access.redhat.com.  Short name works for docker.io registry.

Version-Release number of selected component (if applicable):
[cloud-user@rhelah ~]$ sudo rpm -qa atomic
atomic-1.20.1-3.git840732d.el7.x86_64


How reproducible:
Always

Steps to Reproduce:
1. atomic pull rhel7/cockpit-ws

Actual results:
Unable to find rhel7/cockpit-ws

Expected results:
Successful pull of cockpit container from redhat registry

Additional info:
[cloud-user@rhelah ~]$ sudo atomic --debug pull rhel7/cockpit-ws
Namespace(_class=<class 'Atomic.pull.Pull'>, assumeyes=False, debug=True, func='pull_image', ignore=False, image='rhel7/cockpit-ws', profile=False, reg_type=None, src_creds=None, storage=None)
Unable to find rhel7/cockpit-ws
Traceback (most recent call last):
  File "/bin/atomic", line 185, in <module>
    sys.exit(_func())
  File "/usr/lib/python2.7/site-packages/Atomic/pull.py", line 54, in pull_image
    remote_image_obj = be.make_remote_image(self.args.image)
  File "/usr/lib/python2.7/site-packages/Atomic/backends/_docker.py", line 270, in make_remote_image
    img_obj = self._make_remote_image(image)
  File "/usr/lib/python2.7/site-packages/Atomic/backends/_docker.py", line 275, in _make_remote_image
    return self._make_image(image, None, remote=True)
  File "/usr/lib/python2.7/site-packages/Atomic/backends/_docker.py", line 180, in _make_image
    img_obj = Image(image, remote=remote)
  File "/usr/lib/python2.7/site-packages/Atomic/objects/image.py", line 54, in __init__
    self._instantiate()
  File "/usr/lib/python2.7/site-packages/Atomic/objects/image.py", line 81, in _instantiate
    self._setup_common()
  File "/usr/lib/python2.7/site-packages/Atomic/objects/image.py", line 89, in _setup_common
    self.registry, self.repo, self.image, self.tag, self.digest = Decompose(self.fq_name).all
  File "/usr/lib/python2.7/site-packages/Atomic/objects/image.py", line 127, in fq_name
    self._fq_name = ri.find_image_on_registry(quiet=True)
  File "/usr/lib/python2.7/site-packages/Atomic/discovery.py", line 96, in find_image_on_registry
    raise RegistryInspectError("Unable to find {}".format(self.orig_input))
[cloud-user@rhelah ~]$ sudo atomic pull registry.access.redhat.com/rhel7/cockpit-ws
Pulling registry.access.redhat.com/rhel7/cockpit-ws:latest ...
Copying blob sha256:76b0264c130a031b05e695bf175147575b93271c9c838408ba63daaa7de934e9
 71.39 MB / ? [------------------------------------=----------------------] 18s 
Copying blob sha256:26dc84c55415d3296f5faef853d2ff7a5da199b6fd26ba0f942da7285ee7e88d
 1.21 KB / ? [=------------------------------------------------------------] 0s 
Copying blob sha256:efab21e2dc5212eb31353fae61163ab5c49217cc22eb43f30dff53f181542844
 5.68 MB / ? [--------------------------------------------------=----------] 1s 
Copying config sha256:05b111552fb3303741f6893add30443a5091f1640ba08bb26714e656436a8159
 6.23 KB / 6.23 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures
[cloud-user@rhelah ~]$ sudo atomic images list
   REPOSITORY                                    TAG      IMAGE ID       CREATED            VIRTUAL SIZE   TYPE      
   registry.access.redhat.com/rhel7/cockpit-ws   latest   05b111552fb3   2017-10-12 09:34   213.17 MB      docker    
[cloud-user@rhelah ~]$ sudo atomic pull busybox
Pulling docker.io/library/busybox:latest ...
Copying blob sha256:0ffadd58f2a61468f527cc4f0fc45272ee4a1a428abe014546c89de2aa6a0eb5
 698.53 KB / 698.53 KB [====================================================] 0s
Copying config sha256:6ad733544a6317992a6fac4eb19fe1df577d4dec7529efec28a5bd0edad0fd30
 1.46 KB / 1.46 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures
[cloud-user@rhelah ~]$ sudo atomic images list
   REPOSITORY                                    TAG      IMAGE ID       CREATED            VIRTUAL SIZE   TYPE      
   docker.io/busybox                             latest   6ad733544a63   2017-11-03 22:39   1.13 MB        docker    
   registry.access.redhat.com/rhel7/cockpit-ws   latest   05b111552fb3   2017-10-12 09:34   213.17 MB      docker    

[cloud-user@rhelah ~]$ cat /etc/containers/registries.conf 
# This is a system-wide configuration file used to
# keep track of registries for various container backends.
# It adheres to TOML format and does not support recursive
# lists of registries.

# The default location for this configuration file is /etc/containers/registries.conf.

# The only valid categories are: 'registries.search', 'registries.insecure', 
# and 'registries.block'.

[registries.search]
registries = ['registry.access.redhat.com']

# If you need to access insecure registries, add the registry's fully-qualified name.
# An insecure registry is one that does not have a valid SSL certificate or only does HTTP.
[registries.insecure]
registries = []


# If you need to block pull access from a registry, uncomment the section below
# and add the registries fully-qualified name.
#
# Docker only
[registries.block]
registries = []


[cloud-user@rhelah ~]$ sudo rpm-ostree status
State: idle
Deployments:
● rhel-atomic-host-ostree:rhel-atomic-host/7/x86_64/standard
                   Version: 7.4.3 (2017-11-28 16:49:56)
                    Commit: 13fe9e86d640fd257afe831e4b33ad1eb6183d7de2a550dc7397a7b4b1f6ef25
              GPGSignature: Valid signature by 567E347AD0044ADE55BA8A5F199E2F91FD431D51

--- Additional comment from Red Hat Bugzilla Rules Engine on 2017-11-29 11:23:39 EST ---

Since this bug report was entered in Red Hat Bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release.

Comment 1 Brent Baude 2017-11-29 19:29:00 UTC
upstream PR -> https://github.com/projectatomic/atomic/pull/1137

Comment 2 Fedora Update System 2017-11-30 16:01:27 UTC
atomic-1.20.1-6.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2017-9cf637087e

Comment 3 Fedora Update System 2017-11-30 16:01:35 UTC
atomic-1.20.1-6.fc26 has been submitted as an update to Fedora 26. https://bodhi.fedoraproject.org/updates/FEDORA-2017-c5e99e3aaa

Comment 4 Fedora Update System 2017-12-09 22:27:07 UTC
atomic-1.20.1-6.fc26 has been pushed to the Fedora 26 stable repository. If problems still persist, please make note of it in this bug report.

Comment 5 Fedora Update System 2017-12-10 05:08:14 UTC
atomic-1.20.1-6.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report.

Comment 6 Alex Jia 2017-12-11 04:09:49 UTC
The atomic-1.20.1-6.fc27.x86_64 works well for me.


Note You need to log in before you can comment on or make changes to this bug.