How to update customized images?

After reading a lot of docs here and here, the basic thing is still not clear to me:

Who is intended to re-build customized images when the base images get updated?
How is it happens, what is the procedure?
Is it automated process that can take place locally as part of bootc upgrade command, or it needs some CI/CD setup in cloud for that?

For example, in OSTree systems Layered Packages are properly updated on rpm-ostree upgrade command without any external infrastructure needed from user’s side.
Is something similar possible with bootc?

I think documentation should make it clear, maybe somewhere here:

@arburka

Thanks.

This is just my opinion, based on personal experience, with no claims to officialdom or expertise.

Since the images are customized, it is likely that those who made the customizations are responsible for maintaining them.

It depends on the organization/individual that maintains them.

As you probably read in the docs:

Right now, bootc is a quite simple tool that is designed to do just a few things well. One of those is transactionally fetching new operating system updates from a registry and booting into them, while supporting rollback.

So again it depends on the use case.

As far as I know, bootc knows nothing about RPMs. However it is entirely possible to build locally customized/derived container images and even make ISO disk images from them. Most of this, if not all, is described, at least to some extent, in the docs you refer to.

Personally, I maintain GitHub repos that automatically build and push container images to registries. I have some scripts that build container images locally for upgrading/testing. I also have ones that build disk images for virtual machines or bare metal. So, at least for me, both the “cloud native” and “on premises” approaches serve a purpose depending on the circumstances.

1 Like

@hricky Thanks for answering.

So apparently the local re-build is not implemented yet:

Obviously it’s not a mainstream solution, but still that all could be interesting if you share.

Hello Andrey!

This is helpful feedback! I am not the most technical person but can bring this back up with others and get back to you.

But at a high level my understanding matches @hricky’s comments that once an image is customized, the customizer in in charge of maintaining them on whatever cadence makes sense to you. I think its important to make that clear in the documentation.

I also agree that there needs to be a part describing ongoing maintenance of a custom image. I suspect that is will be the dreaded “it depends.” But, it would be helpful to explicitly state that when you take on a custom base image, you are in charge of rebuilding the image with to get updates unlike when pulling from the default base.

In terms of automation, there is no overreaching local automated process for rebuilding your custom base and subsequently rebuilding your image. For that, you would have to look to outside ci/cd (@vrothberg please keep me honest). Bootc systems do have a setting to automatically update once the image that is using is updated.

I cannot comment on the Local RPM comments, but will try understand the context and answers.

Thanks!

1 Like

Thanks. Please note that alone is not suffice for the documentation, so the user should be provided with the guided options, i.e.: CI/CD, manual (for now) rebuild locally (with sample workflow commands), etc.
Otherwise, bootc is not ready even to try, most of the cases.

Also reference for the open issue and ongoing work should be provided, as it’s what most of the users will be wondered in the first place:

I’m not sure if you’re aware of the Fedora CoreOS Tutorials. If not, you can skim them briefly, at least the first section, even if you don’t fully understand the instructions. If you like the explanation approach, we could probably try writing something similar for the bootc docs.

1 Like

Awesome to reflect back what i understand here:

1 - The custom image documentation should be explicit in ownership of the customized base image
2 - The custom image documentation needs a section describing how upgrading is effected by using a custom image.
3 - The custom image documentation should stub out or link to examples (or at least one) of how to upgrade you a bootc system after rebuilding the base image.
4 The Getting Started documentation should highlight that layered packages is still a work in progress and link to issue 4

  • Can you expand on this?
  • Is this specific to local layering? Bootc in general or Custom base image?

Thanks!

1 Like

That wouldn’t cancel the need for some work on existing docs but yes, that would be helpful too.
Thanks.

I mean, at least doc-wise it’s not ready, as updating derived images is among the first things the users would ask about.