Move bootc distro and image type code into generic distro#2172
Move bootc distro and image type code into generic distro#2172supakeen merged 16 commits intoosbuild:mainfrom
Conversation
|
This PR changes the images API or behaviour causing integration failures with osbuild-composer. The next update of the images dependency in osbuild-composer will need work to adapt to these changes. This is simply a notice. It will not block this PR from being merged. |
e0272ba to
1b86247
Compare
|
The failing test seems to be related to tests running in parallel and the cleanup of one test trying to delete a container still used by a different test. I can't reproduce it locally, but that's to be expected with this kind of racy failure. I'll see if I can get around it with |
d865c0b to
cb80966
Compare
| } | ||
|
|
||
| func newDistro(nameVer string) (distro.Distro, error) { | ||
| func New(nameVer string) (distro.Distro, error) { |
There was a problem hiding this comment.
Hm, this doesn't seem to be actually used anywhere in the following patches? (outside of the generic package).
There was a problem hiding this comment.
Right. I was thinking about touching the distrofactory more down the line, but I didn't get to it in this PR and it already became a bit too large. I can revert it so it's less noise.
There was a problem hiding this comment.
Fine with me, I mean, it is not big deal to export a function and not use it, as long as the contract is reasonable.
supakeen
left a comment
There was a problem hiding this comment.
Thanks it all makes sense and I can see where this is moving but there is still quite a lot of 'in the future' which makes it a bit hard to see the full picture.
Let's get this in and continue iterating on it.
I tried to describe what I'm planning as best I could but tbh a lot of the details will have to shake out in the process. I know it's hard to verify if it's going well when you don't know where it's going so, uh, thanks for the trust I guess :) |
|
Removed it from the queue because it will conflict with #2174 ahead of it. |
2244817 to
d17d138
Compare
|
Fixed conflicts. |
d17d138 to
64b8ae5
Compare
|
Conflicts again, sorry I could not take a look yet, I am interested I just want to rebase my own PRs before sprint end. Gonna take a look tomorrow. |
|
Cleared the conflicts very very carefully since they were from code added to functions and types that were moved in this PR (like handling the new build options). |
64b8ae5 to
62f0f1b
Compare
pkg/distro/generic/bootc.go
Outdated
| func NewBootc(name string, cinfo *bootc.Info) (distro.Distro, error) { | ||
| errPrefix := "NewBootc" | ||
| if cinfo == nil { | ||
| return nil, fmt.Errorf("%s: missing required info: container info is empty", errPrefix) |
There was a problem hiding this comment.
This is a nitpick. I do not understand why the error here is so complicated, this could have been simply fmt.Errorf("container info is empty").
If the goal is to wrap error value for later use, this should have been done properly via an exported error value called ErrNewBootc.
I see the pattern later in this function, but I think it creates less readable code.
There was a problem hiding this comment.
yeah, you're right, it would be simpler to have a type that adds the prefix automatically. I can update it if you want.
There was a problem hiding this comment.
All of my comments are nitpicks, feel free to resolve anything you like.
pkg/distro/generic/bootc.go
Outdated
| // build container arch must match the base container arch | ||
| if _, err := d.GetArch(buildArch.String()); err != nil { | ||
| arches := d.ListArches() | ||
| baseArch := arches[0] // there should only ever be one architecture for a bootc distro |
Expose the generic distro.New() function. This will give callers a bit more direct control over distro initialisation when needed. We'll also expose a variant of this initialiser for the bootc distro, putting the decision of the type of distro to be initialised on the API caller.
Merge (copy) the bootc distro types and initialiser into the generic distro package. The distro/bootc package will be removed later. The goal is to have a single distro package for managing all types of distributions, having different entrypoints and internal Distro interface implementations for initialising and managing the different distribution variants rather than separating them into different packages that behave differently. One important change in the new bootc distro initialiser is it now requires that the information from the container is resolved before initialising the distro object. This has two advantages: 1. It does not implicitly run or introspect the container when initialising distribution, architecture, and image type objects. Instead, it gives the caller control over when and where this information resolution task runs. 2. It makes it very straightforward to initialise a bootc-based distribution with mock data. Instead of overriding internal functions to avoid running container info resolution, a caller can populate a bootc distro with any data, real of mocked, to generate manifests for production or testing accordingly. This is a bit more consistent with the generic, package-based distribution types, where initialising a distro depends only on the internal static information, and any external info and resources (packages, containers, ostree commits) are resolved and provided by the caller during manifest generation. However, due to the nature of the bootc distro, the container info must be resolved before the distribution object is initialised, not between manifest initialisation and serialisation.
It's nicer and the linter prefers it.
When accessing the distro through the architecture, which is how distro information is accessed from an instantiated ImageType, use the distro.Distro interface instead of the internal distribution type. This enables initialising a distro -> arch -> image-type hierarchy with either implementation of the distro.Distro interface, the traditional generic.distribution or the new generic.BootcDistro. The current state of the internal usage of the distribution object means we need to type cast the interface before using it in many cases. This is not great and should only be a temporary workaround while the distribution implementations are being unified.
Copy the bootc.imageType type and methods to the generic distro. Add a new method on the generic architecture to add bootcImageType.
When initialising the architecture object for the bootc distro, add the back reference to the distro as well. This is needed in many cases to access the distribution object from the architecture.
Manifest generation for bootc-based images requires resolving the container ID through the traditional application container resolver and passed as a container spec to the serialize function. If instead we use the ImageID from the bootc container resolver, we wont need to do that second container resolve and we can keep the bootc-container information resolution in one place, instead of needing to resolve most information using pkg/bootc and just the image ID using pkg/container. Currently, after being copied to the BootcDistro struct, the ImageID has no effect, so we shouldn't require it, but we'll keep setting it until we need it to replace the requirement for the separate resolve operation. Using the image ID from the bootc container info will require more work and will be taken care of at a later time.
Add the SetBuildContainer() method to the bootc distro. This, again, differs from the original implementation of the method found in the separate bootc distro defined in pkg/distro/bootc. It does not resolve any container info itself and instead expects all container info to be resolved beforehand by the caller. It validates that all required information is defined. In order to support this, the NewBootc() initialiser returns a *BootcDistro instead of the distro.Distro interface. Callers will need the concrete type in order to call the new method. However, since we support setting build containers for package-based builds as well, in the future this should become part of the distro interface as well, so we can have a consistent way of defining build containers for all types and instances of distributions.
It may not be strictly required, but the OSRelease ID and VersionID are used to define the name of the distribution in the existing implementation of the bootc distro. Let's use them the same way for now for consistency while we transition to the new implementation.
Append the ID and version ID from the container to the distro name. This is consistent with the previous implementation from bootc-image-builder.
Move and adapt tests from distro/bootc to distro/generic. Bootc distros for testing are now initialised using mock bootc.Info data. Tests that resolve toy containers use the new flow for resolving the container info with bootc.NewContainer() and ResolveInfo().
Use the new generic.NewBootc() to initialise the bootc distro in gen-manifests. This generated manifests are identical to the existing ones.
All the bootc manifest generation code has been moved and adapted into distro/generic now. This also removes the bootc distro from the DistroFactory. Bootc distros can now only be initialised explicitly using the generic.NewBootc() function.
Make sure the container for each test has a test-specific file in it so the containers are always different for each test. This should avoid conflicts arising from the same container being used by different tests. At the same time, force remove the images since there might be leftover containers running from previous failed runs of the same test that didn't stop the containers.
When we get a distro.Distro interface when retrieving the distribution from an image type, we often need information that wasn't exposed by any of the interface methods. Initially, the information was retrieved by casting the interface to either distro.distribution or distro.BootcDistro. This is ugly and error prone. To minimise type casting, expand the distro.Distro interface to include methods required by the image type methods. This is still not ideal. The distro.Distro interface was already a bit too big and some of the new methods that are added here aren't general enough and don't apply to all implementations of the interface. However, it's, in my opinion, much cleaner than the previous solution.
a6baa93 to
a4532f2
Compare
Code changes required because:
- The distro-wide ostree ref has been removed.
- Unit tests for both APIs were adjusted accordingly.
- Bootc distro definition moved to generic distro package and
initialisation changed:
- Bootc container info resolution (base and build containers) needs
to happen explicitly before initialising the bootc distro.
- awscloud.NewDefault() now takes an optional default profile name.
----
Changelogs
tag v0.240.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>
Changes with 0.240.0
----------------
- Update snapshots to 20260211 (osbuild/images#2191)
- Author: SchutzBot, Reviewers: Lukáš Zapletal, Simon de Vlieger
- deps: update to Go 1.24 (osbuild/images#2192)
- Author: Lukáš Zapletal, Reviewers: Brian C. Lane, Simon de Vlieger
- depsolvednf: improve error reporting (osbuild/images#2156)
- Author: Lukáš Zapletal, Reviewers: Brian C. Lane, Simon de Vlieger
- pkg/bib/container: Support use in rootless containers (osbuild/images#2167)
- Author: Alexander Larsson, Reviewers: Achilleas Koutsou, Simon de Vlieger
- pkg/rpmmd: remove tags from modularity structures (osbuild/images#2187)
- Author: Tomáš Hozza, Reviewers: Lukáš Zapletal, Simon de Vlieger
— Somewhere on the Internet, 2026-02-12
---
tag v0.241.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>
Changes with 0.241.0
----------------
- Move bootc distro and image type code into generic distro (osbuild/images#2172)
- Author: Achilleas Koutsou, Reviewers: Nobody
- Use functions from Go 1.24 stdlib (osbuild/images#2194)
- Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger
- distro: introduce ostree default URL (HMS-10152) (osbuild/images#2186)
- Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza
- distro: move ostree default reference to image type (HMS-10151) (osbuild/images#2184)
- Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza
— Somewhere on the Internet, 2026-02-16
---
tag v0.242.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>
Changes with 0.242.0
----------------
- Cleanup remotefile resolver and delete internal/worker (osbuild/images#2178)
- Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza
- Enable BSI OpenSCAP profile for RHEL 10.2 (HMS-9407) (osbuild/images#2199)
- Author: Gianluca Zuccarelli, Reviewers: Achilleas Koutsou, Tomáš Hozza
- New image type for RHEL 9 and 10: ec2-cvm [HMS-10096] (osbuild/images#2177)
- Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza
- Update osbuild dependency commit ID (osbuild/images#2198)
- Author: SchutzBot, Reviewers: Achilleas Koutsou, Tomáš Hozza
- check-host-config: convert tests to tabular format (osbuild/images#2164)
- Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza
- data/repositories: update f45 keys (osbuild/images#2181)
- Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal
- distro: set ostree ref only on ostree types in test distro (osbuild/images#2201)
- Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger
- fedora: atomic desktops installers and disk images (HMS-10174, HMS-10175) (osbuild/images#2188)
- Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza
- pkg/cloud/awscloud: allow specifying AWS credentials profile (osbuild/images#2157)
- Author: Jakub Kadlčík, Reviewers: Lukáš Zapletal, Simon de Vlieger
- rhel/centos-9: grow `/boot` for minimal-raw (osbuild/images#2200)
- Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal, Tomáš Hozza
- test/scripts: don't use post-release version bump commits for osbuild (osbuild/images#2195)
- Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Simon de Vlieger, Tomáš Hozza
— Somewhere on the Internet, 2026-02-17
---
Code changes required because:
- The distro-wide ostree ref has been removed.
- Unit tests for both APIs were adjusted accordingly.
- Bootc distro definition moved to generic distro package and
initialisation changed:
- Bootc container info resolution (base and build containers) needs
to happen explicitly before initialising the bootc distro.
- awscloud.NewDefault() now takes an optional default profile name.
----
Changelogs
tag v0.240.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>
Changes with 0.240.0
----------------
- Update snapshots to 20260211 (osbuild/images#2191)
- Author: SchutzBot, Reviewers: Lukáš Zapletal, Simon de Vlieger
- deps: update to Go 1.24 (osbuild/images#2192)
- Author: Lukáš Zapletal, Reviewers: Brian C. Lane, Simon de Vlieger
- depsolvednf: improve error reporting (osbuild/images#2156)
- Author: Lukáš Zapletal, Reviewers: Brian C. Lane, Simon de Vlieger
- pkg/bib/container: Support use in rootless containers (osbuild/images#2167)
- Author: Alexander Larsson, Reviewers: Achilleas Koutsou, Simon de Vlieger
- pkg/rpmmd: remove tags from modularity structures (osbuild/images#2187)
- Author: Tomáš Hozza, Reviewers: Lukáš Zapletal, Simon de Vlieger
— Somewhere on the Internet, 2026-02-12
---
tag v0.241.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>
Changes with 0.241.0
----------------
- Move bootc distro and image type code into generic distro (osbuild/images#2172)
- Author: Achilleas Koutsou, Reviewers: Nobody
- Use functions from Go 1.24 stdlib (osbuild/images#2194)
- Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger
- distro: introduce ostree default URL (HMS-10152) (osbuild/images#2186)
- Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza
- distro: move ostree default reference to image type (HMS-10151) (osbuild/images#2184)
- Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza
— Somewhere on the Internet, 2026-02-16
---
tag v0.242.0
Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com>
Changes with 0.242.0
----------------
- Cleanup remotefile resolver and delete internal/worker (osbuild/images#2178)
- Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza
- Enable BSI OpenSCAP profile for RHEL 10.2 (HMS-9407) (osbuild/images#2199)
- Author: Gianluca Zuccarelli, Reviewers: Achilleas Koutsou, Tomáš Hozza
- New image type for RHEL 9 and 10: ec2-cvm [HMS-10096] (osbuild/images#2177)
- Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza
- Update osbuild dependency commit ID (osbuild/images#2198)
- Author: SchutzBot, Reviewers: Achilleas Koutsou, Tomáš Hozza
- check-host-config: convert tests to tabular format (osbuild/images#2164)
- Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza
- data/repositories: update f45 keys (osbuild/images#2181)
- Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal
- distro: set ostree ref only on ostree types in test distro (osbuild/images#2201)
- Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger
- fedora: atomic desktops installers and disk images (HMS-10174, HMS-10175) (osbuild/images#2188)
- Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza
- pkg/cloud/awscloud: allow specifying AWS credentials profile (osbuild/images#2157)
- Author: Jakub Kadlčík, Reviewers: Lukáš Zapletal, Simon de Vlieger
- rhel/centos-9: grow `/boot` for minimal-raw (osbuild/images#2200)
- Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal, Tomáš Hozza
- test/scripts: don't use post-release version bump commits for osbuild (osbuild/images#2195)
- Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Simon de Vlieger, Tomáš Hozza
— Somewhere on the Internet, 2026-02-17
---
tag v0.241.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.241.0 ---------------- - Move bootc distro and image type code into generic distro (osbuild/images#2172) - Author: Achilleas Koutsou, Reviewers: Nobody - Use functions from Go 1.24 stdlib (osbuild/images#2194) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: introduce ostree default URL (HMS-10152) (osbuild/images#2186) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - distro: move ostree default reference to image type (HMS-10151) (osbuild/images#2184) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza — Somewhere on the Internet, 2026-02-16 --- tag v0.242.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.242.0 ---------------- - Cleanup remotefile resolver and delete internal/worker (osbuild/images#2178) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - Enable BSI OpenSCAP profile for RHEL 10.2 (HMS-9407) (osbuild/images#2199) - Author: Gianluca Zuccarelli, Reviewers: Achilleas Koutsou, Tomáš Hozza - New image type for RHEL 9 and 10: ec2-cvm [HMS-10096] (osbuild/images#2177) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza - Update osbuild dependency commit ID (osbuild/images#2198) - Author: SchutzBot, Reviewers: Achilleas Koutsou, Tomáš Hozza - check-host-config: convert tests to tabular format (osbuild/images#2164) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - data/repositories: update f45 keys (osbuild/images#2181) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal - distro: set ostree ref only on ostree types in test distro (osbuild/images#2201) - Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger - fedora: atomic desktops installers and disk images (HMS-10174, HMS-10175) (osbuild/images#2188) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - pkg/cloud/awscloud: allow specifying AWS credentials profile (osbuild/images#2157) - Author: Jakub Kadlčík, Reviewers: Lukáš Zapletal, Simon de Vlieger - rhel/centos-9: grow `/boot` for minimal-raw (osbuild/images#2200) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal, Tomáš Hozza - test/scripts: don't use post-release version bump commits for osbuild (osbuild/images#2195) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Simon de Vlieger, Tomáš Hozza — Somewhere on the Internet, 2026-02-17 --- tag v0.243.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.243.0 ---------------- - Move bootc pxe initrd creation into the Containerfile (osbuild/images#2202) - Author: Brian C. Lane, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: add erofs options into iso (osbuild/images#2196) - Author: Anna Vítová, Reviewers: Simon de Vlieger - fedora: atomic installer default config and erofs (HMS-10220) (osbuild/images#2209) - Author: Simon de Vlieger, Reviewers: Brian C. Lane, Lukáš Zapletal - many: copy ErofsOptions in manifest (osbuild/images#2212) - Author: Lukáš Zapletal, Reviewers: Simon de Vlieger, Tomáš Hozza - schutzbot: bump terraform hash (osbuild/images#2205) - Author: Simon de Vlieger, Reviewers: Anna Vítová, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 ---
tag v0.241.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.241.0 ---------------- - Move bootc distro and image type code into generic distro (osbuild/images#2172) - Author: Achilleas Koutsou, Reviewers: Nobody - Use functions from Go 1.24 stdlib (osbuild/images#2194) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: introduce ostree default URL (HMS-10152) (osbuild/images#2186) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - distro: move ostree default reference to image type (HMS-10151) (osbuild/images#2184) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza — Somewhere on the Internet, 2026-02-16 --- tag v0.242.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.242.0 ---------------- - Cleanup remotefile resolver and delete internal/worker (osbuild/images#2178) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - Enable BSI OpenSCAP profile for RHEL 10.2 (HMS-9407) (osbuild/images#2199) - Author: Gianluca Zuccarelli, Reviewers: Achilleas Koutsou, Tomáš Hozza - New image type for RHEL 9 and 10: ec2-cvm [HMS-10096] (osbuild/images#2177) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza - Update osbuild dependency commit ID (osbuild/images#2198) - Author: SchutzBot, Reviewers: Achilleas Koutsou, Tomáš Hozza - check-host-config: convert tests to tabular format (osbuild/images#2164) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - data/repositories: update f45 keys (osbuild/images#2181) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal - distro: set ostree ref only on ostree types in test distro (osbuild/images#2201) - Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger - fedora: atomic desktops installers and disk images (HMS-10174, HMS-10175) (osbuild/images#2188) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - pkg/cloud/awscloud: allow specifying AWS credentials profile (osbuild/images#2157) - Author: Jakub Kadlčík, Reviewers: Lukáš Zapletal, Simon de Vlieger - rhel/centos-9: grow `/boot` for minimal-raw (osbuild/images#2200) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal, Tomáš Hozza - test/scripts: don't use post-release version bump commits for osbuild (osbuild/images#2195) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Simon de Vlieger, Tomáš Hozza — Somewhere on the Internet, 2026-02-17 --- tag v0.243.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.243.0 ---------------- - Move bootc pxe initrd creation into the Containerfile (osbuild/images#2202) - Author: Brian C. Lane, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: add erofs options into iso (osbuild/images#2196) - Author: Anna Vítová, Reviewers: Simon de Vlieger - fedora: atomic installer default config and erofs (HMS-10220) (osbuild/images#2209) - Author: Simon de Vlieger, Reviewers: Brian C. Lane, Lukáš Zapletal - many: copy ErofsOptions in manifest (osbuild/images#2212) - Author: Lukáš Zapletal, Reviewers: Simon de Vlieger, Tomáš Hozza - schutzbot: bump terraform hash (osbuild/images#2205) - Author: Simon de Vlieger, Reviewers: Anna Vítová, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 --- tag v0.244.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.244.0 ---------------- - pkg/osbuild/rpm: don't collect GPG keys from repos with CheckGPG=false (osbuild/images#2203) - Author: Tomáš Hozza, Reviewers: Achilleas Koutsou, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 ---
Changed TestManifestIntegrationOstreeSmokeErrors to use centos-9. Fedora images now define their own ostree URLs so the option is not required. --- tag v0.241.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.241.0 ---------------- - Move bootc distro and image type code into generic distro (osbuild/images#2172) - Author: Achilleas Koutsou, Reviewers: Nobody - Use functions from Go 1.24 stdlib (osbuild/images#2194) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: introduce ostree default URL (HMS-10152) (osbuild/images#2186) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - distro: move ostree default reference to image type (HMS-10151) (osbuild/images#2184) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza — Somewhere on the Internet, 2026-02-16 --- tag v0.242.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.242.0 ---------------- - Cleanup remotefile resolver and delete internal/worker (osbuild/images#2178) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - Enable BSI OpenSCAP profile for RHEL 10.2 (HMS-9407) (osbuild/images#2199) - Author: Gianluca Zuccarelli, Reviewers: Achilleas Koutsou, Tomáš Hozza - New image type for RHEL 9 and 10: ec2-cvm [HMS-10096] (osbuild/images#2177) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza - Update osbuild dependency commit ID (osbuild/images#2198) - Author: SchutzBot, Reviewers: Achilleas Koutsou, Tomáš Hozza - check-host-config: convert tests to tabular format (osbuild/images#2164) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - data/repositories: update f45 keys (osbuild/images#2181) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal - distro: set ostree ref only on ostree types in test distro (osbuild/images#2201) - Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger - fedora: atomic desktops installers and disk images (HMS-10174, HMS-10175) (osbuild/images#2188) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - pkg/cloud/awscloud: allow specifying AWS credentials profile (osbuild/images#2157) - Author: Jakub Kadlčík, Reviewers: Lukáš Zapletal, Simon de Vlieger - rhel/centos-9: grow `/boot` for minimal-raw (osbuild/images#2200) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal, Tomáš Hozza - test/scripts: don't use post-release version bump commits for osbuild (osbuild/images#2195) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Simon de Vlieger, Tomáš Hozza — Somewhere on the Internet, 2026-02-17 --- tag v0.243.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.243.0 ---------------- - Move bootc pxe initrd creation into the Containerfile (osbuild/images#2202) - Author: Brian C. Lane, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: add erofs options into iso (osbuild/images#2196) - Author: Anna Vítová, Reviewers: Simon de Vlieger - fedora: atomic installer default config and erofs (HMS-10220) (osbuild/images#2209) - Author: Simon de Vlieger, Reviewers: Brian C. Lane, Lukáš Zapletal - many: copy ErofsOptions in manifest (osbuild/images#2212) - Author: Lukáš Zapletal, Reviewers: Simon de Vlieger, Tomáš Hozza - schutzbot: bump terraform hash (osbuild/images#2205) - Author: Simon de Vlieger, Reviewers: Anna Vítová, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 --- tag v0.244.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.244.0 ---------------- - pkg/osbuild/rpm: don't collect GPG keys from repos with CheckGPG=false (osbuild/images#2203) - Author: Tomáš Hozza, Reviewers: Achilleas Koutsou, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 --- Co-authored-by: Brian C. Lane <bcl@redhat.com>
Changed TestManifestIntegrationOstreeSmokeErrors to use centos-9. Fedora images now define their own ostree URLs so the option is not required. --- tag v0.241.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.241.0 ---------------- - Move bootc distro and image type code into generic distro (osbuild/images#2172) - Author: Achilleas Koutsou, Reviewers: Nobody - Use functions from Go 1.24 stdlib (osbuild/images#2194) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: introduce ostree default URL (HMS-10152) (osbuild/images#2186) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - distro: move ostree default reference to image type (HMS-10151) (osbuild/images#2184) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza — Somewhere on the Internet, 2026-02-16 --- tag v0.242.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.242.0 ---------------- - Cleanup remotefile resolver and delete internal/worker (osbuild/images#2178) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - Enable BSI OpenSCAP profile for RHEL 10.2 (HMS-9407) (osbuild/images#2199) - Author: Gianluca Zuccarelli, Reviewers: Achilleas Koutsou, Tomáš Hozza - New image type for RHEL 9 and 10: ec2-cvm [HMS-10096] (osbuild/images#2177) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Tomáš Hozza - Update osbuild dependency commit ID (osbuild/images#2198) - Author: SchutzBot, Reviewers: Achilleas Koutsou, Tomáš Hozza - check-host-config: convert tests to tabular format (osbuild/images#2164) - Author: Lukáš Zapletal, Reviewers: Achilleas Koutsou, Tomáš Hozza - data/repositories: update f45 keys (osbuild/images#2181) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal - distro: set ostree ref only on ostree types in test distro (osbuild/images#2201) - Author: Achilleas Koutsou, Reviewers: Brian C. Lane, Simon de Vlieger - fedora: atomic desktops installers and disk images (HMS-10174, HMS-10175) (osbuild/images#2188) - Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza - pkg/cloud/awscloud: allow specifying AWS credentials profile (osbuild/images#2157) - Author: Jakub Kadlčík, Reviewers: Lukáš Zapletal, Simon de Vlieger - rhel/centos-9: grow `/boot` for minimal-raw (osbuild/images#2200) - Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Lukáš Zapletal, Tomáš Hozza - test/scripts: don't use post-release version bump commits for osbuild (osbuild/images#2195) - Author: Achilleas Koutsou, Reviewers: Lukáš Zapletal, Simon de Vlieger, Tomáš Hozza — Somewhere on the Internet, 2026-02-17 --- tag v0.243.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.243.0 ---------------- - Move bootc pxe initrd creation into the Containerfile (osbuild/images#2202) - Author: Brian C. Lane, Reviewers: Achilleas Koutsou, Simon de Vlieger - distro: add erofs options into iso (osbuild/images#2196) - Author: Anna Vítová, Reviewers: Simon de Vlieger - fedora: atomic installer default config and erofs (HMS-10220) (osbuild/images#2209) - Author: Simon de Vlieger, Reviewers: Brian C. Lane, Lukáš Zapletal - many: copy ErofsOptions in manifest (osbuild/images#2212) - Author: Lukáš Zapletal, Reviewers: Simon de Vlieger, Tomáš Hozza - schutzbot: bump terraform hash (osbuild/images#2205) - Author: Simon de Vlieger, Reviewers: Anna Vítová, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 --- tag v0.244.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.244.0 ---------------- - pkg/osbuild/rpm: don't collect GPG keys from repos with CheckGPG=false (osbuild/images#2203) - Author: Tomáš Hozza, Reviewers: Achilleas Koutsou, Lukáš Zapletal — Somewhere on the Internet, 2026-02-19 --- Co-authored-by: Brian C. Lane <bcl@redhat.com>
Third part of the bootc distro package alignment with the generic distro, started in #2136 and #2151.
This PR is a much bigger change. It significantly changes the way the bootc distro is initialised and the way the bootc container info is resolved. Most code in
pkg/distro/bootc/is moved intopkg/distro/generic/, with distro and image type variants for bootc. A future goal is to unify at least the BootcDistro type with the generic distro implementation and perhaps the image type as well, if possible. For now they remain separate because of slightly different behaviour.This PR implements API-breaking changes. The new method for initialising a bootc distro and generating a manifest can be seen clearly in the changes to
gen-manifests. In short, the previous flow was (ignoring errors for brevity):The new flow becomes:
This lets the API caller control how and when containers are run to retrieve info. It makes it much easier to initialise and generate bootc-based manifests with mock data, or by using alternative methods to resolve information (we are considering, for example, ways to resolve container info without running the container, but by simply mounting it and reading files).
Tests have been moved (and where necessary, adapted) from
pkg/distro/bootctopkg/distro/genericto verify the new implementation behaves in a consistent way. Test manifests have been verified to be unchanged (both mocked manifests and real ones).