Commit graph

970 commits

Author SHA1 Message Date
Dusty Mabe
ebaedc73ed
Containerfile: explain why REPOS_IMAGE is needed
Having this is a bit confusing because the use case for it is exactly
what `podman build --from` was intended for. Let's add a comment here
about why it was added in aa9c6c2 [1], which is because konflux doesn't
support --from yet [1].

[1] https://gitlab.com/fedora/bootc/base-images/-/merge_requests/106#note_2380147640
2025-04-29 15:26:39 -04:00
Dusty Mabe
b251e1cbb3
Containerfile: drop pulling rpm-ostree from copr
Things have stabilized a bit now so let's revert 1a5ba89
so it's easier to override the builder image if someone wants
to do that.
2025-04-29 15:23:34 -04:00
Colin Walters (Red Hat)
abbc4d1454 Merge branch 'fix-ansible' into 'main'
standard: Add python3-libdnf5 and -rpm for Ansible support

See merge request fedora/bootc/base-images!167
2025-04-28 18:55:25 +00:00
Martin Pitt
0f11682ed3 standard: Add python3-rpm for Ansible support
Ansible's `package_facts` builtin [1] uses rpm's Python API. This fails by
default with "Could not detect a supported package manager".

In particular this fixes linux-system-roles for running during bootc
container builds.

[1] https://docs.ansible.com/ansible/latest/collections/ansible/builtin/package_facts_module.html
2025-04-28 19:13:59 +02:00
Martin Pitt
eb150e1f72 standard: Add python3-libdnf5 for Ansible support
Ansible's package builtin [1] uses dnf's Python API. This fails by
default with "Could not import the libdnf5 python module". This is
awkward and laborious to work around in Containerfiles, as you can't use
the normal `package:` to install, so it would require
distribution/release specific code, and replicating this to all
playbooks.

In particular this fixes linux-system-roles for running during bootc
container builds.

[1] https://docs.ansible.com/ansible/latest/collections/ansible/builtin/package_module.html
2025-04-28 19:13:51 +02:00
Colin Walters (Red Hat)
999702dd81 Merge branch 'iot-manifest' into 'main'
Adds iot-standard manifest to bootc base images

See merge request fedora/bootc/base-images!164
2025-04-11 16:09:04 +00:00
djach7
2bf75a020f Adds iot-standard manifest to bootc base images
Signed-off-by: djach7 <djachimo@redhat.com>
2025-04-11 10:19:29 -04:00
Colin Walters (Red Hat)
ef8819fee5 Merge branch 'image_matrix' into 'main'
README: document where the images are

See merge request fedora/bootc/base-images!165
2025-04-09 17:32:01 +00:00
Micah Abbott
909485741a README: Markdown lint fixes
Signed-off-by: Micah Abbott <miabbott@redhat.com>
2025-04-09 12:11:18 -04:00
Micah Abbott
b9c3877ead README: document where the images are
With the Konflux pipeline working, we should reference how to get
those images more easily.

Signed-off-by: Micah Abbott <miabbott@redhat.com>
2025-04-09 12:11:18 -04:00
Colin Walters (Red Hat)
e2b867e698 Merge branch 'fedora-bootc-minimal-plus-image' into 'main'
Initial Konflux build of Fedora Rawhide minimal-plus base image

See merge request fedora/bootc/base-images!157
2025-04-03 18:12:26 +00:00
Colin Walters (Red Hat)
05e3d446c8 Merge branch 'fedora-bootc-42-minimal' into 'main'
Initial Konflux build of Fedora 42 minimal base image

See merge request fedora/bootc/base-images!161
2025-04-03 18:12:13 +00:00
Colin Walters (Red Hat)
369e418b28 Merge branch 'fedora-bootc-42-minimal-plus' into 'main'
Initial Konflux build of Fedora 42 minimal-plus base image

See merge request fedora/bootc/base-images!162
2025-04-03 18:11:55 +00:00
Colin Walters (Red Hat)
5c8d94e069 Merge branch 'fedora-bootc-42-standard' into 'main'
Initial Konflux build of Fedora 42 standard base image

See merge request fedora/bootc/base-images!163
2025-04-03 17:49:56 +00:00
Colin Walters (Red Hat)
06f44c6b29 Merge branch 'fedora-bootc-tier-x-build' into 'main'
Initial Konflux build of Fedora  Rawhide standard base image

See merge request fedora/bootc/base-images!70
2025-04-03 17:49:20 +00:00
Miguel Martín
dc8b1ed433
Fedora 42 standard base image 2025-04-03 12:19:55 +02:00
Miguel Martín
c8c36c7819
Fedora 42 minimal-plus base image 2025-04-03 12:19:54 +02:00
Miguel Martín
426b951aee
Fedora 42 minimal base image 2025-04-03 12:19:45 +02:00
Colin Walters (Red Hat)
28bec24be8 Merge branch 'fedora-bootc-minimal-image' into 'main'
Initial Konflux build of Fedora Rawhide minimal base image

See merge request fedora/bootc/base-images!156
2025-04-01 14:24:48 +00:00
Miguel Martín
0aaa20edd7
Initial Konflux build of Fedora Rawhide minimal-plus base image 2025-04-01 14:53:48 +02:00
Miguel Martín
4abbbdb4e1
Initial Konflux build of Fedora Rawhide minimal base image 2025-04-01 14:53:15 +02:00
Miguel Martín
3d8dd4e4ce
Initial Konflux build of Fedora Rawhide standard base image 2025-04-01 10:29:54 +02:00
Colin Walters (Red Hat)
b2ef5fbd7a Merge branch 'move-tss-to-etc' into 'main'
Move the `tss` group to `/etc` so it can be mutated

See merge request fedora/bootc/base-images!155
2025-03-26 15:43:53 +00:00
Colin Walters
993845d2a2 Move the tss group to /etc so it can be mutated
This works around two issues:

- First, rpm switched to reading users/groups directly for
  its implementation of systemd-sysusers, which meant
  it no longer reads via nss, which breaks nss-altfiles.
  xref: https://github.com/rpm-software-management/rpm/pull/2503#issuecomment-1536435351
  and below.
- Second, even if that was fixed, `keylime` wants to add
  its user to the group, which can't be done when it's a system
  uid.

Since nothing in the OS content is owned by this group, we can
move underneath `/etc` by default.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-25 20:09:17 -04:00
Colin Walters (Red Hat)
a2259f8597 Merge branch 'drop-experimental' into 'main'
base-imagectl: Drop `experimental` from compose-rootfs

See merge request fedora/bootc/base-images!152
2025-03-21 18:59:21 +00:00
Colin Walters
78462e6c13 base-imagectl: Drop experimental from compose-rootfs
It's stable in 2025.6 which is hopefully going to ship
in Fedora 41 soon and is already in C10S and C9S.
2025-03-19 16:35:44 -04:00
Colin Walters (Red Hat)
407c3a6716 Merge branch 'rename-tierx' into 'main'
Rename tier-x → minimal-plus

Closes #24

See merge request fedora/bootc/base-images!151
2025-03-18 15:49:27 +00:00
Colin Walters
585071ec6e Rename tier-x → minimal-plus
When we renamed tier-0 → minimal and tier-1 → standard, the
naming of tier-x became obsolete. Complete the nomenclature
update.

Closes: https://gitlab.com/fedora/bootc/base-images/-/issues/24
Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-18 10:12:38 -04:00
Joseph Marrero Corchado
8b502872d4 Merge branch 'fix-version' into 'main'
Simplify versioning

Closes #40

See merge request fedora/bootc/base-images!150
2025-03-17 07:48:18 -04:00
Colin Walters
383f528989 Simplify versioning
The versioning here was originally inherited from the Fedora CoreOS
configuration. However...the version numbering was always
overridden by coreos-assembler, so it wasn't actually used there!

Conceptually there are two things here:

- OS version
- Arbitrary date stamp

For the "OS version"...well, the closest thing we have actually
to "version of set of RPMs" is a compose today, which is expressed
in a distinct label already - at least for CentOS and RHEL.
For Fedora of course post-branching there are no "composes"
as such but just a set of floating RPMs post-release.

We have the "arbitrary date stamp" in the container image build
time already - and tooling like bootc and rpm-ostree show
both the version and the build time.

Let's significantly simplify our version numbers by just going
to "OS version".

This especially fixes the bug that we weren't setting
`releasever` anymore which just broke the version anyways.

Closes: https://gitlab.com/fedora/bootc/base-images/-/issues/40

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-16 14:48:57 -04:00
Colin Walters (Red Hat)
59a3586a40 Merge branch 'kernel-protect' into 'main'
minimal/kernel-install: set protect_running_kernel to False

See merge request fedora/bootc/base-images!149
2025-03-14 18:45:12 +00:00
Joseph Marrero Corchado
1bf50178bd minimal/kernel-install: set protect_running_kernel to False
https://dnf.readthedocs.io/en/latest/conf_ref.html#protect-running-kernel-label
uses uname to protect the running kernel, when both the
container and the host shared the same kernel version this
blocks removing the kernel or replacing it, since on ostree
systems we only support one kernel this prevents us from
installing kernel-rt for example.
2025-03-14 12:29:32 -04:00
Colin Walters (Red Hat)
8ba4d860b3 Merge branch 'install-manifest-tweak' into 'main'
build-sys: Make target dir for install-manifests configurable

See merge request fedora/bootc/base-images!141
2025-03-12 15:28:13 +00:00
Colin Walters
c57120ac52 build-sys: Make target dir for install-manifests configurable
For the use case of updating Konflux lockfiles we want
to be able to easily render the manifests to a tempdir without
installing to `/`.

Move the install of the build script to the main container
build so `install-manifests` only touches manifests.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-12 09:29:12 -04:00
Colin Walters (Red Hat)
e0628d2124 Merge branch 'workaround-rpmostree' into 'main'
imagectl: Update mode for / if needed

See merge request fedora/bootc/base-images!107
2025-03-05 14:19:16 +00:00
Colin Walters
ccb2c22ecb imagectl: Update mode for / if needed
This works around https://github.com/coreos/rpm-ostree/pull/5322
so we can ship the fix faster.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-04 17:31:56 -05:00
Colin Walters (Red Hat)
6a04cddf98 Merge branch 'test-vartmp' into 'main'
tests: Verify var/tmp

See merge request fedora/bootc/base-images!105
2025-03-04 19:24:37 +00:00
Colin Walters (Red Hat)
095ac90bc1 Merge branch 'use-build-arg-instead-of-from' into 'main'
Add an alternative method to set the repos image

See merge request fedora/bootc/base-images!106
2025-03-04 18:29:25 +00:00
Miguel Martín
aa9c6c2a50
Add an alternative method to set the repos image
Make it possible to set the repos image with a build argument, e.g.:
--build-arg=REPOS_IMAGE=quay.io/fedora/fedora:42

Currently it's only possible use the --from argument, e.g.:
--from=quay.io/fedora/fedora:42

Signed-off-by: Miguel Martín <mmartinv@redhat.com>
2025-03-04 14:10:55 +01:00
Colin Walters (Red Hat)
582f7efb8c Merge branch 'container-use-dev' into 'main'
container: Use copr rpm-ostree by default

See merge request fedora/bootc/base-images!104
2025-03-03 19:20:05 +00:00
Colin Walters (Red Hat)
cbe4415851 Merge branch 'exclude-iptables-legacy' into 'main'
minimal: Exclude iptables-legacy, don't include iptables-nft

See merge request fedora/bootc/base-images!103
2025-03-03 18:46:08 +00:00
Colin Walters
1a5ba8905a container: Use copr rpm-ostree by default
As we're now in a cycle of landing fixes there faster, then once
we stabilize we can drop this.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-03 09:31:22 -05:00
Colin Walters
82a4e874a4 finalize.d: Ensure var/tmp in container root
There's a crazy history around this; what we really want is
to have this reliably generated by tmpfiles.d, the handling
for which I want to move to bootc. For now let's wedge this
into finalize.d alongside the few others here.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-03 09:31:22 -05:00
Colin Walters
5d4936fd43 tests: Verify var/tmp
Somehow this went missing in a local build.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-03-03 09:21:44 -05:00
Colin Walters (Red Hat)
f0ebf6250e Merge branch 'expose-rechunking' into 'main'
imagectl: Add rechunk verb

See merge request fedora/bootc/base-images!99
2025-02-28 22:39:24 +00:00
Colin Walters
55a8191604 imagectl: Add rechunk verb
This fronts the functionality currently implemented in rpm-ostree,
for the same reason as we have `build-rootfs`; the functionality
may move elsewhere in the future.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-02-28 15:15:59 -05:00
Colin Walters
ed3ca02edf minimal: Exclude iptables-legacy, don't include iptables-nft
Motivated by trimming the package set of minimal to be smaller
to match its name.

But more generally, I think the solution most of the time we hit a
"multiple things have a provides" isn't to hardcode what we want,
but to exclude what we don't want.

Ideally of course...there'd be something like
`ProvidesDisfavored: iptables` that `iptables-legacy` could
use.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-02-28 15:01:26 -05:00
Colin Walters (Red Hat)
b4469c1f50 Merge branch 'copytree-symlinks' into 'main'
imagectl: Copy symlinks as symlinks for manifests

See merge request fedora/bootc/base-images!101
2025-02-28 15:15:28 +00:00
Colin Walters (Red Hat)
77f33d9738 Merge branch 'rpmdb-normalize' into 'main'
Use rpmdb-normalize, add rootfs tests

See merge request fedora/bootc/base-images!102
2025-02-28 15:11:42 +00:00
Colin Walters
e89565789c Use rpmdb-normalize, add rootfs tests
I just saw the sqlite-shm corruption in
https://gitlab.com/redhat/centos-stream/containers/bootc/-/merge_requests/437#note_2372766792
so let's just go ahead and turn on rpmdb_normalize which
also aids the reproducibility of the rpmdb.

While we're here let's also add a long overdue "unit test" for
the rootfs. This operates as a container build that mounts
the container-under-test as part of a multi-stage build.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-02-28 09:14:45 -05:00