Bug 1578188 - [Satellite 6] Satellite 6.3/6.2.x no longer upload docker image
Summary: [Satellite 6] Satellite 6.3/6.2.x no longer upload docker image
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Container Management - Content
Version: 6.3.1
Hardware: All
OS: Linux
unspecified
high
Target Milestone: Unspecified
Assignee: Tom McKay
QA Contact: Lucie Vrtelova
URL:
Whiteboard:
Depends On:
Blocks: 1582318
TreeView+ depends on / blocked
 
Reported: 2018-05-15 01:01 UTC by jalviso
Modified: 2020-01-15 20:30 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-01-15 20:30:43 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1582318 0 unspecified CLOSED Unable to upload saved image to docker repository 2021-04-06 17:49:16 UTC

Internal Links: 1582318 1676367

Description jalviso 2018-05-15 01:01:39 UTC
Description of problem:

"Bug 1313502" should NOT be an RFE but is a regression bug (the reason why we open this bugzilla). Docker image upload can previously be done in Sat6.0 / Sat6.1. Per YouTube video link, it is possible to upload docker image in Sat6.0/6.1

      https://youtu.be/iRXEssalziI?t=402

at around the 7 minute , it is possible to do a docker save and a hammer upload.
But tested in Sat6.2.14 and Sat6.3/6.3.1, it is no longer working (customer is at Sat6.3.1)

Version-Release number of selected component (if applicable): 6.3

How reproducible: Always

1) Satellite GUI > Content > Product >
Create Product "containers"
Create Repositories "rhel" 
Content Type "docker" 
Registry url "https://registry.access.redhat.com"
Sync Now

2) Content > Docker Tag > rhel:latest > LifeCycle Environment > Publish At > Copy "my.satellite.com:5000/redhat-dev-containers-containers-rhel:latest"

3) In host
# docker pull my.satellite.com:5000/redhat-dev-containers-containers-rhel:latest
# docker images
# docker run --name my_rhel -it my.satellite.com:5000/redhat-dev-containers-containers-rhel /bin/bash
# docker container attach my_rhel
# yum install httpd
# exit
# docker save -o my_httpd_rhel.tar my.satellite.com:5000/redhat-dev-containers-containers-rhel:latest

Now upload the custom image "my_httpd_rhel.tar" using hammer CLI.

Actual results:

# hammer repository upload-content --product 'containers' --organization 'REDHAT' --name 'rhel-custom' --path /root/my_httpd_rhel.tar
Failed to upload file '' to repository. Please check the file and try again.
Could not upload the content:
  Error: repository not found
 
If I create repository 'rhel-custom' in Satellite and try to upload, it gives error:

# hammer repository upload-content --product 'containers' --organization 'REDHAT' --name 'rhel-custom' --path /root/my_httpd_rhel.tar
Failed to upload file 'my_httpd_rhel.tar' to repository. Please check the file and try again

Expected results:

"my_httpd_rhel.tar" should be uploaded in product "containers" as content type "docker" and should list tags successfully.

More info:

The docker image upload task failed with the following exception:
-------------
 traceback: |
    Traceback (most recent call last):
      File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
        R = retval = fun(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 527, in __call__
        return super(Task, self).__call__(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/pulp/server/async/tasks.py", line 107, in __call__
        return super(PulpTask, self).__call__(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 438, in __protected_call__
        return self.run(*args, **kwargs)
      File "/usr/lib/python2.7/site-packages/pulp/server/managers/content/upload.py", line 223, in import_uploaded_unit
        unit_type=unit_type_id, summary=result['summary'], details=result['details']
    PulpCodedException: The importer docker_importer indicated a failed response when uploading docker_manifest unit to repository test_puppet-my_docker.
  spawned_tasks: []
  progress_report: {}
------------

The fail reason is katello passed the wrong unit type id("docker_manifest") to the pulp api. The "docker_image" unit type id should be used.

/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.4.5.58/app/lib/actions/katello/repository/import_upload.rb
-------------
sequence do
  concurrence do
    upload_ids.zip(unit_keys) do |upload_id, unit_key|
      import_upload = plan_action(Pulp::Repository::ImportUpload,
                                  pulp_id: repository.pulp_id,
                                  unit_type_id: repository.unit_type_id, <======== HERE
                                  unit_key: unit_key,
                                  upload_id: upload_id)
-------------

The "hammer repository upload-content" command run successfully after changing the unit_type_id to "docker_image". But the docker image unit doesn't show in the Satellite WEBUI. Only docker_manifest and docker_tag can be seen from the WEBUI.

Comment 2 Ina Panova 2018-05-16 16:50:45 UTC
@jalviso the video shows the upload of a v1 image.

from Sat 6.2 v2 registry is supported. By doing docker pull my.satellite.com:5000/redhat-dev-containers-containers-rhel:latest you are pulling a v2 image.
With introduction of v2 api the registry image is different from `docker save` format.
In order to be able to upload v2 content the output of skopeo copy command should be uploaded

What you see in GUI docker_manifest and docker_tag - both are related to v2 content concepts.

Comment 13 Bryan Kearney 2019-12-03 16:34:55 UTC
The Satellite Team is attempting to provide an accurate backlog of bugzilla requests which we feel will be resolved in the next few releases. We do not believe this bugzilla will meet that criteria, and have plans to close it out in 1 month. This is not a reflection on the validity of the request, but a reflection of the many priorities for the product. If you have any concerns about this, feel free to contact Red Hat Technical Support or your account team. If we do not hear from you, we will close this bug out. Thank you.

Comment 14 Bryan Kearney 2020-01-15 20:30:43 UTC
Thank you for your interest in Satellite 6. We have evaluated this request, and while we recognize that it is a valid request, we do not expect this to be implemented in the product in the foreseeable future. This is due to other priorities for the product, and not a reflection on the request itself. We are therefore closing this out as WONTFIX. If you have any concerns about this, please do not reopen. Instead, feel free to contact Red Hat Technical Support. Thank you.


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