Image prepare doesn't work with images hosted on quay.io

Bug #1799396 reported by Martin André
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Medium
Steve Baker

Bug Description

We noticed this in https://review.openstack.org/#/c/610682/ where some of the container images required for ocp 3.11 are hosted on quay.io. As a workaround, we've uploaded the images to the docker hub.

It appears that quay.io returns a manifest file that tripleo-common does not understand:

2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images [req-ebbda93f-4354-4a69-a24c-d1fa37859543 ad09fe24864045829335a512b286c1c6 5181b534959346c489978ec8d292f41f - default default] Error occurred while processing plan files.: KeyError: 'layers'
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images Traceback (most recent call last):
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tripleo_common/actions/container_images.py", line 136, in run
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images env, role_data, dry_run=True)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tripleo_common/image/kolla_builder.py", line 208, in container_images_prepare_multi
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images modify_only_with_labels=modify_only_with_labels,
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tripleo_common/image/kolla_builder.py", line 313, in container_images_prepare
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images images, modify_only_with_labels)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tripleo_common/image/image_uploader.py", line 526, in filter_images_with_labels
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images url, insecure=insecure, session=session)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tripleo_common/image/image_uploader.py", line 302, in _image_labels
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images i = BaseImageUploader._inspect(image_url, insecure, session)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tenacity/__init__.py", line 241, in wrapped_f
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images return self.call(f, *args, **kw)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tenacity/__init__.py", line 330, in call
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images start_time=start_time)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tenacity/__init__.py", line 279, in iter
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images return fut.result()
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/concurrent/futures/_base.py", line 422, in result
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images return self.__get_result()
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tenacity/__init__.py", line 333, in call
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images result = fn(*args, **kwargs)
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images File "/usr/lib/python2.7/site-packages/tripleo_common/image/image_uploader.py", line 406, in _inspect
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images layers = [l['digest'] for l in manifest['layers']]
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images KeyError: 'layers'
2018-10-16 07:59:02.865 8 ERROR tripleo_common.actions.container_images

http://logs.openstack.org/82/610682/1/check/tripleo-ci-centos-7-scenario009-multinode-oooq/e2326ae/logs/undercloud/var/log/containers/mistral/executor.log.txt.gz#_2018-10-16_07_59_02_865

Changed in tripleo:
status: New → Triaged
milestone: none → stein-1
Revision history for this message
Steve Baker (steve-stevebaker) wrote :

Can you point me at the quay.io image path? I can't find any in that patch series.

Revision history for this message
Steve Baker (steve-stevebaker) wrote :

Oh, it has schema version 1 manifests, how retro ;)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-common (master)

Fix proposed to branch: master
Review: https://review.openstack.org/612882

Changed in tripleo:
assignee: nobody → Steve Baker (steve-stevebaker)
status: Triaged → In Progress
Changed in tripleo:
assignee: Steve Baker (steve-stevebaker) → Emilien Macchi (emilienm)
Changed in tripleo:
milestone: stein-1 → stein-2
Changed in tripleo:
assignee: Emilien Macchi (emilienm) → Steve Baker (steve-stevebaker)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-common (master)

Reviewed: https://review.openstack.org/612882
Committed: https://git.openstack.org/cgit/openstack/tripleo-common/commit/?id=f5ce5d7123185c99b81eea9196ad25ff8c913e47
Submitter: Zuul
Branch: master

commit f5ce5d7123185c99b81eea9196ad25ff8c913e47
Author: Steve Baker <email address hidden>
Date: Wed Oct 24 17:53:06 2018 +1300

    Support v1 container image manifests

    This is needed to support inspecting images served by quay.io.
    Apparently this old manifest version is the only one supported by
    quay.io.

    This is required for tripleo-openshift, as some images are hosted on
    quay.io.

    Change-Id: I4c64848c7eb21cd4370c9be72cea842863513c01
    Closes-Bug: #1799396

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-common 10.2.0

This issue was fixed in the openstack/tripleo-common 10.2.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.