From: Henning Schild <henning.schild@siemens.com>
To: vijai kumar <vijaikumar.kanagarajan@gmail.com>
Cc: isar-users <isar-users@googlegroups.com>,
Baurzhan Ismagulov <ibr@radix50.net>,
Jan Kiszka <jan.kiszka@siemens.com>
Subject: Re: [Discussion]: Metadata to consolidate and rebuild base-apt from distributed CI builds
Date: Tue, 22 Feb 2022 15:31:36 +0100 [thread overview]
Message-ID: <20220222153136.08432cb3@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <CALLGG_L+ZwicVQtaFXd4FJkatmkLLNbSAcYKZbeO--X5M+g_rw@mail.gmail.com>
Hey Vijai,
Am Tue, 22 Feb 2022 16:04:36 +0530
schrieb vijai kumar <vijaikumar.kanagarajan@gmail.com>:
> Problem:
> --------
> We could have several CI jobs that are running in parallel in
> different nodes. One might want to consolidate and build a base-apt
> from the debs/deb-srcs of all these builds.
Can you go into more detail. I do not yet get the problem.
It seems like you want to save compute time by sharing pre-built
artifacts via some common storage. The sstate can do that very well, we
are using shared folders for on-prem runners, s3 for AWS and sstate
mirrors for population of "new empty runners" and "partial result
delivery" of failed jobs and to sync on-prem with s3.
isar is a tool to build images, not distros or repos or packages. While
it can do all of that using it for such things can get tricky and isar
was not designed for such cases. Meaning "base-apt" is not meant to be
your cache to build many images from ... it is meant to be the cache
for exactly one ... and sharing can cause problems.
sstate would detect false sharing, say a package recipe for some reason
uses a machine-conf variable. multiconfig or base-apt sharing would
make you run into that bug, while sstate would likely not.
So if it is about build time i suggest you have a look at sstate and the
not yet upstreamed python helper scripts for sharing/eviction i can
point you to in case you do not find it yourself.
Henning
> What's possible:
> ---------------
> With the current state of ISAR, the below is possible.
>
> 1. Run all the jobs in parallel in separate CI runners
> 2. Collect all the debs and deb-srcs from those builds and push to a
> common file server.
> 3. Download the debs and deb-srcs and create a repo out of it in the
> final CI step,
> 4. Upload the base-apt to the server.
>
> This has some disadvantages, we need to move all those
> data(deb/debsrcs), this increases time and cost.
>
> What's needed:
> --------------
> The idea is to have a simple meta-data that can be used by repo
> generation tools to recreate the repo.
>
> Why manifest cannot be used:
> ----------------------------
> Manifest does not serve this particular need. Below are the
> shortcomings of image manifest,
> 1. Does not have details about removed packages(eg localepurge)
> 2. Manifest of buildchroot would not have details about the package
> dependencies/imager installs at the time of generation(i.e.
> postprocess)
>
> Some ideas:
> -----------
> There were a couple of ideas,
> 1. To use an external script to create a manifest of the
> downloads/{deb, debsrc} folder and try to download the packages using
> that manifest and appropriate sourceslist in the final runner.
> 2. To use "apt --print-uris" + "debootstrap --keep-debootstrap-dir" to
> create a metadata with complete url to the package. Later wget can be
> used to download those from the web.
>
> We are wondering if we could discuss and derive a solution for this
> here in ISAR itself instead of opting for some local scripts in
> downstream layers.
>
> Thanks,
> Vijai Kumar K
next prev parent reply other threads:[~2022-02-22 14:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-22 10:34 vijai kumar
2022-02-22 14:31 ` Henning Schild [this message]
2022-02-24 13:20 ` vijai kumar
2022-02-24 15:42 ` Henning Schild
2022-02-25 17:27 ` Jan Kiszka
2022-03-03 13:45 ` vijai kumar
2022-03-04 10:03 ` Baurzhan Ismagulov
2022-03-07 7:23 ` vijai kumar
2022-03-15 11:45 ` Baurzhan Ismagulov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220222153136.08432cb3@md1za8fc.ad001.siemens.net \
--to=henning.schild@siemens.com \
--cc=ibr@radix50.net \
--cc=isar-users@googlegroups.com \
--cc=jan.kiszka@siemens.com \
--cc=vijaikumar.kanagarajan@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox