Author SHA1 Message Date
Platform Engineering Bot 5e5402cd20 chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v5
Signed-off-by: Platform Engineering Bot <platform-engineering@redhat.com>
2024-10-07 01:13:57 +00:00
Colin Walters (Red Hat) 05a724d656 Merge branch 'f41_tier0_cryptsetup' into 'f41'
[F41] cherry-picked fixes for dracut modules

See merge request fedora/bootc/base-images!38
2024-08-29 13:59:30 +00:00
Micah Abbott 92545d027d 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>
(cherry picked from commit 7109132dd6)
2024-08-29 09:48:36 -04:00
Colin Walters 7d31fac720 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

(cherry picked from commit 0da319f566)
2024-08-29 09:48:19 -04:00
pbrobinson b92b1b9ddd Merge branch 'f41-branching' into 'f41'
Branching Fedora 41 from Rawhide

See merge request fedora/bootc/base-images!35
2024-08-21 15:28:49 +00:00
Paul Whalen e070839bff Branching Fedora 41 from Rawhide
Signed-off-by: Paul Whalen <pwhalen@fedoraproject.org>
2024-08-19 09:27:50 -04:00
44 changed files with 161 additions and 259 deletions

No files matched your search

+1 -4
View File
@@ -4,11 +4,8 @@ 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 --build-arg MANIFEST=fedora-$TIER.yaml" EXTRA_ARGS: "--security-opt=label=disable --cap-add=all"
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: v4.6.0 rev: v5.0.0
hooks: hooks:
- id: end-of-file-fixer - id: end-of-file-fixer
- id: trailing-whitespace - id: trailing-whitespace
+6 -14
View File
@@ -20,14 +20,12 @@
# #
# # Why does this build process require additional privileges? # # Why does this build process require additional privileges?
# #
# Because it's generating a base image and uses containerization 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:rawhide as repos FROM quay.io/fedora/fedora:41 as repos
# BOOTSTRAPPING: This can be any image that has rpm-ostree and selinux-policy-targeted. FROM quay.io/centos-bootc/bootc-image-builder:latest as builder
FROM quay.io/fedora/fedora:41 as builder
RUN dnf -y install rpm-ostree selinux-policy-targeted
ARG MANIFEST=fedora-bootc.yaml ARG MANIFEST=fedora-bootc.yaml
COPY --from=repos /etc/dnf/vars /etc/dnf/vars COPY --from=repos /etc/dnf/vars /etc/dnf/vars
COPY --from=repos /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-* /etc/pki/rpm-gpg COPY --from=repos /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-* /etc/pki/rpm-gpg
@@ -39,16 +37,10 @@ COPY . /src
WORKDIR /src WORKDIR /src
RUN rm -vf /src/*.repo RUN rm -vf /src/*.repo
COPY --from=repos /etc/yum.repos.d/*.repo /src COPY --from=repos /etc/yum.repos.d/*.repo /src
RUN --mount=type=cache,target=/workdir \ RUN --mount=type=cache,target=/workdir --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared rpm-ostree compose image \
--mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared \ --image-config fedora-bootc-config.json --cachedir=/workdir --format=ociarchive --initialize ${MANIFEST} /buildcontext/out.ociarchive
--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 FROM oci-archive:./out.ociarchive
# Need to reference builder here to force ordering. But since we have to run # Need to reference builder here to force ordering. But since we have to run
# something anyway, we might as well cleanup after ourselves. # something anyway, we might as well cleanup after ourselves.
RUN --mount=type=bind,from=builder,src=.,target=/var/tmp \ 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
--mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared \
rm /buildcontext/out.ociarchive
+7 -46
View File
@@ -9,64 +9,25 @@ 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 images ## Building
The current default user experience is to build *layered* images on top of the official First, the expectation is that most users will want to build *layered* images
binary base images produced and tested by this project. See the documentation[5] for more info. on top of the official base images. See the documentation[5] for more info.
You can build custom base images by forking this repository; however, Building the images in this repo can be done with `podman build` as with any
https://gitlab.com/fedora/bootc/tracker/-/issues/32 tracks a more supportable other application image (note that building with `docker` is not currently
mechanism that is not simply forking. For more information see[6]. supported). You need to enable some privileges for technical reasons.
## 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. This builds the default `tier-1` image. See the `Containerfile` for more details.
## 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. 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/>
-7
View File
@@ -1,7 +0,0 @@
# 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
View File
@@ -1,7 +0,0 @@
# 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
+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": "rawhide" "redhat.version-id": "41"
}, },
"StopSignal": "SIGRTMIN+3", "StopSignal": "SIGRTMIN+3",
"Env": [ "Env": [
+4
View File
@@ -1,3 +1,7 @@
releasever: 41
repos:
- fedora
metadata: metadata:
name: fedora-boot-tier1 name: fedora-boot-tier1
summary: Fedora Bootable Tier 1 summary: Fedora Bootable Tier 1
-6
View File
@@ -1,6 +0,0 @@
# 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
+4
View File
@@ -1,3 +1,7 @@
releasever: 41
repos:
- fedora
metadata: metadata:
name: fedora-boot-tier0 name: fedora-boot-tier0
summary: Fedora Bootable Tier 0 summary: Fedora Bootable Tier 0
-1
View File
@@ -1 +0,0 @@
fedora-bootc.yaml
-8
View File
@@ -1,8 +0,0 @@
metadata:
name: fedora-boot-tier-x
summary: Fedora Bootable Tier X
include:
- fedora-generic.yaml
- tier-x/manifest.yaml
- tier-x/kernel.yaml
+2 -65
View File
@@ -3,8 +3,8 @@
[fedora] [fedora]
name=Fedora $releasever - $basearch name=Fedora $releasever - $basearch
baseurl=https://dl.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/ # using the Latest Fedora 41 repository from Koji until GA
https://dl.fedoraproject.org/pub/fedora-secondary/releases/$releasever/Everything/$basearch/os/ baseurl=https://kojipkgs.fedoraproject.org/compose/branched/latest-Fedora-41/compose/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,66 +37,3 @@ 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
+1 -6
View File
@@ -3,17 +3,12 @@
"extends": [ "extends": [
"github>platform-engineering-org/.github" "github>platform-engineering-org/.github"
], ],
"baseBranches": ["main", "f40", "f41"], "baseBranches": ["main", "f40"],
"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
@@ -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
+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 -i -e 's, /root, /var/roothome,' /usr/lib/tmpfiles.d/provision.conf sed -ie '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 -i -e '/^d- \/var\/roothome /d' /usr/lib/tmpfiles.d/provision.conf sed -ie '/^d- \/var\/roothome /d' /usr/lib/tmpfiles.d/provision.conf
+2 -7
View File
@@ -2,13 +2,8 @@
packages: packages:
- systemd - systemd
- bootc - bootc
# bootc pulls in podman, which pulls in containers-common, which wants # Required by bootc install today, though we'll likely switch bootc to use a Rust crate instead of sgdisk
# `iptables`. Currently that pulls in iptables-legacy. Let's explicitly name - gdisk xfsprogs e2fsprogs dosfstools
# 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-packages:
# Exclude kernel-debug-core to make sure that it doesn't somehow get # Exclude kernel-debug-core to make sure that it doesn't somehow get
+2
View File
@@ -25,5 +25,7 @@ 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
-4
View File
@@ -1,4 +0,0 @@
#!/bin/bash
# https://gitlab.com/fedora/bootc/base-images/-/issues/28
set -xeuo pipefail
ln -s ../run var/run
+1 -7
View File
@@ -14,11 +14,5 @@ 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+=" tpm2-tss " add_dracutmodules+=" systemd-cryptsetup 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
+10 -7
View File
@@ -1,4 +1,7 @@
edition: "2024"
# Modern defaults we want
boot-location: modules
tmp-is-dir: true
# https://github.com/CentOS/centos-bootc/issues/167 # https://github.com/CentOS/centos-bootc/issues/167
machineid-compat: true machineid-compat: true
# Be minimal # Be minimal
@@ -41,21 +44,21 @@ 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 # needed for building derived container images
- coreutils - dnf
# 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 # 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 -1
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 rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/usr/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/usr/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/usr/sbin/nologin
sssd:x:995:993:User for sssd:/run/sssd:/usr/sbin/nologin sssd:x:995:993:User for sssd:/:/usr/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync sync:x:5:0:sync:/sbin:/bin/sync
systemd-bus-proxy:x:989:988:systemd Bus Proxy:/:/usr/sbin/nologin systemd-bus-proxy:x:989:988:systemd Bus Proxy:/:/usr/sbin/nologin
systemd-network:x:991:990:systemd Network Management:/:/usr/sbin/nologin systemd-network:x:991:990:systemd Network Management:/:/usr/sbin/nologin
-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
+1
View File
@@ -0,0 +1 @@
../tier-0/autoupdates.yaml
+1
View File
@@ -0,0 +1 @@
../tier-0/basic-fixes.yaml
+8
View File
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
../tier-0/bootc-config.yaml
+1
View File
@@ -0,0 +1 @@
../tier-0/bootc.yaml
+1
View File
@@ -0,0 +1 @@
../tier-0/bootupd.yaml
+26 -2
View File
@@ -1,16 +1,40 @@
# 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:
# Additional file compression/decompression # Basic user tools
- bzip2 zstd ## 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 # 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
@@ -0,0 +1,7 @@
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
@@ -0,0 +1,5 @@
# Firmware updates
packages-aarch64:
- fwupd
packages-x86_64:
- fwupd
+1
View File
@@ -0,0 +1 @@
../tier-0/group
+1
View File
@@ -0,0 +1 @@
../tier-0/grub2-removals.yaml
+1
View File
@@ -0,0 +1 @@
../tier-0/initramfs.yaml
+12
View File
@@ -0,0 +1,12 @@
# 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
@@ -0,0 +1 @@
../tier-0/manifest.yaml
+25 -6
View File
@@ -2,11 +2,14 @@
recommends: true recommends: true
include: include:
- ../tier-x/manifest.yaml - manifest-tier-0.yaml
- autoupdates.yaml - bootable-rpm-ostree.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
@@ -14,10 +17,12 @@ 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-services - iptables-nft 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.
@@ -26,7 +31,9 @@ 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
@@ -34,6 +41,8 @@ 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
@@ -58,6 +67,19 @@ 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
@@ -86,6 +108,3 @@ 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,6 +3,8 @@
# 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
@@ -0,0 +1 @@
../tier-0/ostree.yaml
+1
View File
@@ -0,0 +1 @@
../tier-0/passwd
+7
View File
@@ -0,0 +1,7 @@
# Core podman bits
packages:
- crun
- podman
- container-selinux
- skopeo
+4 -2
View File
@@ -1,15 +1,17 @@
# 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
@@ -1 +0,0 @@
../tier-0/kernel.yaml
-45
View File
@@ -1,45 +0,0 @@
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
- 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