Bug 1394313 - Associating docker tag with incorrect docker manifest.
Summary: Associating docker tag with incorrect docker manifest.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Container Management
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: Unspecified
Assignee: Tom McKay
QA Contact: jcallaha
URL:
Whiteboard:
Depends On: 1399294
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-11-11 16:55 UTC by Tom McKay
Modified: 2020-01-17 16:09 UTC (History)
6 users (show)

Fixed In Version: rubygem-katello-3.0.0.90-1
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-12-19 08:18:00 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 17317 0 None None None 2016-11-11 16:55:14 UTC
Red Hat Product Errata RHBA-2016:2958 0 normal SHIPPED_LIVE Satellite 6.2.6 Async Bug Release 2016-12-19 13:17:24 UTC

Description Tom McKay 2016-11-11 16:55:12 UTC
When a manifest changes for a tag and the repo is synced, existing tag relations incorrectly point to this new manifest. 

To reproduce:
+ start a local registry (thomasmckay-desktop.usersys.redhat.com:5000 in this example)
docker run  --rm -it -p 5000:5000 registry:2

+ create dockerfiles
v1/Dockerfile 
FROM registry.access.redhat.com/rhel7/rhel
RUN echo "Here we go, vertigo" > sounds.txt
ENTRYPOINT ["cat", "sounds.txt"]

v2/Dockerfile 
FROM katello.example.com:5000/examplecorp-production-test-for-echo-test-for-echo-test-for-echo:v1
RUN echo "Video vertigo" >> sounds.txt
RUN echo "Test for echo" >> sounds.txt
ENTRYPOINT ["cat", "sounds.txt"]

+ build v1 and push to local registry
docker build --tag thomasmckay-desktop.usersys.redhat.com:5000/thomasmckay/test-for-echo:v1 v1
docker push thomasmckay-desktop.usersys.redhat.com:5000/thomasmckay/test-for-echo

+ create docker repo test-for-echo and sync thomasmckay-desktop.usersys.redhat.com:5000/thomasmckay/test-for-echo
note 1 tag, 1 manifest

+ create content view w/ this repo

+ publish cv and promote to lifecycle env

+ visit docker tags page and note environments present

+ build v2 image, push, and resync repo
docker build --tag thomasmckay-desktop.usersys.redhat.com:5000/thomasmckay/test-for-echo:v2 v2

+ re-publish cv
note 2 tags, 2 manifests
note docker tags page correct

+ tag v2 as v1, push to local registry, resync repo, publish cv
docker tag b80dafd4d227 thomasmckay-desktop.usersys.redhat.com:5000/thomasmckay/test-for-echo:v1
docker push thomasmckay-desktop.usersys.redhat.com:5000/thomasmckay/test-for-echo
note 2 tags, 3 manifests
note docker tags page for v1 shows it in Library, Default Organization View, and Production (my lifecycle env)

From the UI there is no way to tell that these are different images for the same tag:
Library and Default Organzation View = new v1
Production = original v1

There should be 3 tags in katello, with the 2 v1 tags pointing to separate manifests.

This makes it impossible to use katello as a way to manage images.

Comment 1 Tom McKay 2016-11-11 16:55:16 UTC
Created from redmine issue http://projects.theforeman.org/issues/17317

Comment 3 Bryan Kearney 2016-11-15 21:15:05 UTC
Upstream bug assigned to tomckay

Comment 4 Bryan Kearney 2016-11-15 21:15:09 UTC
Upstream bug assigned to tomckay

Comment 5 Mike McCune 2016-12-07 17:53:42 UTC
To fix this bug we also need:

https://bugzilla.redhat.com/show_bug.cgi?id=1399294

Comment 6 Bryan Kearney 2016-12-08 03:14:59 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue http://projects.theforeman.org/issues/17317 has been resolved.

Comment 7 jcallaha 2016-12-13 19:59:54 UTC
Verified in Satellite 6.2.5

Followed the steps provided by Thom, see below. Since the UI changes are not currently available in 6.2, I settle for the content management aspect. As a result, the tags were appropriately managed with the correct images, as can been seen in the very last command below.


-bash-4.2# docker build -t localhost:5001/jake/test-echo:v1 v1
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM registry.access.redhat.com/rhel7/rhel
 ---> e8e3aaf82af5
Step 2 : RUN echo "Here we go, vertigo" > sounds.txt
 ---> Using cache
 ---> 69a09fe07e87
Step 3 : ENTRYPOINT cat sounds.txt
 ---> Using cache
 ---> d76686991123
Successfully built d76686991123

-bash-4.2# docker push localhost:5001/jake/test-echo:v1
The push refers to a repository [localhost:5001/jake/test-echo]
be855e8379f7: Pushed 
65dfb1d31a1e: Pushed 
b452c96f0223: Pushed 
v1: digest: sha256:f61236fcc4b258a569b0a94f22932494000995c9ab54a2375b99cb748d5389a8 size: 922

-bash-4.2# docker build -t localhost:5001/jake/test-echo:v2 v2
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1:v1
Trying to pull repository sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1 ... 
v1: Pulling from sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1
f9ab7164e76a: Already exists 
d77ab047cab8: Already exists 
a2a12934dfa5: Already exists 
Digest: sha256:aafcd7f4ec25f06421fa89e0205de60fa70494c449814e12499c268aa9873bde
Status: Downloaded newer image for sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1:v1
 ---> d76686991123
Step 2 : RUN echo "Video vertigo" >> sounds.txt
 ---> Running in 2a9e08dbf952
 ---> 06999b3e9632
Removing intermediate container 2a9e08dbf952
Step 3 : RUN echo "Test for echo" >> sounds.txt
 ---> Running in 7aa2d5fba4d7
 ---> cd2f3ae6777a
Removing intermediate container 7aa2d5fba4d7
Step 4 : ENTRYPOINT cat sounds.txt
 ---> Running in 3825d820f9fa
 ---> 13b55658e5d1
Removing intermediate container 3825d820f9fa
Successfully built 13b55658e5d1

-bash-4.2# docker push localhost:5001/jake/test-echo:v2
The push refers to a repository [localhost:5001/jake/test-echo]
18bc6d8be7cd: Pushed 
2159fb87027c: Pushed 
be855e8379f7: Layer already exists 
65dfb1d31a1e: Layer already exists 
b452c96f0223: Layer already exists 
v2: digest: sha256:9c4c60046c332d8f9d0f43105aed2858567af532d18de1731f10c94c352dfaa2 size: 1336

-bash-4.2# docker images
REPOSITORY                                                                   TAG                 IMAGE ID            CREATED             SIZE
localhost:5001/jake/test-echo                                                v2                  13b55658e5d1        20 minutes ago      192.5 MB
localhost:5001/jake/test-echo                                                v1                  d76686991123        4 hours ago         192.5 MB
sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1   v1                  d76686991123        4 hours ago         192.5 MB

-bash-4.2# docker tag 13b55658e5d1 localhost:5001/jake/test-echo:v1

-bash-4.2# docker push localhost:5001/jake/test-echo:v1
The push refers to a repository [localhost:5001/jake/test-echo]
18bc6d8be7cd: Layer already exists 
2159fb87027c: Layer already exists 
be855e8379f7: Layer already exists 
65dfb1d31a1e: Layer already exists 
b452c96f0223: Layer already exists 
v1: digest: sha256:9c4c60046c332d8f9d0f43105aed2858567af532d18de1731f10c94c352dfaa2 size: 1336

-bash-4.2# docker images
REPOSITORY                                                                   TAG                 IMAGE ID            CREATED             SIZE
localhost:5001/jake/test-echo                                                v1                  13b55658e5d1        24 minutes ago      192.5 MB
localhost:5001/jake/test-echo                                                v2                  13b55658e5d1        24 minutes ago      192.5 MB
sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1   v1                  d76686991123        4 hours ago         192.5 MB

-bash-4.2# docker pull sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1:v1
Trying to pull repository sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1 ... 
v1: Pulling from sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1
f9ab7164e76a: Already exists 
d77ab047cab8: Already exists 
a2a12934dfa5: Already exists 
fdc0e91d4655: Already exists 
2ab88ba9ba09: Already exists 
Digest: sha256:df0b445cf7a6cac61cbd2a53f496d01bee8817f652d01ab27060f9a2f8813a75
Status: Downloaded newer image for sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1:v1

-bash-4.2# docker pull sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1:v2
Trying to pull repository sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1 ... 
v2: Pulling from sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1
f9ab7164e76a: Already exists 
d77ab047cab8: Already exists 
a2a12934dfa5: Already exists 
fdc0e91d4655: Already exists 
2ab88ba9ba09: Already exists 
Digest: sha256:88cf9653223182f4dba1b5d7cb8e1118ac80e07cf74a2cefafa2f3f3c8eafece
Status: Downloaded newer image for sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1:v2

-bash-4.2# docker images
REPOSITORY                                                                   TAG                 IMAGE ID            CREATED             SIZE
localhost:5001/jake/test-echo                                                v1                  13b55658e5d1        28 minutes ago      192.5 MB
localhost:5001/jake/test-echo                                                v2                  13b55658e5d1        28 minutes ago      192.5 MB
sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1   v1                  13b55658e5d1        28 minutes ago      192.5 MB
sat-qe-1.rhq.lab.eng.bos.redhat.com:5000/default_organization-docker-test1   v2                  13b55658e5d1        28 minutes ago      192.5 MB

Comment 9 errata-xmlrpc 2016-12-19 08:18:00 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2016:2958


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