#12587 Create `image-builder-build` koji build group
Opened a month ago by supakeen. Modified 4 days ago

G'day, for https://fedoraproject.org/wiki/Changes/KojiLocalImageBuilder I'd like the following:

  • image-builder, and distribution-gpg-keys in an image-builder-build group (I don't know the exact name of this type of group, it's what's used by the buildroots).

This would be a new group that will get used by the new task types that will be added to the already existing koji-osbuild plugin but I'll make a separate releng issues for rights on those tasks after I've submitted the updates for the plugin to Fedora.

The above mimicks the koji comp group setup for kiwi (which has its kiwi-build) group. I'm trying to keep everything the same as possible with the way the kiwi plugin works.


@kevin and I had a small chat on Matrix about this that some tags will likely also need to be created. Probably also the same as those for kiwi but with the image-builder name :)

Can we call this osbuild instead of image-builder? At least then it's less generic...

Can we call this osbuild instead of image-builder? At least then it's less generic...

The package is called image-builder, the executable is called image-builder; and the service is called image builder. It's generic, but not specifically within the Fedora/CentOS/RHEL ecosystem, I guess.

Not super happy about that but it's also not osbuild which is a specific program so that'd also be weird :(

Oof, okay. :frowning:

Metadata Update from @phsmoura:
- Issue tagged with: low-trouble, medium-gain, ops

a month ago

Metadata Update from @jnsamyak:
- Issue assigned to jnsamyak

a month ago

Okay, I did a little brainstorming today and looked at how we are dealing with such requests in Kiwi.

Define the Tag Structure for Image Builder

Since Kiwi used f${release}-kiwi-build, we should create:

  • f${release}-image-builder-build for Image Builder-specific builds.

This tag needs:

  • A parent tag of f{release}-compose
  • Architectures set as x86_64 aarch64 ppc64le s390x
  • Permissions and mock configuration similar to Kiwi.

Changes in make-koji-release tags scripts

# Targets for image-builder builds to use their own tag/target in order to set mock to use old chroot
koji add-tag --parent "f${release}-compose" --arches="x86_64 aarch64 ppc64le s390x" "f${release}-image-builder-build"
koji edit-tag --perm=admin "f${release}-image-builder-build"
koji edit-tag -x mock.new_chroot=0 f${release}-image-builder-build
koji add-target "f${release}-image-builder" "f${release}-image-builder-build" "f${release}"

# No need to add a group, assuming it will be cloned from future release tags
# koji add-group f${release} image-builder-build (NEED TO CONFIRM THIS)
# koji add-group-pkg f${release} image-builder-build image-builder distribution-gpg-keys

This we would need for everytime we branch, and currently do we need similar for the new rawhide right?

Suggestions are welcome~

CC: @kevin @supakeen

Or do we need to do these as well?

# koji add-group f${release} image-builder-build
# koji add-group-pkg f${release} image-builder-build image-builder distribution-gpg-keys

Sadly I'm not super good at koji setup itself; let's tag @ngompa as he had this set up recently and probably knows best what would be missing.

To me the above looks OK (including the second comment).

So, I had to refresh my memory on koji goups... but actually I don't think we need any tags here.

The reason kiwi-build is a seperate tag is that it needs mock old chroot.

Hopefully image-builder doesn't?

If it does not, we should be able to just add the group and the image-builder plugin can request that group be installed for it's builds.

Unless I am missing anything.

I suspect image builder will be afflicted with the same problems kiwi has. Ultimately the issue is that nspawn breaks loop devices in bizarre ways, and image build tools that create loops in the environment as part of preparing the image will be affected.

This might be something we can somehow work around in Mock, and thus drop the usage of old-chroot, but I'm unsure about that yet.

It would be wonderfull if we could.

I've been hard at work on adding an image-builder plugin to the koji-osbuild package.

So far I've done my unit tests and I'll be working on integration tests tomorrow so I should be able to tell with some degree of certainty if we need a tag with old-chroot then. Though, koji is pretty complex so maybe not tomorrow :)

@supakeen, thank you, please let us know :D

Just a small update; the debugging is still ongoing. Neal filed an upstream bug for mock. It kinda depends on timing and such if this tag will be necessary; I'll update again soon.

Alternatively, maybe it'd be possible that kiwi and image-builder share the fXX-kiwi tag? It'd require only adding image-builder to it and then I'll set up the koji plugin to use that and I think it would require less work and maintenance from releng's side. (cc @ngompa).

Not necessary yet since there's time to see where the systemd-nspawn story goes :)

We can reuse the tag if needed, since you just have to define the image-builder install group so it works in there. :smile:

What's the status here? Has the systemd-nspawn story been resolved?

@zbyszek The systemd-nspawn story hasn't changed, I believe @ngompa wants to work on a mock-uses-vms backend but that's separate from this issue.


Since this ticket is purely an organizational issue, my preference would be (but please verify that this is correct, koji can be a complex place for me):

  1. create the image-builder-build group with the packages image-builder, distribution-gpg-keys
  2. create fXX-image-builder-build tags with the same settings/inheritance as the fXX-kiwi-build tags (mock.new_chroot to false) and containing the image-builder-build group.
  3. create fXX-image-builder targets with the same settings/inheritance as the fXX-kiwi targets.

Alternatively, if this is too much work and/or maintenance it is possible for koji-image-builder to re-use the existing kiwi tags, targets, and groups. In that case image-builder needs to be added to the kiwi-build group.

Well we can add the image-builder-build group to the fXX-kiwi tag.

Log in to comment on this ticket.

Metadata
Boards 1
Ops Status: Backlog