Project

Profile

Help

Story #2384

As a user I can sync manifest lists

Added by ipanova@redhat.com over 3 years ago. Updated 11 months ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

100%

Platform Release:
2.14.0
Blocks Release:
Target Release - Docker:
Backwards Incompatible:
No
Groomed:
Yes
Sprint Candidate:
Yes
Tags:
Pulp 2
QA Contact:
Complexity:
Smash Test:
Verified:
Yes
Verification Required:
Yes
Sprint:
Sprint 22

Description

As a result of this story, Pulp Docker will support manifests lists for sync, publish and copy.

https://docs.docker.com/registry/spec/manifest-v2-2/#manifest-list

To support manifest lists we need to:
1. Manifest list will be a new content type, so a Manifest list model should be defined.
2. During sync always make 3 requests to the registry and in each request set properly the headers( We would need to make 3 requests to support schema 1, schema2 and manifest lists)
- some parts of sync logic should be changed so it would correctly process manifest list and its image manifests
- also some changes would be needed to be done to the copy operation, so it would properly copy referenced image manifests in the list
- also some changes would need to be in the tagging of the manifest, so it would tag properly the manifest list and respect the fact that the tag is unique per repo
3. As a result of 3rd request we will have to save to the DB manifest list
4. Update Tag model, so it would be aware that it references a manifest list. Based on changes, write a migration.
5. Update apache config to set headers for published manifest list directory to reflect the correct Content-Type, similar to existing behavior with schema 1 vs 2
6. Change publish dir structure, so it would add a directory for manifest lists
7. Change the schema of the crane metadata file to add manifest lists
8. Change publish to create the new crane metadata file
9. Release notes and user docs
10. update crane metadata file docs


Subtasks

Crane - Story #2385: Update crane to serve manifest listsCLOSED - CURRENTRELEASEipanova@redhat.com

Actions

Related issues

Blocked by Docker Support - Story #2099: As a user, I can sync v2 schema manifests CLOSED - CURRENTRELEASE Actions
Copied to Docker Support - Story #2766: As a user I can sync and publish manifest lists CLOSED - WONTFIX Actions

Associated revisions

History

#1 Updated by ipanova@redhat.com over 3 years ago

  • Blocked by Story #2099: As a user, I can sync v2 schema manifests added

#2 Updated by ipanova@redhat.com over 3 years ago

  • Description updated (diff)

#3 Updated by ipanova@redhat.com over 3 years ago

I made it blocked by #2099 because of changes needed to be in Tag model

#4 Updated by mhrivnak over 3 years ago

  • Tracker changed from Issue to Story
  • % Done set to 0

#5 Updated by mhrivnak almost 3 years ago

  • Copied to Story #2766: As a user I can sync and publish manifest lists added

#6 Updated by ipanova@redhat.com over 2 years ago

  • Description updated (diff)

#7 Updated by ipanova@redhat.com over 2 years ago

  • Description updated (diff)

#8 Updated by mhrivnak over 2 years ago

  • Description updated (diff)

#9 Updated by bmbouter over 2 years ago

I'm not very familiar with this, but this issue reads like it has all the right parts. +1 to grooming.

#10 Updated by mhrivnak over 2 years ago

  • Sprint/Milestone set to 40
  • Groomed changed from No to Yes
  • Sprint Candidate changed from No to Yes

#11 Updated by ipanova@redhat.com over 2 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to ipanova@redhat.com

#12 Updated by mhrivnak over 2 years ago

  • Sprint/Milestone changed from 40 to 41

#13 Updated by ipanova@redhat.com over 2 years ago

  • Status changed from ASSIGNED to POST

#14 Updated by ipanova@redhat.com over 2 years ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100

#15 Updated by ipanova@redhat.com over 2 years ago

  • Verification Required changed from No to Yes

#16 Updated by pcreech over 2 years ago

  • Platform Release set to 2.14.0

#17 Updated by pcreech over 2 years ago

  • Status changed from MODIFIED to ON_QA

#18 Updated by Ichimonji10 over 2 years ago

  • Verified changed from No to Yes

There are now automated tests for syncing and publishing Docker manifest lists. The most relevant changes are:

In addition, I've performed some manual testing. The manual testing was as simple as installing Docker, starting the Docker daemon, and executing docker pull localhost:5000/{repo_id} for several different repositories.

#19 Updated by Ichimonji10 over 2 years ago

  • Smash Test set to 713

#20 Updated by pcreech over 2 years ago

  • Status changed from ON_QA to CLOSED - CURRENTRELEASE

#21 Updated by bmbouter almost 2 years ago

  • Sprint set to Sprint 22

#22 Updated by bmbouter almost 2 years ago

  • Sprint/Milestone deleted (41)

#23 Updated by bmbouter 11 months ago

  • Tags Pulp 2 added

Please register to edit this issue

Also available in: Atom PDF