sylabs / oci-tools

Go module for working with OCI container images.
Apache License 2.0
2 stars 3 forks source link

feat: OverlayFS -> AUFS whiteout conversion #55

Closed dtrudg closed 4 months ago

dtrudg commented 4 months ago

Allow OverlayFS whiteouts to be converted to AUFS, by filtering a tar stream.

In this direction the conversion is a single pass, single operation. There is no requirement to pre-scan the tar.

Close https://github.com/sylabs/oci-tools/issues/53

dtrudg commented 4 months ago

LGTM. Just one observation, the round trip exposes that some of the TAR entries end up getting Cleaned, while others do not. I'm not aware of any specific issue this causes, but thought I'd raise it just in case you can think of any?

Right - they are equivalent, but yeah.. it would be nicer for comparison purposes if the ./ is preserved. Let me look at that.

dtrudg commented 4 months ago

@tri-adam - please take a look at 580119f

09:36 am $ gunzip -c test/images/aufs-docker-v2-manifest/blobs/sha256/da55812559dec81445c289c3832cee4a2f725b15aeb258791640185c3126b2bf | tar tf -
./
./dir/
./dir/.wh..wh..opq
./.wh.file

09:36 am $ tar tf pkg/mutate/testdata/Test_WhiteoutRoundTrip/overlayfs.golden 
./
./dir/
./file

09:36 am $ tar tf pkg/mutate/testdata/Test_WhiteoutRoundTrip/aufs.golden 
./
./dir/
./dir/.wh..wh..opq
./.wh.file