Project

Profile

Help

Story #2099

Updated by ipanova@redhat.com about 7 years ago

As a result of this story, Pulp Docker will support both schema versions, 1 and 2 for sync, publish and copy. 


 To support both schema 1 and 2 we need to: 
 1. during sync always make 2 requests to the registry and in each request set properly the headers. 
 2. as a result of 2 requests we will have to save to the DB manifest with both schemas. 
 3. change Tag model and add schema_version field and include it into the unit_key( having 2 instances of tags will facilitate copy operation) 
 4. likely change the Manifest model to include a schema, and any other appropriate changes 
 5. make sure copy operation works with above changes related to Tag model. 
 5. 6. write a migration for Tag model change, also write a migration to drop old index change 
 6. 7. in manifest schema 2 there is a config array that contains a config blob, which is treated as regular layer. In order to have a runable docker image config layer should also be present. That means that we would need to download it and store in the DB( as a regular blob layer). DB. That means that most likely we would need to change Manifest model and add a config layer blob field to it. No That means - another migration needs to should be written for this field 
 7. 8. change the schema of the crane metadata file to have two manifest lists: one for schema 1, and one for schema 2 
 8. 9. change publish to create the new crane metadata file, also change publish directory structure for manifests file 

 Note: 
 this work will not enable support for manifest list( aka fat manifest)

Back