Support OCI Image Layers Deltas in Image-Serve Local Registry
The local registry that TripleO provides for installation on underclouds is here to stay for at least the life time of the long-time releases of downstream products based on TripleO Queens and Train-Victoria, which is - years.
There is EDGE DCN architecture to be supported for that long period of time as well. For DCN, transferring images over the high-latency WAN during installation, scale-up, minor updates and major upgrades is time consuming and expensive. Especially when a security update or a minor version change for a package in the base layer, which invalidates all layers of all images, should be pushed from the central location to the EDGE, or synchronized there by using other image distribution approaches.
Supporting image layers deltas for OCI images is here to help. This feature requires support on both sides - the client that pulls images (podman pull CLI) and the image registry from which the clients pull images. Ensuring the latter for the supported ways of images distribution for overcloud nodes, like Quay, or Satellite, may be something hard to achieve and quite long to wait for.
Image-serve may be the most simple target for that improvement. It fetches image layers from the supported sources, like remote image registries, and then there is a (non-production use yet) option for overcloud nodes to use those images. In that scenario, image-serve, being normally placed on the undercloud, becomes a "proxy" registry.
The proposal is to make image-serve storing the fetched layers providing deltas, using the bsdiff, tar-patch tooling and zstd compression format in the similar way how it is implemented in tar-diff [0] Go library. Then there would be no changes required to the remote sources of images, but only to image-serve "proxy" and its clients (podman pull CLI).
That should drastically improve the users experience with Day-2 operations for EDGE and large scale environments.
Blueprint information
- Status:
- Not started
- Approver:
- Alex Schultz
- Priority:
- Undefined
- Drafter:
- Bogdan Dobrelya
- Direction:
- Needs approval
- Assignee:
- Bogdan Dobrelya
- Definition:
- Drafting
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Add support for OCI layers deltas in Image-Serve