This refactors DefaultPackage into types.Package and gets rid of the
interface. This is a preceeding for a follow up where accessors will be
removed from the code.
It also does several cleanup, so we get rid also of some unneeded
dependencies.
As those checks are not consuming any digest, we just use them to assess
if we need to build or not certain packages. The backend will refuse the
image if not configured appropriately
* [WIP] Unpack local docker images
* unpack local image
* PR feedback + missing new function call
Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
This commit is multi-fold as it also refactors internally context and logger
as interfaces so it is easier to plug luet as a library externally.
Introduces a garbage collector (related to #227) but doesn't handle yet
parallelism.
Closes#265
Enhance package upgrade ordering during swap taking into accounts of files
shipped by packages.
This change also introduce a new method for clients to get the
underlying cache data, thus consuming it in installer to fix progressbar display
When depending on those package otherwise we try to compile the full
tree instead of reconstrucing the image which is result of a join while
keeping the revdep tree invariate
tarball.LayerFromReader slurps the whole src in memory. The payoff is
that we might read the file multiple time as internally it's called
multiple times.
Add --push-final-images, --push-final-images-repository and
--push-final-images-force to luet build.
--push-final-images enables pushing final artifact during build. Each
package built will be packed and pushed to the final repository
specified with --push-final-images-repository. By default if no
final-repository is specified and pushing final images is enabled will
default to the cache repository.
--push-final-images-force allows to force-push final images even if
there are already available on the specified registry
Add api call which uses go-container registry to create OCI images from
standard tar archives.
Consume new API when generating final images instead of docker building them
and adapts/add tests as necessary.
This change now allows to carry over xattrs to final images.
Fixes#266
* report plugin state if succeed
We havbe a state field in the plugin response that its not being used
for anything. This patch makes luet print the state reported from the
plugin if its not empty as a way for plugins to report data on success
to users. If the field is empty it will be ignored.
Signed-off-by: Itxaka <igarcia@suse.com>
* Print plugin path
This patch adds the plugin location to the printed plugin list for a
more rich view of the loaded plugins
Signed-off-by: Itxaka <igarcia@suse.com>
The path contains an ending "/" which wouldn't match when we walk dst as
it's not there.
That had the unpleasant effect of creating empty folders in the
destinations
When we have huge file lists we can burst too much into RAM which would
cause OOMs in certain devices. Use instead a smart cache which
automatically drops to disk when necessary.
Currently we are setting the error message in a no-space full sentence
which is pretty ugly:
| FATA[0000] Pluginluet-cosignat/usr/local/bin/luet-cosignErrorerror while executing plugin: exit status 1
Signed-off-by: Itxaka <igarcia@suse.com>