Please check if the PR fulfills these requirements
[x] There is an open issue describing the problem that this pr intents to solve.
[x] You have a descriptive commit message with a short title (first line).
[x] Tests for the changes have been added (for bug fixes / features).
[ ] Docs have been added / updated (for bug fixes / features).
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Feature/bug fix
What is the current behavior?
The compilation process of Clojure sources isn't deterministic. Thus some compiled files end up generating new layers every time that they're built what prevents Vessel from leveraging layers accordingly.
What is the new behavior (if this is a feature change)?vessel.jib.containerizer now supports an extended cache mechanism that allows Vessel to inject known cached layers into the container being built.
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Yes. It is part of a wide redesign of Vessel, but will not be merged into the master branch for now.
Other information:
Improve significantly the design of vessel.jib.containerizer.
Now the function containerize returns a map with relevant information that can be used by callers to expose the qualified image reference and the digest of the container for users.
Improve tests of vessel.jib.containerizer and solve issues related to flakiness.
Please check if the PR fulfills these requirements
[x] There is an open issue describing the problem that this pr intents to solve.
[x] Tests for the changes have been added (for bug fixes / features).
[ ] Docs have been added / updated (for bug fixes / features).
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Feature/bug fix
What is the current behavior? The compilation process of Clojure sources isn't deterministic. Thus some compiled files end up generating new layers every time that they're built what prevents Vessel from leveraging layers accordingly.
What is the new behavior (if this is a feature change)?
vessel.jib.containerizer
now supports an extended cache mechanism that allows Vessel to inject known cached layers into the container being built.Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?) Yes. It is part of a wide redesign of Vessel, but will not be merged into the master branch for now.
Other information:
Improve significantly the design of
vessel.jib.containerizer
.Now the function
containerize
returns a map with relevant information that can be used by callers to expose the qualified image reference and the digest of the container for users.Improve tests of
vessel.jib.containerizer
and solve issues related to flakiness.