Currently, deletes of content in the registry are allowed with administration privileges. This means layers and manifests can be deleted, with extreme prejudice. This meets most use cases where the goal is to remove old or unused layers. Unfortunately, this allows for one to corrupt a manifests by deleting dependent data. This is insufficient for integration into the docker client.
The registry API allows deletion of registry objects under various scenarios. The initial intent of the new registry implementation was to have deletes be integrated from the start. With the current state of the manifest specification, deletes were challenging to implement or impossible to implement reliably. Changes are occurring to address this in #62.
There are several aspects to this problem:
- Most registry data has interdependencies that are expressed internally but they are expensive to resolve while underlying data is changing.
- Deletes under eventual consistency results in odd scenarios that wouldn't be present in a transactional system. This fact needs to be considered.
We need to propose a solution that can allow for all proposed deletes in a reliable and safe manner.
Currently, deletes of content in the registry are allowed with administration privileges. This means layers and manifests can be deleted, with extreme prejudice. This meets most use cases where the goal is to remove old or unused layers. Unfortunately, this allows for one to corrupt a manifests by deleting dependent data. This is insufficient for integration into the docker client.
The registry API allows deletion of registry objects under various scenarios. The initial intent of the new registry implementation was to have deletes be integrated from the start. With the current state of the manifest specification, deletes were challenging to implement or impossible to implement reliably. Changes are occurring to address this in #62.
There are several aspects to this problem:
We need to propose a solution that can allow for all proposed deletes in a reliable and safe manner.