Skip to content

Conversation

@mvo5
Copy link
Collaborator

@mvo5 mvo5 commented Nov 12, 2025

[draft as this needs https://github.com/osbuild/images/pull/2007 and https://github.com/osbuild/images/pull/2010 first]

Drop legacy_iso.go and use the images library to build the
image.

We probably also want something like https://github.com/osbuild/images/pull/1804/files#diff-7a537ca8934a30b5cf043848aa0921b3f0fc61a2a0c117c83e83db94b4f5ea9f here

@mvo5 mvo5 changed the title bib: use image to generate the rpm ISO bib: use image to generate the rpm ISO [HMS-9297] Nov 12, 2025
@mvo5 mvo5 force-pushed the bootc-anaconda-iso-2 branch from b18ab2e to 656d33a Compare November 13, 2025 08:43
@mvo5 mvo5 changed the title bib: use image to generate the rpm ISO [HMS-9297] bib: use images lib to generate the rpm ISO [HMS-9297] Nov 13, 2025
@mvo5 mvo5 force-pushed the bootc-anaconda-iso-2 branch from 656d33a to efc99d8 Compare November 13, 2025 16:59
…mvo5/images@bootc-anaconda-iso-2 && go mod tidy
@mvo5 mvo5 force-pushed the bootc-anaconda-iso-2 branch from efc99d8 to c7dd947 Compare November 13, 2025 17:50
mvo5 added 2 commits November 13, 2025 21:38
Drop legacy_iso.go and use the images library to build the
image.
@mvo5
Copy link
Collaborator Author

mvo5 commented Nov 21, 2025

I'm closing this in favor of osbuild/image-builder-cli#374 and #1157 - I think instead of this we can focus on making it a multicall binary directly. If it turns out to be too difficult/too much churn in a single go we can revisit/reopen this PR.

@mvo5 mvo5 closed this Nov 21, 2025
supakeen added a commit to osbuild/image-builder-cli that referenced this pull request Dec 4, 2025
This PR move the bootc-image-builder code into
cmd/image-builder and changes main() so that image-builder
becomes a multi-call binary. When image-builder is called with
argv[0] as bootc-image-builder it will use the cobra commandline
and code from bootc-image-builder.

There is still a bit of duplication in the manifest generation
and building between bib_main.go and main.go but that is hard
to avoid if we want the "new" bib to be as close as possible
to the existing one (e.g. we do things like "canChownInPath()"
in bib which we do not need in ibcli).

One important difference between the two is how anaconda-iso
image types for bootc handle the repositories. The bib personality
stays the same as the orignal, i.e. it will use the container
repositories for depsolving. This require some complicated mTLS
handling that does not map well into ibcli. Here we do not do
that and instead use our own repos for the detected distro. I.e.
if the detected distro is fedora we build the (rpm) installer from
out fedora repos. We can strive to unify this and add (not so nice)
code into ibcli to support this or we just warn in ibcli if
bootc with anaconda-iso is used that this behaves differently
from bib and that people should use bib if they need the old
behavior (I would prefer that). I hope then we can phase out
this rpm based bootc anaconda-iso in favor of the container
based bootc-installer type.

This is osbuild/bootc-image-builder#1131
but directly in ibcli instead of doing the bib intermediate step.
The advantage is that we can "freeze" the bib repo and if we
run into issues with the transition have the last known good
bib code. Once we are happy we just delete all go files in the
bib repo and it just becomes a repo that builds the container
for bib.

It has many commits because it imports the full history of
bib/cmd/bootc-image-builder.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant