fix(gzip)!: change the default block size#529
Conversation
b6a3fe4 to
bf39d9e
Compare
Codecov Report
@@ Coverage Diff @@
## main #529 +/- ##
=======================================
Coverage 13.34% 13.34%
=======================================
Files 40 40
Lines 5852 5852
=======================================
Hits 781 781
Misses 4943 4943
Partials 128 128
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
raharper
left a comment
There was a problem hiding this comment.
Suggestion in commit message:
A tar layer with the same content but compressed with different gzip blocksize
will result in different sha256sums in the final OCI Image. Ecosystem tools
have one current size in use and stacker's current size differ.
Interactions between a stacker-built OCI image and ecosystem tools
which recompress lower layers results in bloated registries which will have
identical tar content but different compressed sha256 blobs.
Unfortunately, the OCI image spec doesn't standardize/encode this in the
specification document. Hence, we change to the current common block size used
in the ecosystem here in the stacker implementation.
BREAKING CHANGE: the default gzip block size is changed to 256<<12, was previously 256<<10. A tar layer with the same content but compressed with different gzip blocksize will result in different sha256sums in the final OCI Image. Ecosystem tools have one current size in use and stacker's current size differ. Interactions between a stacker-built OCI image and ecosystem tools which recompress lower layers results in bloated registries which will have identical tar content but different compressed sha256 blobs. Unfortunately, the OCI image spec doesn't standardize/encode this in the specification document. Hence, we change to the current common block size used in the ecosystem here in the stacker implementation. We now link against our own fork: github.com/project-stacker/umoci which may change depending on the PR getting merged to upstream. Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
Updated. |
BREAKING CHANGE: the default gzip block size is changed to 256<<12, was previously 256<<10. A tar layer with the same content but compressed with different gzip blocksize will result in different sha256sums in the final OCI Image. Ecosystem tools have one current size in use and stacker's current size differ. Interactions between a stacker-built OCI image and ecosystem tools which recompress lower layers results in bloated registries which will have identical tar content but different compressed sha256 blobs. Unfortunately, the OCI image spec doesn't standardize/encode this in the specification document. Hence, we change to the current common block size used in the ecosystem here in the stacker implementation. We now link against our own fork: github.com/project-stacker/umoci which may change depending on the PR getting merged to upstream. Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com> (cherry picked from commit 0cf2d70) Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
BREAKING CHANGE: the default gzip block size is changed to 256<<12, was previously 256<<10. A tar layer with the same content but compressed with different gzip blocksize will result in different sha256sums in the final OCI Image. Ecosystem tools have one current size in use and stacker's current size differ. Interactions between a stacker-built OCI image and ecosystem tools which recompress lower layers results in bloated registries which will have identical tar content but different compressed sha256 blobs. Unfortunately, the OCI image spec doesn't standardize/encode this in the specification document. Hence, we change to the current common block size used in the ecosystem here in the stacker implementation. We now link against our own fork: github.com/project-stacker/umoci which may change depending on the PR getting merged to upstream. Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com> (cherry picked from commit 0cf2d70) Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
BREAKING CHANGE: the default gzip block size is changed to 256<<12, was previously 256<<10. A tar layer with the same content but compressed with different gzip blocksize will result in different sha256sums in the final OCI Image. Ecosystem tools have one current size in use and stacker's current size differ. Interactions between a stacker-built OCI image and ecosystem tools which recompress lower layers results in bloated registries which will have identical tar content but different compressed sha256 blobs. Unfortunately, the OCI image spec doesn't standardize/encode this in the specification document. Hence, we change to the current common block size used in the ecosystem here in the stacker implementation. We now link against our own fork: github.com/project-stacker/umoci which may change depending on the PR getting merged to upstream. (cherry picked from commit 0cf2d70) Signed-off-by: Ramkumar Chinchani <rchincha@cisco.com>
BREAKING CHANGE: the default gzip block size is changed to 256<<12, was previously 256<<10.
The layers created by ecosystem tools and stacker are different for the same tar content. Unfortunately, the OCI image spec doesn't standardize/encode this in the document. Hence, we standardize in the implementation.
We now link against our own fork: github.com/project-stacker/umoci which may change depending on the PR getting merged to upstream.
What type of PR is this?
Which issue does this PR fix:
What does this PR do / Why do we need it:
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:
Automation added to e2e:
Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.