Author SHA1 Message Date
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: 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
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: 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
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
https://github.com/dracut-ng/dracut-ng/commit/d73cc24e112c01aa701a96a7b8a58adce78409e7
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
39 changed files with 212 additions and 144 deletions

No files matched your search

+4 -1
View File
@@ -4,8 +4,11 @@ include:
build-image: build-image:
extends: .build-image extends: .build-image
parallel:
matrix:
- TIER: [tier-0, tier-1, tier-x]
variables: 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: rules:
- if: $CI_PROJECT_NAMESPACE != "fedora/bootc" - if: $CI_PROJECT_NAMESPACE != "fedora/bootc"
when: never when: never
+1 -1
View File
@@ -1,7 +1,7 @@
--- ---
repos: repos:
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0 rev: v4.6.0
hooks: hooks:
- id: end-of-file-fixer - id: end-of-file-fixer
- id: trailing-whitespace - id: trailing-whitespace
+1 -1
View File
@@ -23,7 +23,7 @@
# Because it's generating a base image and uses containerbuildcontextization features itself. # Because it's generating a base image and uses containerbuildcontextization features itself.
# In the future some of this can be lifted. # In the future some of this can be lifted.
FROM quay.io/fedora/fedora:41 as repos FROM quay.io/fedora/fedora:rawhide as repos
FROM quay.io/centos-bootc/bootc-image-builder:latest as builder FROM quay.io/centos-bootc/bootc-image-builder:latest as builder
ARG MANIFEST=fedora-bootc.yaml ARG MANIFEST=fedora-bootc.yaml
+36 -7
View File
@@ -9,25 +9,54 @@ been extremely successful. This project aims to apply the same technique for
bootable host systems - using standard OCI/Docker containers as a transport and bootable host systems - using standard OCI/Docker containers as a transport and
delivery format for base operating system updates. delivery format for base operating system updates.
## Building ## Building images
First, the expectation is that most users will want to build *layered* images The current default user experience is to build *layered* images on top of the official
on top of the official base images. See the documentation[5] for more info. 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 You can build custom base images by forking this repository; however,
other application image (note that building with `docker` is not currently https://gitlab.com/fedora/bootc/tracker/-/issues/32 tracks a more supportable
supported). You need to enable some privileges for technical reasons. 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 \ podman build --security-opt=label=disable --cap-add=all \
--device /dev/fuse -t localhost/fedora-bootc . --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.
### Deriving
You are of course also free to fork, customize, and build base images yourself. You are of course also free to fork, customize, and build base images yourself.
See this page[6] of the documentation for more information. See this page[6] of the documentation for more information.
## Tiers
There are currently 3 tiers:
- **tier-1**: This image is the default, what is published as
https://quay.io/repository/fedora/fedora-bootc
- **tier-0**: This image 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 image is not intended for end-users. It's 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 ## More information
Documentation: <https://docs.fedoraproject.org/en-US/bootc/> Documentation: <https://docs.fedoraproject.org/en-US/bootc/>
+1 -1
View File
@@ -3,7 +3,7 @@
"containers.bootc": "1", "containers.bootc": "1",
"bootc.diskimage-builder": "quay.io/centos-bootc/bootc-image-builder", "bootc.diskimage-builder": "quay.io/centos-bootc/bootc-image-builder",
"redhat.id": "fedora", "redhat.id": "fedora",
"redhat.version-id": "41" "redhat.version-id": "rawhide"
}, },
"StopSignal": "SIGRTMIN+3", "StopSignal": "SIGRTMIN+3",
"Env": [ "Env": [
+2 -2
View File
@@ -1,6 +1,6 @@
releasever: 41 releasever: rawhide
repos: repos:
- fedora - rawhide
metadata: metadata:
name: fedora-boot-tier1 name: fedora-boot-tier1
+2 -2
View File
@@ -1,6 +1,6 @@
releasever: 41 releasever: rawhide
repos: repos:
- fedora - rawhide
metadata: metadata:
name: fedora-boot-tier0 name: fedora-boot-tier0
+1
View File
@@ -0,0 +1 @@
fedora-bootc.yaml
+12
View File
@@ -0,0 +1,12 @@
releasever: rawhide
repos:
- rawhide
metadata:
name: fedora-boot-tier-x
summary: Fedora Bootable Tier X
include:
- fedora-generic.yaml
- tier-x/manifest.yaml
- tier-x/kernel.yaml
+65 -2
View File
@@ -3,8 +3,8 @@
[fedora] [fedora]
name=Fedora $releasever - $basearch name=Fedora $releasever - $basearch
# using the Latest Fedora 41 repository from Koji until GA baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
baseurl=https://kojipkgs.fedoraproject.org/compose/branched/latest-Fedora-41/compose/Everything/$basearch/os/ https://dl.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/os/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch #metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1 enabled=1
#metadata_expire=7d #metadata_expire=7d
@@ -37,3 +37,66 @@ gpgcheck=1
metadata_expire=6h metadata_expire=6h
gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary
skip_if_unavailable=False skip_if_unavailable=False
[fedora-modular]
name=Fedora Modular $releasever - $basearch
baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/$releasever/Modular/$basearch/os/
https://dl.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Modular/$basearch/os/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-modular-$releasever&arch=$basearch
enabled=1
#metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[fedora-updates-modular]
name=Fedora Modular $releasever - $basearch - Updates
baseurl=https://dl.fedoraproject.org/pub/fedora/linux/updates/$releasever/Modular/$basearch/
https://dl.fedoraproject.org/pub/fedora-secondary/updates/$releasever/Modular/$basearch/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-modular-f$releasever&arch=$basearch
enabled=1
repo_gpgcheck=0
type=rpm
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[fedora-updates-testing-modular]
name=Fedora Modular $releasever - $basearch - Test Updates
baseurl=https://dl.fedoraproject.org/pub/fedora/linux/updates/testing/$releasever/Modular/$basearch/
https://dl.fedoraproject.org/pub/fedora-secondary/updates/testing/$releasever/Modular/$basearch/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-testing-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
metadata_expire=6h
gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary
skip_if_unavailable=False
[rawhide]
name=Fedora - Rawhide - Developmental packages for the next Fedora release
baseurl=https://dl.fedoraproject.org/pub/fedora/linux/development/$releasever/Everything/$basearch/os/
https://dl.fedoraproject.org/pub/fedora-secondary/development/$releasever/Everything/$basearch/os/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
#metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary
skip_if_unavailable=False
[fedora-devel]
name=Fedora $releasever - $basearch
baseurl=https://dl.fedoraproject.org/pub/fedora/linux/development/$releasever/Everything/$basearch/os/
https://dl.fedoraproject.org/pub/fedora-secondary/development/$releasever/Everything/$basearch/os/
#metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
#metadata_expire=7d
repo_gpgcheck=0
type=rpm
gpgcheck=1
gpgkey=file:///usr/share/distribution-gpg-keys/fedora/RPM-GPG-KEY-fedora-$releasever-primary
skip_if_unavailable=False
+6 -1
View File
@@ -3,12 +3,17 @@
"extends": [ "extends": [
"github>platform-engineering-org/.github" "github>platform-engineering-org/.github"
], ],
"baseBranches": ["main", "f40"], "baseBranches": ["main", "f40", "f41"],
"packageRules": [ "packageRules": [
{ {
"matchPackageNames": ["quay.io/fedora/fedora"], "matchPackageNames": ["quay.io/fedora/fedora"],
"allowedVersions": "=40", "allowedVersions": "=40",
"matchBaseBranches": ["f40"] "matchBaseBranches": ["f40"]
},
{
"matchPackageNames": ["quay.io/fedora/fedora"],
"allowedVersions": "=41",
"matchBaseBranches": ["f41"]
} }
] ]
} }
-9
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
+2 -2
View File
@@ -23,7 +23,7 @@ postprocess:
# tmpfiles.d unit for `/var/roothome` is fine, but this actually doesn't # 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 # work if we want to use tmpfiles.d to write to `/root/.ssh` because
# tmpfiles gives up on that before getting to `/var/roothome`. # 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 # Because /var/roothome is also defined in rpm-ostree-0-integration.conf
# we need to delete /var/roothome # 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
+4
View File
@@ -2,6 +2,10 @@
packages: packages:
- systemd - systemd
- bootc - bootc
# 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 today, though we'll likely switch bootc to use a Rust crate instead of sgdisk # Required by bootc install today, though we'll likely switch bootc to use a Rust crate instead of sgdisk
- gdisk xfsprogs e2fsprogs dosfstools - gdisk xfsprogs e2fsprogs dosfstools
-2
View File
@@ -25,7 +25,5 @@ postprocess:
- | - |
#!/bin/bash #!/bin/bash
set -xeuo pipefail 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 # Transforms /usr/lib/ostree-boot into a bootupd-compatible update payload
/usr/bin/bootupctl backend generate-update-metadata /usr/bin/bootupctl backend generate-update-metadata
+7 -1
View File
@@ -14,5 +14,11 @@ postprocess:
EOF EOF
cat > /usr/lib/dracut/dracut.conf.d/49-bootc-tpm2-tss.conf << 'EOF' cat > /usr/lib/dracut/dracut.conf.d/49-bootc-tpm2-tss.conf << 'EOF'
# We want this for systemd-cryptsetup tpm2 locking # We want this for systemd-cryptsetup tpm2 locking
add_dracutmodules+=" systemd-cryptsetup 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 EOF
+3 -5
View File
@@ -44,21 +44,19 @@ remove-from-packages:
# We don't want auto-generated mount units. See also # We don't want auto-generated mount units. See also
# https://github.com/systemd/systemd/issues/13099 # https://github.com/systemd/systemd/issues/13099
- [systemd-udev, /usr/lib/systemd/system-generators/systemd-gpt-auto-generator] - [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: include:
- bootc.yaml - bootc.yaml
- bootupd.yaml - bootupd.yaml
- ostree.yaml - ostree.yaml
- initramfs.yaml - initramfs.yaml
- autoupdates.yaml
- basic-fixes.yaml - basic-fixes.yaml
packages: packages:
# this is implied by dependencies but let's make it explicit
- coreutils
# needed for building derived container images # needed for building derived container images
- dnf - dnf5
# Even in tier-0, we have this. If you don't want SELinux today, you'll need # Even in tier-0, we have this. If you don't want SELinux today, you'll need
# to build a custom image. # to build a custom image.
- selinux-policy-targeted - selinux-policy-targeted
-1
View File
@@ -1 +0,0 @@
../tier-0/autoupdates.yaml
+9
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
-1
View File
@@ -1 +0,0 @@
../tier-0/basic-fixes.yaml
-8
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
-1
View File
@@ -1 +0,0 @@
../tier-0/bootc-config.yaml
-1
View File
@@ -1 +0,0 @@
../tier-0/bootc.yaml
-1
View File
@@ -1 +0,0 @@
../tier-0/bootupd.yaml
+2 -26
View File
@@ -1,40 +1,16 @@
# This file was forked/copied from Fedora CoreOS. TODO: resync # This file was forked/copied from Fedora CoreOS. TODO: resync
# once we have a good generic mechanism for sharing. # once we have a good generic mechanism for sharing.
packages: packages:
# Basic user tools # Additional file compression/decompression
## jq - parsing/interacting with JSON data - bzip2 zstd
- 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 # Improved MOTD experience
- console-login-helper-messages-issuegen - console-login-helper-messages-issuegen
- console-login-helper-messages-profile - console-login-helper-messages-profile
# kdump support # kdump support
# https://github.com/coreos/fedora-coreos-tracker/issues/622 # https://github.com/coreos/fedora-coreos-tracker/issues/622
- kexec-tools - kexec-tools
# Remote Access
- openssh-clients openssh-server
# Container tooling # 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 - toolbox
# passt provides user-mode networking daemons for namespaces
- passt
# nvme-cli for managing nvme disks # nvme-cli for managing nvme disks
- nvme-cli - nvme-cli
# Used by admins interactively # Used by admins interactively
-7
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
-5
View File
@@ -1,5 +0,0 @@
# Firmware updates
packages-aarch64:
- fwupd
packages-x86_64:
- fwupd
-1
View File
@@ -1 +0,0 @@
../tier-0/group
-1
View File
@@ -1 +0,0 @@
../tier-0/grub2-removals.yaml
-1
View File
@@ -1 +0,0 @@
../tier-0/initramfs.yaml
-12
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
-1
View File
@@ -1 +0,0 @@
../tier-0/manifest.yaml
+6 -25
View File
@@ -2,14 +2,11 @@
recommends: true recommends: true
include: include:
- manifest-tier-0.yaml - ../tier-x/manifest.yaml
- bootable-rpm-ostree.yaml - autoupdates.yaml
- podman.yaml
- firmware.yaml
- networking-tools.yaml - networking-tools.yaml
- system-configuration.yaml - system-configuration.yaml
- coreos-user-experience.yaml - coreos-user-experience.yaml
- fwupd.yaml
- persistent-journal.yaml - persistent-journal.yaml
- initramfs-full.yaml - initramfs-full.yaml
- generic-growfs.yaml - generic-growfs.yaml
@@ -17,12 +14,10 @@ include:
packages: packages:
# Include and set the default editor # Include and set the default editor
- nano - nano
# And we expect this in general
- vim-minimal
- nfs-utils - nfs-utils
# Additional firewall support; we aren't including these in RHCOS or they # Additional firewall support; we aren't including these in RHCOS or they
# don't exist in RHEL # don't exist in RHEL
- iptables-nft iptables-services - iptables-services
- WALinuxAgent-udev - WALinuxAgent-udev
# Allow communication between sudo and SSSD # Allow communication between sudo and SSSD
# for caching sudo rules by SSSD. # for caching sudo rules by SSSD.
@@ -31,9 +26,7 @@ packages:
# SSSD; we only ship a subset of the backends # SSSD; we only ship a subset of the backends
- sssd-client sssd-ad sssd-ipa sssd-krb5 sssd-ldap - sssd-client sssd-ad sssd-ipa sssd-krb5 sssd-ldap
# Used by admins interactively # Used by admins interactively
- attr
- openssl - openssl
- lsof
# Provides terminal tools like clear, reset, tput, and tset # Provides terminal tools like clear, reset, tput, and tset
- ncurses - ncurses
# i18n # i18n
@@ -41,8 +34,6 @@ packages:
# zram-generator (but not zram-generator-defaults) for F33 change # zram-generator (but not zram-generator-defaults) for F33 change
# https://github.com/coreos/fedora-coreos-tracker/issues/509 # https://github.com/coreos/fedora-coreos-tracker/issues/509
- zram-generator - 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. # This one is in Python so isn't in FCOS, but we can safely add it here.
- sos - sos
@@ -67,19 +58,6 @@ postprocess:
systemctl preset-all systemctl preset-all
rm -rf /etc/systemd/user/* rm -rf /etc/systemd/user/*
systemctl --user --global preset-all 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 # See: https://github.com/coreos/fedora-coreos-tracker/issues/1253
# https://bugzilla.redhat.com/show_bug.cgi?id=2112857 # https://bugzilla.redhat.com/show_bug.cgi?id=2112857
# https://github.com/coreos/rpm-ostree/issues/3918 # https://github.com/coreos/rpm-ostree/issues/3918
@@ -108,3 +86,6 @@ exclude-packages:
# Do not use legacy ifcfg config format in NetworkManager # Do not use legacy ifcfg config format in NetworkManager
# See https://github.com/coreos/fedora-coreos-config/pull/1991 # See https://github.com/coreos/fedora-coreos-config/pull/1991
- NetworkManager-initscripts-ifcfg-rh - 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
-2
View File
@@ -3,8 +3,6 @@
# generic enough to be shared downstream with RHCOS. # generic enough to be shared downstream with RHCOS.
packages: packages:
# Standard tools for configuring network/hostname
- NetworkManager hostname
# Interactive Networking configuration during coreos-install # Interactive Networking configuration during coreos-install
- NetworkManager-tui - NetworkManager-tui
# Support for cloud quirks and dynamic config in real rootfs: # Support for cloud quirks and dynamic config in real rootfs:
-1
View File
@@ -1 +0,0 @@
../tier-0/ostree.yaml
-1
View File
@@ -1 +0,0 @@
../tier-0/passwd
-7
View File
@@ -1,7 +0,0 @@
# Core podman bits
packages:
- crun
- podman
- container-selinux
- skopeo
+2 -4
View File
@@ -1,17 +1,15 @@
# These are packages that are related to configuring parts of the system. # These are packages that are related to configuring parts of the system.
packages: packages:
# Explicit dep for RHEL >= 10
- crypto-policies-scripts
# Configuring SSH keys, cloud provider check-in, etc # Configuring SSH keys, cloud provider check-in, etc
# TODO: needs Ignition kargs # TODO: needs Ignition kargs
# - afterburn afterburn-dracut # - afterburn afterburn-dracut
# NTP support # NTP support
- chrony - chrony
# Storage configuration/management # Storage configuration/management
- lvm2
- cryptsetup
- e2fsprogs
- sg3_utils - sg3_utils
- xfsprogs
## This is generally useful... https://github.com/CentOS/centos-bootc/issues/394 ## This is generally useful... https://github.com/CentOS/centos-bootc/issues/394
- cloud-utils-growpart - cloud-utils-growpart
# User configuration # User configuration
+1
View File
@@ -0,0 +1 @@
../tier-0/kernel.yaml
+45
View File
@@ -0,0 +1,45 @@
include:
- ../tier-0/manifest.yaml
packages:
# Used by admins interactively
- attr
- bash-completion
- hostname
- iproute
- jq
- less
- vim-minimal
# 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
- criu criu-libs
# deps of bootc, but let's be explicit. e.g. even if bootc drops the skopeo
# dep, we still want it
- podman skopeo
# 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
- systemd-resolved
# 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