Compare commits

...

93 Commits

Author SHA1 Message Date
James Pace 67b144cbf9 Minimize base image. 2025-02-23 09:24:31 -05:00
Colin Walters (Red Hat) 7b4e013126 Merge branch 'branch-f42' into 'main'
tier-1: add f42 treefile after branching

See merge request fedora/bootc/base-images!87
2025-02-07 19:32:10 +00:00
Colin Walters (Red Hat) c1a4b38c46 Merge branch 'drop-resolved-centos' into 'main'
tier-x: Drop systemd-resolved

See merge request fedora/bootc/base-images!88
2025-02-07 14:35:47 +00:00
Colin Walters 0ac5ee04ba tier-x: Drop systemd-resolved
It's not desired by default in RHEL 10 or below yet, ref
https://issues.redhat.com/browse/RHEL-77077

AFAICS, it's already explicitly specified in the fedora-coreos manifest,
so dropping it here shouldn't affect FCOS.

Of course I think what we *really* want here is distribution
conditionals.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-02-07 09:23:38 -05:00
Paul Whalen da3c6ef677 tier-1: add f42 treefile after branching
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2025-02-05 16:44:49 -05:00
Colin Walters (Red Hat) 5276e451f4 Merge branch 'drop-ppc64le-bootloader-cruft' into 'main'
base/bootloader: Drop /usr/lib/ostree-boot/loader

See merge request fedora/bootc/base-images!86
2025-02-05 21:08:36 +00:00
Colin Walters 3ebf803f5f base/bootloader: Drop /usr/lib/ostree-boot/loader
A quick workaround for https://issues.redhat.com/browse/RHEL-78104
2025-02-05 15:16:59 -05:00
Joseph Marrero Corchado e62452d096 Merge branch 'kernel-install-more-places' into 'main'
kernel-install: Enable everywhere

See merge request fedora/bootc/base-images!84
2025-02-03 19:05:14 +00:00
Colin Walters d88208bfba kernel-install: Enable everywhere
Since we'll have the updated rpm-ostree and we believe this
works.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-02-03 09:05:06 -05:00
Valentin Rothberg 3374cd8842 Merge branch 'rpmstate' into 'main'
tier-0: Add /var/lib/rpm-state by default

Closes tracker#58

See merge request fedora/bootc/base-images!82
2025-01-22 15:50:56 +00:00
Colin Walters 92e7c1b2e1 tier-0: Add /var/lib/rpm-state by default
This empty directory is required by some RPM scripts. Historically
rpm-ostree's script invocations made this by default, but that
doesn't happen with direct rpm or dnf.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-01-22 10:24:48 -05:00
Colin Walters (Red Hat) 9bc06392c3 Merge branch 'kernel-install' into 'main'
tier-0: add kernel-install integration config

See merge request fedora/bootc/base-images!62
2025-01-21 22:51:34 +00:00
Joseph Marrero Corchado 7e65f01306 Containerfile: use rawhide as builder to get the latest rpm-ostree 2025-01-21 15:53:14 -05:00
Joseph Marrero Corchado 1003402e6f tier-0: add kernel-install integration config
This MR adds two configurations to enable kernel-install integration,
this will enable using dnf or rpm to install kernels.

- /usr/lib/kernel/install.conf: enables the hook that tells kernel-install
to defer the logic to rpm-ostree, this currently only on f42
- dnf.conf: ensures dnf only keeps one kernel package
2025-01-21 15:19:41 -05:00
Colin Walters (Red Hat) 37900787f1 Merge branch 'refactor-postprocess-conf' into 'main'
Split out postprocess-conf.yaml

See merge request fedora/bootc/base-images!76
2025-01-21 15:26:47 +00:00
Colin Walters (Red Hat) 22527b5f13 Merge branch 'misc' into 'main'
Drop kernel-rt.yaml

See merge request fedora/bootc/base-images!75
2025-01-21 15:26:08 +00:00
Colin Walters (Red Hat) 93c50b4806 Merge branch 'dusty-bin-zipl' into 'main'
tier-0: use s390utils-core instead of /usr/sbin/zipl

See merge request fedora/bootc/base-images!80
2025-01-21 13:36:45 +00:00
Dusty Mabe c51559b7eb
tier-0: use s390utils-core instead of /usr/sbin/zipl
The sbin/bin merge happened in Fedora so it's now /usr/bin/zipl
in rawhide. While we're in here just name the package now since
the transient issue where it was coming from two different
packages upstream and downstream has settled. We can use s390utils-core
everywhere.
2025-01-21 08:18:54 -05:00
Colin Walters (Red Hat) 578e95fe81 Merge branch 'condition-growpart' into 'main'
growpart: Add `ConditionPathExists=/usr/bin/growpart`

See merge request fedora/bootc/base-images!79
2025-01-14 15:49:13 +00:00
Colin Walters (Red Hat) 9e300fb68f Merge branch 'readd-dnf' into 'main'
Revert "tier-0: Drop dnf"

See merge request fedora/bootc/base-images!78
2025-01-14 15:29:32 +00:00
Colin Walters 06fddc9007 growpart: Add `ConditionPathExists=/usr/bin/growpart`
Hopefully eventually this gets rewritten in not-shell-script
and put somewhere saner. For now, avoid failing if people have
trimmed their images.

The growpart problem only comes with bootc-image-builder and
cloud environments anyways, it's not something we hit with
Anaconda installs or `bootc install to-filesystem`, so we can
avoid this.

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

Signed-off-by: Colin Walters <walters@verbum.org>
2025-01-14 10:26:11 -05:00
Colin Walters 934570054e Revert "tier-0: Drop dnf"
This reverts commit d7142132b7.
2025-01-14 10:16:39 -05:00
Colin Walters (Red Hat) b44ea1ace5 Merge branch 'baseimage-split-build-prep2' into 'main'
tier-0: Drop dnf

See merge request fedora/bootc/base-images!77
2025-01-14 10:05:52 +00:00
Colin Walters d7142132b7 tier-0: Drop dnf
We will have a better way to make derived container images
that doesn't require having dnf in the base image.

Prep for more minimal and custom images.

Signed-off-by: Colin Walters <walters@verbum.org>
2025-01-13 10:01:02 -05:00
Colin Walters 535cea4155 Split out postprocess-conf.yaml
Prep for working on custom base images. We want to support
operating on rootfs that may not have been generated by
rpm-ostree.

Split this out as something that can gets passed separately
to `rpm-ostree compose postprocess/commit`.
2025-01-13 09:21:26 -05:00
Colin Walters 444acb374b Drop kernel-rt.yaml
It's unused right now and we are going to replace it with better
mechanisms.
2025-01-13 08:31:35 -05:00
Micah Abbott edac3c53ca Merge branch 'more-docs' into 'main'
README.md: Slightly more docs for tiers

See merge request fedora/bootc/base-images!72
2025-01-09 21:03:02 +00:00
Valentin Rothberg 461786bc6a Merge branch 'drop-unused-file' into 'main'
tier-0: Drop unused bootc-config.yaml

See merge request fedora/bootc/base-images!73
2025-01-06 10:37:11 +00:00
Colin Walters 7369824a54 tier-0: Drop unused bootc-config.yaml
This file went empty a while ago when we moved the default
filesystem bits to the centos-stream image.
2025-01-03 16:11:15 -05:00
Colin Walters b991db43cb README.md: Slightly more docs for tiers
Explain that we aren't shipping anything but tier-1, link
to the custom base image work.
2024-12-20 15:50:40 -05:00
Colin Walters (Red Hat) cf1cab8b60 Merge branch 'pr/cleanup-treefile-hacks' into 'main'
Containerfile: clean up temporary hack for `--from` handling

See merge request fedora/bootc/base-images!64
2024-12-17 20:15:28 +00:00
Colin Walters (Red Hat) 58ba425a83 Merge branch 'var-tmp' into 'main'
Add /var/run -> /run by default

Closes #28

See merge request fedora/bootc/base-images!71
2024-12-17 20:14:20 +00:00
Colin Walters 279b050acb Create var/run -> ../run by default
Signed-off-by: Colin Walters <walters@verbum.org>
2024-12-13 09:17:41 -05:00
Colin Walters 7d5a0646a5 Update to 2024 edition
Prep for using finalize.d, but this is also just
a minor cleanup.
2024-12-13 09:17:41 -05:00
Colin Walters (Red Hat) 7530b75489 Merge branch 'main' into 'main'
Add crun to tier-x manifest

See merge request fedora/bootc/base-images!65
2024-11-22 20:16:47 +00:00
Aashish Radhakrishnan 2906394fba Add crun to tier-x manifest
The crun package was excluded from s390x and ppc64le rawhide builds due to
differing dependencies across architectures. This caused kola tests to
fail as the crun was missing. We are adding crun explicitly to the tier-x
manifest in the base images to ensure it is included in all architectures
2024-11-22 14:42:25 -05:00
Colin Walters (Red Hat) 7b7c32b015 Merge branch 'pr/fedora-version' into 'main'
Maintain all Fedora versions in main branch; make container-native flow `--from` API work

See merge request fedora/bootc/base-images!63
2024-10-24 19:04:20 +00:00
Jonathan Lebon 44258fdde4
Containerfile: clean up temporary hack for `--from` handling
We have new enough rpm-ostree in Fedora for this now.
2024-10-23 15:35:28 -04:00
Jonathan Lebon 908c347bb9
Containerfile: add temporary hack for `--from` handling
Using `--from` to set the target releasever doesn't work yet because we
_need_ to set the `releasever` field since the repo files reference it.
There's a pending rpm-ostree PR to fix this but for now hack around it
by manually injecting the necessary variables in the treefile.
2024-10-23 15:35:00 -04:00
Jonathan Lebon 6315275af7
Remove releasever from manifests; add pungi treefile stubs
As agreed in https://gitlab.com/fedora/bootc/tracker/-/issues/39, we're
going to be maintaining the treefile for all Fedora versions in the
`main` branch. Accordingly stop hardcoding releasevers and repos in
the treefiles.

But for now, we're still building the official image in pungi using the
non-container-native path, so add compatibility stubs to not break it.

Coincidentally, this doubles down on the proposed API to build the base
images for different Fedora versions using the `--from` switch. Document
this in the README. But note this doesn't work yet because nothing is
telling rpm-ostree which repos to use or what the releasever should be.
2024-10-23 15:27:50 -04:00
Jonathan Lebon 0980197ad9
Containerfile: split long RUN lines
They're getting quite long and hard to parse. Split for legibility.
2024-10-23 15:22:50 -04:00
Jonathan Lebon 230c105895 Merge branch 'drop-bib' into 'main'
containerfile: Drop use of bootc-image-builder

See merge request fedora/bootc/base-images!58
2024-10-04 12:04:32 +00:00
Colin Walters b22d3422f4 containerfile: Drop use of bootc-image-builder
This just adds confusion in the end. Switch to bootstrapping
from the app image.
2024-10-03 16:28:49 -04:00
Colin Walters (Red Hat) c758998b0d Merge branch 'remove_gdisk' into 'main'
tier-0: remove gdisk and bootc has Rust create instead

See merge request fedora/bootc/base-images!43
2024-09-30 14:57:17 +00:00
Xiaofeng Wang 128daa662c tier-0: remove gdisk and bootc has Rust create instead
bootc has a Rust create https://github.com/containers/bootc/pull/775
to replace gdisk which has been removed by c10s and RHEL-10

Signed-off-by: Xiaofeng Wang <xiaofwan@redhat.com>
2024-09-30 22:07:51 +08:00
Colin Walters (Red Hat) 1eb031710f Merge branch 'main' into 'main'
passwd: update home dir for 'sssd' service user

See merge request fedora/bootc/base-images!57
2024-09-30 13:57:52 +00:00
Alexey Tikhonov b9593426a8 passwd: update home dir for 'sssd' service user
Starting sssd-2.10 that is shipped in F41+ and C10S,
home dir for 'sssd' service user is set to '/run/sssd'

Take a note that it's not the case yet for sssd-2.9-
that is currently shipped in C9S.
2024-09-27 17:48:07 +02:00
Colin Walters (Red Hat) 8e6ef05eb2 Merge branch 'pr/dnf-tweak' into 'main'
tier-0: pull in dnf using `/usr/bin/dnf` instead

See merge request fedora/bootc/base-images!56
2024-09-23 16:47:26 +00:00
Jonathan Lebon 4511546f08
tier-0: pull in dnf using `/usr/bin/dnf` instead
dnf5 is currently in Fedora only, but this manifest is shared with
CentOS Stream and RHEL. Instead of requesting `dnf5`, request
`/usr/bin/dnf` instead. This will pull in dnf5 on Fedora, but dnf(4)
elsewhere.

We should be able to simplify this back to just `dnf` eventually once
dnf v4 is out of Fedora.
2024-09-23 10:45:38 -04:00
Jonathan Lebon 92172d2d56 Merge branch 'pr/coreutils' into 'main'
tier-0/x: various tweaks

See merge request fedora/bootc/base-images!54
2024-09-20 19:06:53 +00:00
Colin Walters (Red Hat) 8a37080d85 Merge branch 'pr/fix-sed' into 'main'
tier-0: fix sed invocation

See merge request fedora/bootc/base-images!55
2024-09-20 18:31:02 +00:00
Jonathan Lebon cbd531bc53
tier-0: fix sed invocation
Classic sed invocation footgun. Doing `-ie` actually binds the `e` to
`-i` which tells sed to backup the original with a suffix of `e`.

This gets rid of `/usr/lib/tmpfiles.d/provision.confe`.

systemd-tmpfiles ignores files that don't have `.conf` so the stray file
had no effect.
2024-09-20 12:56:50 -04:00
Jonathan Lebon 62be40d8b4
tier-0: drop `mkdir -p /run` workaround
This has long been unnecessary.

See also: 029d320bfe
2024-09-20 11:16:02 -04:00
Jonathan Lebon b9fdc53e87
tier-x: explicitly list podman, skopeo
They're such important tools to the experience, it's weird to leave it
as being it implied by bootc only.
2024-09-20 11:15:19 -04:00
Jonathan Lebon d6f00d618f
tier-0: explicitly list coreutils
This currently is already in tier-0, but it feels odd to not explicitly
list it. Noticed while comparing to FCOS manifests, which does list it.
2024-09-20 11:05:10 -04:00
Colin Walters (Red Hat) 243b2c03bc Merge branch 'more-doc-tiers' into 'main'
README.md: Clarify a few things

See merge request fedora/bootc/base-images!52
2024-09-18 20:59:16 +00:00
Colin Walters (Red Hat) 2d19347f1b Merge branch 'pr/tier-1-inherit' into 'main'
tier-1: inherit from tier-x

See merge request fedora/bootc/base-images!53
2024-09-18 20:43:44 +00:00
Jonathan Lebon 83542ad32e
tier-1: drop a bunch of redundant packages
These are all included in tier-x or tier-0 already.

Though it does drop bsdtar. This isn't really well-known enough to
belong here. It's included in FCOS because we use it in our scripts,
but it's not a requirement for any tier-1 logic AFAIK and I would be
surprised if users expected it there.
2024-09-18 15:32:40 -04:00
Jonathan Lebon 034cf4bf28
tier-1: inherit from tier-x
We want tier-1 to be another consumer of tier-x, kind of like its own
top-level Fedora variant. That way, tier-1 is now a strict superset of
tier-x, just like the other variants.
2024-09-18 15:16:46 -04:00
Jonathan Lebon d65c8fa91e
tier-x: drop dnsmasq and slirp4netns
These packages are in all the variants, but not tier-1. We want tier-1
to inherit from tier-x, so remove them.
2024-09-18 14:46:27 -04:00
Colin Walters e5d5452ace README.md: Clarify a few things
- Make very clear that tier-1 is the default image
- Link to our issue tracker for supportable base image customization
- Note use of `--build-arg=MANIFEST`.

etc.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-09-18 09:11:05 -04:00
Colin Walters (Red Hat) 97e5c775fd Merge branch 'pr/ci-tier-x' into 'main'
CI: also build tier-0 and tier-x

See merge request fedora/bootc/base-images!50
2024-09-18 12:38:55 +00:00
Jonathan Lebon 2c3aea7d8e
CI: also build tier-0 and tier-x
Let's at least verify tier-0 and tier-x can build fine. Ideally in the
future we actually run some tests on the resulting image, though let's
wait until this CI is migrated to Konflux before doing that.
2024-09-17 22:35:11 -04:00
Colin Walters (Red Hat) 9e2e845372 Merge branch 'pr/tier-x' into 'main'
tier-x: new tier for cross-variant collaboration

See merge request fedora/bootc/base-images!48
2024-09-17 20:07:19 +00:00
Colin Walters (Red Hat) 39240d2848 Merge branch 'pr/iptables-nft' into 'main'
Drop iptables-legacy from tier-0, drop iptables-legacy alternatives hack from tier-1

See merge request fedora/bootc/base-images!46
2024-09-17 18:14:41 +00:00
Colin Walters (Red Hat) e6c505b14a Merge branch 'pr/autoupdates-tier-0' into 'main'
Move automatic updates by default from tier-0 to tier-1

See merge request fedora/bootc/base-images!49
2024-09-17 18:11:03 +00:00
Jonathan Lebon e89c5542ea
Move automatic updates by default from tier-0 to tier-1
tier-1 is more opinionated and automatic updates by default is
definitely a very strong opinion.

This makes it easier to inherit from tier-0 without having to undo that
knob if it's not desirable.

Prep for !48.
2024-09-17 13:56:47 -04:00
Jonathan Lebon eecff86d81
README: add "Tiers" section
Describe each tier briefly. Link to the docs for more information.
Mention that changes to tier-0 and tier-x needs acknowledgement from
each variant.
2024-09-16 16:52:41 -04:00
Jonathan Lebon 035de97f61
tier-x: new tier for cross-variant collaboration
One of the main goals of the bootable containers initiative in Fedora
is to have all the image-based Fedora variants share a common base onto
which we can maintain CI, develop features, fix bugs, etc...

While I believe in the long-term, we should try to have literal
derivation from a base image, this is not currently desirable for
various reasons. Instead, for now we can share things at the manifest
level by having this repo be a submodule in the every variant's repo.

Currently, tier-0 is much smaller than it needs to be for sharing
purposes. Crucially, it doesn't include NetworkManager. At the same
time, tier-1 is much too large as a shared target. As a first step, we
should try to match variants where they currently are and not force them
to ship many more packages than they currently do.

For this purpose, I'm proposing a new tier: tier-x. The "x" stands for
"cross-variant". This tier is composed of tier-0 + a set of packages
that is currently in common to all the involved variants. The most
notable additions are NetworkManager, openssh, and rpm-ostree.

The intention then is to have every Fedora variant `include` this tier
and have it become the point of collaboration between variants. E.g. new
packages/bug fixes/temporary workarounds relevant to all variants likely
should land in this tier instead of in the downstreams. CI of course
will also be an important discussion point.
2024-09-16 16:52:36 -04:00
Colin Walters (Red Hat) 9ce9d35a61 Merge branch 'pr/drop-dbus' into 'main'
tier-0: drop dbus-common remove-from-packages

See merge request fedora/bootc/base-images!47
2024-09-16 20:51:41 +00:00
Jonathan Lebon de0ff17f75
tier-0: drop dbus-common remove-from-packages
This is no longer needed. The package has been fixed for a while.

See also: f7aaeb3d6c
2024-09-16 16:20:11 -04:00
Jonathan Lebon f4eba96aef
tier-1: drop iptables alternatives hack
We only ship iptables-nft, so there's no need to explicitly
override the symlinks anymore. To enforce this remains the case, add
`iptables-legacy` to the exclusion list.
2024-09-16 16:06:13 -04:00
Jonathan Lebon 55609b1d19
tier-0: pull in iptables-nft instead of iptables-legacy
As per the comment, currently we're pulling in iptables-legacy because
for some reason the `iptables` Provides is fulfilled by that instead of
iptables-nft. Explicitly name the latter to avoid this.

Note in tier-1 we do pull iptables-nft only because it's explicitly
named there.
2024-09-16 16:06:13 -04:00
Colin Walters (Red Hat) a3629ba21a Merge branch 'pr/tier-1-remove' into 'main'
tier-1: drop unused kdump-aarch64-aws-workaround.yaml and redundant tier-0 symlinks

See merge request fedora/bootc/base-images!44
2024-09-16 13:48:22 +00:00
Colin Walters (Red Hat) 864ecc4aa0 Merge branch 'pr/dnf5' into 'main'
tier-0: pull in dnf5, not dnf

See merge request fedora/bootc/base-images!45
2024-09-16 13:37:16 +00:00
Jonathan Lebon 9410195760
tier-1: drop redundant tier-0 symlinks
Instead of re-symlinking every tier-0 manifest, just include the tier-0
manifest directly. That way, rpm-ostree will already know to resolve its
manifests within the tier-0 directory.
2024-09-16 09:18:05 -04:00
Jonathan Lebon 4e736cc6bb
tier-1: drop unused kdump-aarch64-aws-workaround.yaml
At least in this repo's history, this file doesn't appear to have ever
been used.
2024-09-16 09:17:23 -04:00
Jonathan Lebon a85de9b2e0
tier-0: pull in dnf5, not dnf
Currently, there is both dnf and dnf5 in Fedora. dnf5 provides `dnf`,
but matching a package name is stronger and so requesting `dnf` here
still pulls in the legacy one.

This notably drops out Python from tier 0.
2024-09-15 23:05:14 -04:00
Colin Walters (Red Hat) 684ea928c2 Merge branch 'check-for-fedora' into 'main'
tier-0/initramfs.yaml: add conditional for 41 when adding systemd-cryptsetup

See merge request fedora/bootc/base-images!42
2024-09-10 19:08:44 +00:00
Joseph Marrero Corchado 17bb5e4128 Revert "tier-0: add systemd-cryptsetup to initrd dracut modules"
This reverts commit 7109132dd6.
2024-09-10 14:32:13 -04:00
Colin Walters (Red Hat) 166df9118a Merge branch 'kdump-args' into 'main'
tier-0: Add /usr/lib/{passwd,group} to dracut

See merge request fedora/bootc/base-images!32
2024-09-10 16:43:13 +00:00
Joseph Marrero e01020ddc2 tier-0: Add /usr/lib/{passwd,group} to dracut
On image mode systems we use nss-altfiles this,
change makes sure dracut uses them. This fix also
fixes kdump writing over NFS.
2024-09-06 22:56:57 -04:00
Colin Walters (Red Hat) 8b551127e6 Merge branch 'revert-gdisk' into 'main'
Revert "bootc: Drop gdisk"

See merge request fedora/bootc/base-images!41
2024-09-03 13:00:02 +00:00
Colin Walters 0e9bf457eb Revert "bootc: Drop gdisk"
This reverts commit 5d8e7a5f6b.

Because I was confused, bootc does require it right now.
2024-09-03 08:48:51 -04:00
Colin Walters (Red Hat) 3f6db2ef2e Merge branch 'drop-gdisk' into 'main'
bootc: Drop gdisk

See merge request fedora/bootc/base-images!39
2024-08-30 13:36:06 +00:00
Colin Walters 5d8e7a5f6b bootc: Drop gdisk
See https://gitlab.com/redhat/centos-stream/containers/bootc/-/merge_requests/198
and https://issues.redhat.com/browse/RHELMISC-6651 etc.
2024-08-30 09:02:39 -04:00
Colin Walters (Red Hat) 8f5208a42c Merge branch 'tier0-cryptsetup' into 'main'
tier-0: add systemd-cryptsetup to initrd dracut modules

See merge request fedora/bootc/base-images!37
2024-08-29 13:53:20 +00:00
Micah Abbott 7109132dd6 tier-0: add systemd-cryptsetup to initrd dracut modules
Fedora 41 appears to require the inclusion of `systemd-cryptsetup` in
the initrd in order to unlock LUKS devices at boot.

See: #17

Signed-off-by: Micah Abbott <miabbott@redhat.com>
2024-08-29 09:23:25 -04:00
Colin Walters (Red Hat) 4a4e727254 Merge branch 'switch-add-dracutmodules' into 'main'
initramfs: Switch to `add_dracutmodules`

See merge request fedora/bootc/base-images!36
2024-08-22 14:37:25 +00:00
Colin Walters 0da319f566 initramfs: Switch to `add_dracutmodules`
Per discussion in https://github.com/rhkdump/kdump-utils/pull/29#issuecomment-2303932537

This would have avoided kdump breakage, and the original motivation
of avoiding dracut error spam from missing things is gone now
that Fedora is using dracut-ng which has
d73cc24e11
2024-08-22 09:38:07 -04:00
Colin Walters (Red Hat) 1350cb68ca Merge branch 'crypto-scripts' into 'main'
system-config: Add crypto-policies-scripts

See merge request fedora/bootc/base-images!34
2024-08-21 15:04:43 +00:00
Liora Milbaum ec8fb6085c Update renovate.json 2024-08-21 07:22:28 +00:00
Colin Walters ee7ceb348c system-config: Add crypto-policies-scripts
Addresses https://gitlab.com/fedora/bootc/examples/-/issues/14

Signed-off-by: Colin Walters <walters@verbum.org>
2024-08-13 10:33:31 -04:00
51 changed files with 285 additions and 238 deletions

View File

@ -4,8 +4,11 @@ include:
build-image:
extends: .build-image
parallel:
matrix:
- TIER: [tier-0, tier-1, tier-x]
variables:
EXTRA_ARGS: "--security-opt=label=disable --cap-add=all"
EXTRA_ARGS: "--security-opt=label=disable --cap-add=all --build-arg MANIFEST=fedora-$TIER.yaml"
rules:
- if: $CI_PROJECT_NAMESPACE != "fedora/bootc"
when: never

View File

@ -20,12 +20,14 @@
#
# # Why does this build process require additional privileges?
#
# Because it's generating a base image and uses containerbuildcontextization features itself.
# Because it's generating a base image and uses containerization features itself.
# In the future some of this can be lifted.
FROM quay.io/fedora/fedora:rawhide as repos
FROM quay.io/fedora/fedora:41 as repos
FROM quay.io/centos-bootc/bootc-image-builder:latest as builder
# BOOTSTRAPPING: This can be any image that has rpm-ostree and selinux-policy-targeted.
FROM quay.io/fedora/fedora:41 as builder
RUN dnf -y install rpm-ostree selinux-policy-targeted
ARG MANIFEST=fedora-bootc.yaml
COPY --from=repos /etc/dnf/vars /etc/dnf/vars
COPY --from=repos /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-* /etc/pki/rpm-gpg
@ -37,10 +39,16 @@ COPY . /src
WORKDIR /src
RUN rm -vf /src/*.repo
COPY --from=repos /etc/yum.repos.d/*.repo /src
RUN --mount=type=cache,target=/workdir --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rpm-ostree compose image \
--image-config fedora-bootc-config.json --cachedir=/workdir --format=ociarchive --initialize ${MANIFEST} /buildcontext/out.ociarchive
RUN --mount=type=cache,target=/workdir \
--mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared \
--mount=type=bind,from=repos,src=/,dst=/repos \
rpm-ostree compose image --image-config fedora-bootc-config.json \
--cachedir=/workdir --format=ociarchive --initialize ${MANIFEST} \
--source-root=/repos /buildcontext/out.ociarchive
FROM oci-archive:./out.ociarchive
# Need to reference builder here to force ordering. But since we have to run
# something anyway, we might as well cleanup after ourselves.
RUN --mount=type=bind,from=builder,src=.,target=/var/tmp --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rm /buildcontext/out.ociarchive
RUN --mount=type=bind,from=builder,src=.,target=/var/tmp \
--mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared \
rm /buildcontext/out.ociarchive

View File

@ -9,25 +9,72 @@ been extremely successful. This project aims to apply the same technique for
bootable host systems - using standard OCI/Docker containers as a transport and
delivery format for base operating system updates.
## Building
## Building images
First, the expectation is that most users will want to build *layered* images
on top of the official base images. See the documentation[5] for more info.
The current default user experience is to build *layered* images on top of the official
binary base images produced and tested by this project. See the documentation[5] for more info.
Building the images in this repo can be done with `podman build` as with any
other application image (note that building with `docker` is not currently
supported). You need to enable some privileges for technical reasons.
You can build custom base images by forking this repository; however,
https://gitlab.com/fedora/bootc/tracker/-/issues/32 tracks a more supportable
mechanism that is not simply forking. For more information see[6].
## Build process
Building the images in this repo can be done with `podman build`, but
note the build process uses a special podman-ecosystem specific mechanism
to create fully custom images while inside a `Containerfile`.
You need to enable some privileges as nested containerization is required.
```
podman build --security-opt=label=disable --cap-add=all \
--device /dev/fuse -t localhost/fedora-bootc .
```
See the `Containerfile` for more details.
See the `Containerfile` for more details. This builds the default `tier-1` image.
## Fedora versions
By default, the base images are built for Fedora rawhide. To build against a
different Fedora version, you can override the `FROM` image used to obtain the
Fedora repos and dnf variables. E.g.:
```
podman build --from quay.io/fedora/fedora:41 ...
```
### Deriving
You are of course also free to fork, customize, and build base images yourself.
See this page[6] of the documentation for more information.
## Tiers
At the current time, there is just one reference base image published
to the registry. Internally the content set is split up somewhat
into "tiers", but this is an internal implementation detail and may change
at any time.
It is planned to rework and improve this in the future, especially
to support smaller custom images. For more on this, see
[this tracker issue](https://gitlab.com/fedora/bootc/tracker/-/issues/32).
- **tier-1**: This image is the default, what is published as
https://quay.io/repository/fedora/fedora-bootc
- **tier-0**: This content set is more of a convenient centralization point for CI
and curation around a package set that we can all agree is the rough minimum
necessary for a usable system. It's not meant to be used as is, but layered
upon.
- **tier-x**: This content set is the shared base used by all image-based
Fedora variants (IoT, Atomic Desktops, and CoreOS).
Changes to this tier may be done without accounting for external users.
To build this, pass `--build-arg=MANIFEST=fedora-tier-x.yaml` to the build
command above.
**tier-1** inherits from **tier-x** and **tier-x** in turn inherit from **tier-0**.
All non-trivial changes to **tier-0** and **tier-x** should be ACKed by at least
one stakeholder of each Fedora variant WGs.
## More information
Documentation: <https://docs.fedoraproject.org/en-US/bootc/>

5
build.sh Normal file
View File

@ -0,0 +1,5 @@
podman build \
--security-opt=label=disable \
--cap-add=all \
--device /dev/fuse \
-t localhost/fedora-bootc .

7
fedora-40.yaml Normal file
View File

@ -0,0 +1,7 @@
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
# will be removed in the future.
releasever: 40
repos:
- fedora
- fedora-updates
include: fedora-bootc.yaml

7
fedora-41.yaml Normal file
View File

@ -0,0 +1,7 @@
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
# will be removed in the future.
releasever: 41
repos:
- fedora
- fedora-updates
include: fedora-bootc.yaml

6
fedora-42.yaml Normal file
View File

@ -0,0 +1,6 @@
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
# will be removed in the future.
releasever: 42
repos:
- fedora-devel
include: fedora-bootc.yaml

View File

@ -1,7 +1,3 @@
releasever: rawhide
repos:
- rawhide
metadata:
name: fedora-boot-tier1
summary: Fedora Bootable Tier 1

View File

@ -5,3 +5,5 @@ variables:
packages:
# https://gitlab.com/fedora/bootc/base-images/-/issues/12
- fedora-repos-archive
# Not in RHEL10
- systemd-resolved

6
fedora-rawhide.yaml Normal file
View File

@ -0,0 +1,6 @@
# NB: This treefile is used by the legacy pungi path only to build tier-1. It
# will be removed in the future.
releasever: rawhide
repos:
- fedora-rawhide
include: fedora-bootc.yaml

View File

@ -1,7 +1,3 @@
releasever: rawhide
repos:
- rawhide
metadata:
name: fedora-boot-tier0
summary: Fedora Bootable Tier 0

1
fedora-tier-1.yaml Symbolic link
View File

@ -0,0 +1 @@
fedora-bootc.yaml

8
fedora-tier-x.yaml Normal file
View File

@ -0,0 +1,8 @@
metadata:
name: fedora-boot-tier-x
summary: Fedora Bootable Tier X
include:
- fedora-generic.yaml
- tier-x/manifest.yaml
- tier-x/kernel.yaml

View File

@ -3,12 +3,17 @@
"extends": [
"github>platform-engineering-org/.github"
],
"baseBranches": ["main", "f40"],
"baseBranches": ["main", "f40", "f41"],
"packageRules": [
{
"matchPackageNames": ["quay.io/fedora/fedora"],
"allowedVersions": "=40",
"matchBaseBranches": ["f40"]
},
{
"matchPackageNames": ["quay.io/fedora/fedora"],
"allowedVersions": "=41",
"matchBaseBranches": ["f41"]
}
]
}

View File

@ -1,9 +0,0 @@
# Enable automatic updates by default
postprocess:
- |
#!/usr/bin/env bash
set -euo pipefail
target=/usr/lib/systemd/system/default.target.wants
mkdir -p $target
set -x
ln -s ../bootc-fetch-apply-updates.timer $target

View File

@ -23,7 +23,7 @@ postprocess:
# tmpfiles.d unit for `/var/roothome` is fine, but this actually doesn't
# work if we want to use tmpfiles.d to write to `/root/.ssh` because
# tmpfiles gives up on that before getting to `/var/roothome`.
sed -ie 's, /root, /var/roothome,' /usr/lib/tmpfiles.d/provision.conf
sed -i -e 's, /root, /var/roothome,' /usr/lib/tmpfiles.d/provision.conf
# Because /var/roothome is also defined in rpm-ostree-0-integration.conf
# we need to delete /var/roothome
sed -ie '/^d- \/var\/roothome /d' /usr/lib/tmpfiles.d/provision.conf
sed -i -e '/^d- \/var\/roothome /d' /usr/lib/tmpfiles.d/provision.conf

View File

@ -2,8 +2,13 @@
packages:
- systemd
- bootc
# Required by bootc install today, though we'll likely switch bootc to use a Rust crate instead of sgdisk
- gdisk xfsprogs e2fsprogs dosfstools
# bootc pulls in podman, which pulls in containers-common, which wants
# `iptables`. Currently that pulls in iptables-legacy. Let's explicitly name
# iptables-nft instead to satisfy it.
- iptables-nft
# Required by bootc install, sgdisk has been replaced by Rust crate
# in bootc https://github.com/containers/bootc/pull/775
- xfsprogs e2fsprogs dosfstools
exclude-packages:
# Exclude kernel-debug-core to make sure that it doesn't somehow get

View File

@ -9,9 +9,8 @@ packages-aarch64:
packages-ppc64le:
- grub2 ostree-grub2
packages-s390x:
# On Fedora, this is provided by s390utils-core. on RHEL, this is for now
# provided by s390utils-base, but soon will be -core too.
- /usr/sbin/zipl
# For zipl
- s390utils-core
packages-x86_64:
- grub2 grub2-efi-x64 efibootmgr shim
- microcode_ctl
@ -25,7 +24,10 @@ postprocess:
- |
#!/bin/bash
set -xeuo pipefail
# Until we have https://github.com/coreos/rpm-ostree/pull/2275
mkdir -p /run
# Transforms /usr/lib/ostree-boot into a bootupd-compatible update payload
/usr/bin/bootupctl backend generate-update-metadata
- |
#!/bin/bash
# Workaround for https://issues.redhat.com/browse/RHEL-78104
set -xeuo pipefail
rm -vrf /usr/lib/ostree-boot/loader

6
tier-0/finalize.d/01-var.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
# https://gitlab.com/fedora/bootc/base-images/-/issues/28
set -xeuo pipefail
ln -s ../run var/run
# https://gitlab.com/fedora/bootc/tracker/-/issues/58
mkdir -p var/lib/rpm-state

View File

@ -6,13 +6,19 @@ postprocess:
cat > /usr/lib/dracut/dracut.conf.d/20-bootc-base.conf << 'EOF'
# We want a generic image; hostonly makes no sense as part of a server side build
hostonly=no
dracutmodules+=" kernel-modules dracut-systemd systemd-initrd base ostree "
add_dracutmodules+=" kernel-modules dracut-systemd systemd-initrd base ostree "
EOF
cat > /usr/lib/dracut/dracut.conf.d/22-bootc-generic.conf << 'EOF'
# Extra modules that we want by default that are known to exist in the kernel
dracutmodules+=" virtiofs "
add_dracutmodules+=" virtiofs "
EOF
cat > /usr/lib/dracut/dracut.conf.d/49-bootc-tpm2-tss.conf << 'EOF'
# We want this for systemd-cryptsetup tpm2 locking
dracutmodules+=" tpm2-tss "
add_dracutmodules+=" tpm2-tss "
EOF
cat > /usr/lib/dracut/dracut.conf.d/59-altfiles.conf << 'EOF'
# https://issues.redhat.com/browse/RHEL-49590
# On image mode systems we use nss-altfiles for passwd and group,
# this makes sure dracut uses them which also fixes kdump writing to NFS.
install_items+=" /usr/lib/passwd /usr/lib/group "
EOF

View File

@ -0,0 +1,21 @@
# Configuration to enable kernel-install integration
postprocess:
- |
#!/usr/bin/env bash
set -xeuo pipefail
source /usr/lib/os-release
echo -e "# kernel-install will not try to run dracut and allow rpm-ostree to\n\
# take over. Rpm-ostree will use this to know that it is responsible\n\
# to run dracut and ensure that there is only one kernel in the image\n\
layout=ostree" | tee /usr/lib/kernel/install.conf > /dev/null
# By default dnf keeps multiple versions of the kernel, with this
# configuration we tell dnf to treat the kernel as everything else.
# https://dnf.readthedocs.io/en/latest/conf_ref.html#main-options
# Let's add the config to a distribution configuration file if dnf5
# is used, we append to /etc/dnf/dnf.conf if not.
if [ -d "/usr/share/dnf5/libdnf.conf.d/" ]; then
echo -e "[main]\ninstallonlypkgs=''" >> /usr/share/dnf5/libdnf.conf.d/20-ostree-installonlypkgs.conf
else
echo "installonlypkgs=''" >> /etc/dnf/dnf.conf
fi

View File

@ -1,10 +0,0 @@
repos:
- rt
- nfv
# Enable the "realtime" AKA soft-realtime AKA latency-optimized kernel.
packages:
- kernel-rt-core kernel-rt-modules kernel-rt-modules-extra kernel-rt-kvm
exclude-packages:
- kernel-rt-debug-core

View File

@ -1,64 +1,35 @@
edition: "2024"
# Modern defaults we want
boot-location: modules
tmp-is-dir: true
# https://github.com/CentOS/centos-bootc/issues/167
machineid-compat: true
# Be minimal
recommends: false
ignore-removed-users:
- root
ignore-removed-groups:
- root
etc-group-members:
- wheel
- sudo
- systemd-journal
- adm
# Default to `bash` in our container, the same as other containers we ship.
container-cmd:
- /sbin/init
# Note that the default for c9s+ is sqlite; we can't rely on rpm being
# in the target (it isn't in tier-0!) so turn this to host here. This
# does break the "hermetic build" aspect a bit. Maybe eventually
# what we should do is special case this and actually install RPM temporarily
# and then remove it...
rpmdb: host
check-passwd:
type: "file"
filename: "passwd"
check-groups:
type: "file"
filename: "group"
automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
mutate-os-release: "${releasever}"
remove-from-packages:
# Generally we expect other tools to do this (e.g. Ignition or cloud-init)
- [systemd, /usr/lib/systemd/system/sysinit.target.wants/systemd-firstboot.service]
# We don't want auto-generated mount units. See also
# https://github.com/systemd/systemd/issues/13099
- [systemd-udev, /usr/lib/systemd/system-generators/systemd-gpt-auto-generator]
# Drop some buggy sysusers fragments which do not match static IDs allocation:
# https://bugzilla.redhat.com/show_bug.cgi?id=2105177
- [dbus-common, /usr/lib/sysusers.d/dbus.conf]
include:
- postprocess-conf.yaml
- bootc.yaml
- bootupd.yaml
- ostree.yaml
- initramfs.yaml
- autoupdates.yaml
- basic-fixes.yaml
- kernel-install.yaml
packages:
# needed for building derived container images
- dnf
# this is implied by dependencies but let's make it explicit
- coreutils
# We need dnf for building derived container images. In Fedora, this pulls
# in dnf5. In CentOS/RHEL, this pulls in dnf(4). We can simplify this back to
# just `dnf` once the `dnf` package is retired from Fedora.
- /usr/bin/dnf
# Even in tier-0, we have this. If you don't want SELinux today, you'll need
# to build a custom image.
- selinux-policy-targeted

View File

@ -1,9 +1,6 @@
packages:
- ostree nss-altfiles
# We want content lifecycled with the image
opt-usrlocal: "root"
postprocess:
# Set up default root config
- |

View File

@ -23,7 +23,7 @@ rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/usr/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/usr/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/usr/sbin/nologin
sssd:x:995:993:User for sssd:/:/usr/sbin/nologin
sssd:x:995:993:User for sssd:/run/sssd:/usr/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
systemd-bus-proxy:x:989:988:systemd Bus Proxy:/:/usr/sbin/nologin
systemd-network:x:991:990:systemd Network Management:/:/usr/sbin/nologin

View File

@ -0,0 +1,34 @@
# This file configures things relevant to `rpm-ostree compose postprocess`.
# We want content lifecycled with the image
opt-usrlocal: "root"
# https://github.com/CentOS/centos-bootc/issues/167
machineid-compat: true
# Note that the default for c9s+ is sqlite; we can't rely on rpm being
# in the target (it isn't in tier-0!) so turn this to host here. This
# does break the "hermetic build" aspect a bit. Maybe eventually
# what we should do is special case this and actually install RPM temporarily
# and then remove it...
rpmdb: host
ignore-removed-users:
- root
ignore-removed-groups:
- root
etc-group-members:
- wheel
- sudo
- systemd-journal
- adm
check-passwd:
type: "file"
filename: "passwd"
check-groups:
type: "file"
filename: "group"
automatic-version-prefix: "${releasever}.<date:%Y%m%d>"
mutate-os-release: "${releasever}"

View File

@ -1 +0,0 @@
../tier-0/autoupdates.yaml

9
tier-1/autoupdates.yaml Normal file
View File

@ -0,0 +1,9 @@
# Enable automatic updates by default
postprocess:
- |
#!/usr/bin/env bash
set -euo pipefail
target=/usr/lib/systemd/system/default.target.wants
mkdir -p $target
set -x
ln -s ../bootc-fetch-apply-updates.timer $target

View File

@ -1 +0,0 @@
../tier-0/basic-fixes.yaml

View File

@ -1,8 +0,0 @@
packages:
- rpm-ostree nss-altfiles
exclude-packages:
# Exclude kernel-debug-core to make sure that it doesn't somehow get
# chosen as the package to satisfy the `kernel-core` dependency from
# the kernel package.
- kernel-debug-core

View File

@ -1 +0,0 @@
../tier-0/bootc-config.yaml

View File

@ -6,6 +6,8 @@ Documentation=https://gitlab.com/fedora/bootc/docs
ConditionVirtualization=vm
# This helps verify that we're running in a bootc/ostree based target.
ConditionPathIsMountPoint=/sysroot
# For someone making a smaller image, assume they have this handled.
ConditionPathExists=/usr/bin/growpart
# We want to run before any e.g. large container images might be pulled.
DefaultDependencies=no
Requires=sysinit.target

View File

@ -1 +0,0 @@
../tier-0/bootc.yaml

View File

@ -1 +0,0 @@
../tier-0/bootupd.yaml

View File

@ -1,41 +1,10 @@
# This file was forked/copied from Fedora CoreOS. TODO: resync
# once we have a good generic mechanism for sharing.
packages:
# Basic user tools
## jq - parsing/interacting with JSON data
- bash-completion
- coreutils
- file
- jq
- less
- sudo
- vim-minimal
# File compression/decompression
## bsdtar - dependency of 35coreos-live dracut module
- bsdtar
- bzip2
- gzip
- tar
- xz
- zstd
# Improved MOTD experience
- console-login-helper-messages-issuegen
- console-login-helper-messages-profile
# Additional file compression/decompression
- bzip2 zstd
# kdump support
# https://github.com/coreos/fedora-coreos-tracker/issues/622
- kexec-tools
# Remote Access
- openssh-clients openssh-server
# Container tooling
## crun recommends but doesn't require criu and criu-libs. We want them for
## checkpoint/restore. https://github.com/coreos/fedora-coreos-tracker/issues/1370
- crun criu criu-libs
- podman
- skopeo
- toolbox
# passt provides user-mode networking daemons for namespaces
- passt
# nvme-cli for managing nvme disks
- nvme-cli
# Used by admins interactively
- lsof

View File

@ -1,7 +0,0 @@
packages:
# linux-firmware now a recommends so let's explicitly include it
# https://gitlab.com/cki-project/kernel-ark/-/commit/32271d0cd9bd52d386eb35497c4876a8f041f70b
# https://src.fedoraproject.org/rpms/kernel/c/f55c3e9ed8605ff28cb9a922efbab1055947e213?branch=rawhide
- linux-firmware
# If you're using linux-firmware, you probably also want fwupd
- fwupd

View File

@ -1,5 +0,0 @@
# Firmware updates
packages-aarch64:
- fwupd
packages-x86_64:
- fwupd

View File

@ -1 +0,0 @@
../tier-0/group

View File

@ -1 +0,0 @@
../tier-0/grub2-removals.yaml

View File

@ -4,5 +4,5 @@ postprocess:
#!/usr/bin/env bash
mkdir -p /usr/lib/dracut/dracut.conf.d
cat > /usr/lib/dracut/dracut.conf.d/30-bootc-tier-1.conf << 'EOF'
dracutmodules+=" lvm crypt fips "
add_dracutmodules+=" lvm crypt fips "
EOF

View File

@ -1 +0,0 @@
../tier-0/initramfs.yaml

View File

@ -1,12 +0,0 @@
# This file includes a fixup for kdump on aarch64 AWS instances.
# The issue seems specific to aarch64 AWS instances, but we'll go
# ahead and apply it across the board for aarch64, since that's
# the easiest thing to do. Hopefully the upstream issue will get
# resolved soon.
postprocess:
- |
#!/usr/bin/env bash
# Remove irqpoll from the list of KDUMP_COMMANDLINE_APPEND. This
# causes issues on aarch64 AWS instances.
# https://github.com/coreos/fedora-coreos-tracker/issues/1187
sed -i -e 's/irqpoll //' /etc/sysconfig/kdump

View File

@ -1 +0,0 @@
../tier-0/manifest.yaml

View File

@ -2,38 +2,21 @@
recommends: true
include:
- manifest-tier-0.yaml
- bootable-rpm-ostree.yaml
- podman.yaml
- firmware.yaml
- ../tier-x/manifest.yaml
- networking-tools.yaml
- system-configuration.yaml
- coreos-user-experience.yaml
- fwupd.yaml
- persistent-journal.yaml
- initramfs-full.yaml
- generic-growfs.yaml
packages:
# Include and set the default editor
- nano
# And we expect this in general
- vim-minimal
- nfs-utils
# Additional firewall support; we aren't including these in RHCOS or they
# don't exist in RHEL
- iptables-nft iptables-services
- iptables-services
- WALinuxAgent-udev
# Allow communication between sudo and SSSD
# for caching sudo rules by SSSD.
# https://github.com/coreos/fedora-coreos-tracker/issues/445
- libsss_sudo
# SSSD; we only ship a subset of the backends
- sssd-client sssd-ad sssd-ipa sssd-krb5 sssd-ldap
# Used by admins interactively
- attr
- openssl
- lsof
# Provides terminal tools like clear, reset, tput, and tset
- ncurses
# i18n
@ -41,21 +24,10 @@ packages:
# zram-generator (but not zram-generator-defaults) for F33 change
# https://github.com/coreos/fedora-coreos-tracker/issues/509
- zram-generator
# resolved was broken out to its own package in rawhide/f35
- systemd-resolved
# This one is in Python so isn't in FCOS, but we can safely add it here.
- sos
# These are random architecture-specific packages
packages-x86_64:
- irqbalance
packages-ppc64le:
- irqbalance
- librtas
- powerpc-utils-core
- ppc64-diag-rtas
packages-aarch64:
- irqbalance
packages-x86_64: []
packages-aarch64: []
postprocess:
# Undo RPM scripts enabling units; we want the presets to be canonical
@ -67,19 +39,6 @@ postprocess:
systemctl preset-all
rm -rf /etc/systemd/user/*
systemctl --user --global preset-all
# Default to iptables-nft. Otherwise, legacy wins. We can drop this once/if we
# remove iptables-legacy. This is needed because alternatives don't work
# https://github.com/coreos/fedora-coreos-tracker/issues/677
# https://github.com/coreos/fedora-coreos-tracker/issues/676
- |
#!/usr/bin/env bash
set -xeuo pipefail
ln -sf /usr/sbin/ip6tables-nft /etc/alternatives/ip6tables
ln -sf /usr/sbin/ip6tables-nft-restore /etc/alternatives/ip6tables-restore
ln -sf /usr/sbin/ip6tables-nft-save /etc/alternatives/ip6tables-save
ln -sf /usr/sbin/iptables-nft /etc/alternatives/iptables
ln -sf /usr/sbin/iptables-nft-restore /etc/alternatives/iptables-restore
ln -sf /usr/sbin/iptables-nft-save /etc/alternatives/iptables-save
# See: https://github.com/coreos/fedora-coreos-tracker/issues/1253
# https://bugzilla.redhat.com/show_bug.cgi?id=2112857
# https://github.com/coreos/rpm-ostree/issues/3918
@ -108,3 +67,6 @@ exclude-packages:
# Do not use legacy ifcfg config format in NetworkManager
# See https://github.com/coreos/fedora-coreos-config/pull/1991
- NetworkManager-initscripts-ifcfg-rh
# Let's not have both legacy and nft versions in the image. Users are free to
# also layer legacy themselves if they want.
- iptables-legacy

View File

@ -3,8 +3,6 @@
# generic enough to be shared downstream with RHCOS.
packages:
# Standard tools for configuring network/hostname
- NetworkManager hostname
# Interactive Networking configuration during coreos-install
- NetworkManager-tui
# Support for cloud quirks and dynamic config in real rootfs:

View File

@ -1 +0,0 @@
../tier-0/ostree.yaml

View File

@ -1 +0,0 @@
../tier-0/passwd

View File

@ -1,7 +0,0 @@
# Core podman bits
packages:
- crun
- podman
- container-selinux
- skopeo

View File

@ -1,17 +1,12 @@
# These are packages that are related to configuring parts of the system.
packages:
# Configuring SSH keys, cloud provider check-in, etc
# TODO: needs Ignition kargs
# - afterburn afterburn-dracut
# Explicit dep for RHEL >= 10
- crypto-policies-scripts
# NTP support
- chrony
# Storage configuration/management
- lvm2
- cryptsetup
- e2fsprogs
- sg3_utils
- xfsprogs
## This is generally useful... https://github.com/CentOS/centos-bootc/issues/394
- cloud-utils-growpart
# User configuration
@ -26,7 +21,4 @@ packages:
# Anything package layered will also tend to expect files dropped in
# /etc/logrotate.d to work. Really, this is a legacy thing, but if we don't
# have it then people's disks will slowly fill up with logs.
- logrotate
# Boost starving threads
# https://github.com/coreos/fedora-coreos-tracker/issues/753
- stalld
- logrotate

1
tier-x/kernel.yaml Symbolic link
View File

@ -0,0 +1 @@
../tier-0/kernel.yaml

44
tier-x/manifest.yaml Normal file
View File

@ -0,0 +1,44 @@
include:
- ../tier-0/manifest.yaml
packages:
# Used by admins interactively
- attr
- bash-completion
- hostname
- iproute
- jq
- less
- vim-minimal
# deps of bootc, but let's be explicit. e.g. even if bootc drops the skopeo
# dep, we still want it
- podman skopeo
# crun recommends but doesn't require criu and criu-libs. We want them for
# checkpoint/restore. https://github.com/coreos/fedora-coreos-tracker/issues/1370
- crun criu criu-libs
# storage
- cryptsetup
- lvm2
- tar
# zram-generator (but not zram-generator-defaults) for F33 change
# https://github.com/coreos/fedora-coreos-tracker/issues/509
- zram-generator
# networking
- iptables-nft
- NetworkManager
- openssh-clients
- openssh-server
# linux-firmware now a recommends so let's explicitly include it
# https://gitlab.com/cki-project/kernel-ark/-/commit/32271d0cd9bd52d386eb35497c4876a8f041f70b
# https://src.fedoraproject.org/rpms/kernel/c/f55c3e9ed8605ff28cb9a922efbab1055947e213?branch=rawhide
- linux-firmware
# security
- polkit
- sudo
# Allow for configuring different timezones
- tzdata
# rpm-ostree
- rpm-ostree nss-altfiles
# firmware updates
# If you're using linux-firmware, you probably also want fwupd
- fwupd