Story #2384

Updated by mhrivnak over 5 years ago

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

 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 come 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 fat 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 proper headers( manifest list mediatype) 
 6. Change publish dir structure, so it would add a have directory for manifest lists 
 7.    Change the schema of the crane metadata file to add have manifest lists for fat manifest also 
 8. Change publish to create the new crane metadata file 
 9. Release notes and user docs 
 10. update crane metadata file docs