Replies: 0 comments 5 replies
-
The above was the result of a discussion with @larskarlitski, I'm curious to hear what everyone thinks :) |
Beta Was this translation helpful? Give feedback.
-
I like the idea of moving Would
I think our discussion about package sets for image types in osbuild-composer is relevant here. Or more generally, the way the new manifest format generalises building and assembling as (essentially arbitrary) pipelines makes me wonder whether there's also a general solution to |
Beta Was this translation helpful? Give feedback.
-
Manifests are not meant to be written by hand, but are always generated by some higher level tool. The only one we currently officially support is
osbuild-composer
, but there is also theMPP
inosbuild
as well as various ad-hoc demos and scripts.In the future, we may also see other tools use
osbuild
directly based on other higher-level image descriptions that will have to be translated. One could imagineCOSA
being a wrapper aroundosbuild
, or evenmock
. Each of which would need a way to generate manifests.All that aside, I would like to focus this discussion mostly on serving the needs of
osbuild-composer
, and if we should move the manifest generation we currently do inosbuild-composer
toosbuild
itself.Depsolve
Depsolving in
osbuild-composer
currently has two problems:osbuild-composer
itself. This is one of the blokckers for using the sameosbuild-composer
instance frombrew
as fromcloud.redhat.com
.dnf
being backwards and forwards compatible across all the distributions we wish to support.Potential solution
If we could have a
depsolve
stage that would allowosbuild-composer
to pass the request to be depsolved toosbuild
as a manifest, and the result be returned as metadata, this might solve both problems. The manifest would pin the build environment so that the version of dnf would be fixed and this would be run as a job in a worker, not inosbuild-composer
itself.Challenges
This would leave us with the old issue of pinning down the repodata to be depsolved against in the manifest, and as we know that might be troublesome on a frequently updated release. Also, the build pipeline of the depsolve manifest would itself need to be depsolved. Do we do this once and reuse the same hard-coded manifest, or do we go back to relying on the host to have dnf installed (not solving problem 2 above, but leaving that in its current state where we rely on dnf from the composer host).
Distro definitions
In addition to depsolving, the second part of manifest generation that currently lives in
osbuild-compore
is the distro definitions themselves. We have long struggled with the fact that the distro definitions should live (and be tested!) much closer toosbuild
than they currently do. Developing a new image type / distro, would typically require much more coordination withosbuild
than with the rest ofosbulid-composer
, and it would be useful for people to be able to consume distro definitions also outside ofosbuild-composer
.A potential solution to this would be to extend the depsolve manifest outlined above to be a full manifest generation manifest, where the kind of options to pass would be similar to the current
Distro
interface inosbuild-composer
, and the result would not be an artifact but a manifest itself. I would imagine each image type having its own stage for this purpose, so that the options they take could evolve over time.osbuild-composer
would still need to know about the various distros / image-types to pass the right arguments, but would then mostly be a glorified queue, and the actual logic would live inosbuild
.Beta Was this translation helpful? Give feedback.
All reactions