Description
Today the c/storage composefs backend generates a composefs blob per layer and unions them via overlayfs.
In contrast in ostree, we always generate a single final flattened filesystem tree.
For any container image where we want to verify its integrity, I think it's just far simpler logistically to sign a single composefs digest of the flattened filesystem tree (xref composefs/composefs#294 ).
Even apart from signatures, I think it will probably just be more efficient to do things this way in most cases.
That said, we might investigate a hybrid approach where a layer chain that is referenced a large percentage of times is still split.
(Simple example: User runs 150 different microservice apps all using a canonical base image; if we flatten then we get 150x base image metadata cost; in the non-integrity case we could still dynamically union the two stacks w/overlayfs, with a composefs for each. But, taking this out to the integrity case gets messier)