Commit Graph
26 Commits
Author SHA1 Message Date
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 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 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: https://github.com/coreos/fedora-coreos-config/commit/029d320bfe95ab0c59b6fb376467c03397588e60
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
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
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
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
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: https://github.com/coreos/fedora-coreos-config/commit/f7aaeb3d6c6b2d7b67dfa7267c6ef308a29f70a4
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
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
Jonathan Lebon ab56be5f81 README.md: adjust instructions for Containerfile rename
The `Containerfile.fedora-40` was renamed in 79f64a0 ("Containerfile:
Make generic"), which allows us to simplify the instructions here.
2024-05-01 16:51:13 -04:00
Jonathan Lebon 7ef1553020 tier-1: drop subscription-manager
This is only useful for RHEL developers who want to build RHEL
containers in the Fedora host and requires a subscription. Keep it out
by default; one can always of course re-layer it in a derived build.
2024-04-26 15:30:01 -04:00
Jonathan Lebon 3e69fa1f68 README.md: add a "Building" section
Document how to build the base images locally. Link to relevant
documentation pages.
2024-04-25 12:35:25 -04:00
Jonathan Lebon 8c9bd6785d Remove .github/
This code was imported from GitHub to GitLab. We'll replace the GHA
tests with new ones.
2024-04-25 11:58:55 -04:00