Rework build system further
- Move everything related to base/ into that directory, including Containerfile - Introduce `bootc-base-image-rebuild-self` that can be used to resynthesize the base image, and it has docs. - Rework the standard image to put its build instructions in usr/share/doc/bootc-image-standard to serve as a reference Signed-off-by: Colin Walters <walters@verbum.org>
This commit is contained in:
1 parent
fffbf8853f
commit
6de35e0fc2
14 files changed
+165
-51
No files matched your search
@@ -0,0 +1 @@
|
||||
irqbalance
|
||||
@@ -0,0 +1,21 @@
|
||||
# Packages excluded by default
|
||||
|
||||
# We use NetworkManager
|
||||
systemd-networkd
|
||||
# But without the legacy
|
||||
# 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
|
||||
|
||||
# We use bootupd
|
||||
grubby
|
||||
# Let's make sure initscripts doesn't get pulled back in
|
||||
# https://github.com/coreos/fedora-coreos-tracker/issues/220#issuecomment-611566254
|
||||
initscripts
|
||||
|
||||
# For (datacenter/cloud oriented) servers, we want to see the details by default.
|
||||
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/HSMISZ3ETWQ4ETVLWZQJ55ARZT27AAV3/
|
||||
plymouth
|
||||
@@ -0,0 +1,4 @@
|
||||
irqbalance
|
||||
librtas
|
||||
powerpc-utils-core
|
||||
ppc64-diag-rtas
|
||||
@@ -0,0 +1,45 @@
|
||||
# This file is simply a list of packages recommended to be used by default.
|
||||
# You can process this via e.g.
|
||||
# grep -E -v '^#' packages-recommended.txt | xargs dnf -y install
|
||||
|
||||
# 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
|
||||
@@ -0,0 +1 @@
|
||||
irqbalance
|
||||
@@ -0,0 +1,104 @@
|
||||
# A relatively large base image suitable for headless servers,
|
||||
# a lot like CoreOS.
|
||||
|
||||
# Include and set the default editor
|
||||
nano
|
||||
nfs-utils
|
||||
# Additional firewall support; we aren't including these in RHCOS or they
|
||||
# don't exist in RHEL
|
||||
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
|
||||
openssl
|
||||
# Provides terminal tools like clear, reset, tput, and tset
|
||||
ncurses
|
||||
# i18n
|
||||
kbd
|
||||
# zram-generator (but not zram-generator-defaults) for F33 change
|
||||
# https://github.com/coreos/fedora-coreos-tracker/issues/509
|
||||
zram-generator
|
||||
# This one is in Python so isn't in FCOS, but we can safely add it here.
|
||||
sos
|
||||
|
||||
# Additional file compression/decompression
|
||||
bzip2 zstd
|
||||
# Improved MOTD experience
|
||||
console-login-helper-messages-issuegen
|
||||
console-login-helper-messages-profile
|
||||
# kdump support
|
||||
# https://github.com/coreos/fedora-coreos-tracker/issues/622
|
||||
kexec-tools
|
||||
# Container tooling
|
||||
toolbox
|
||||
# nvme-cli for managing nvme disks
|
||||
nvme-cli
|
||||
# Used by admins interactively
|
||||
lsof
|
||||
|
||||
# Explicit dep for RHEL >= 10
|
||||
crypto-policies-scripts
|
||||
# Configuring SSH keys, cloud provider check-in, etc
|
||||
# TODO: needs Ignition kargs
|
||||
# - afterburn afterburn-dracut
|
||||
# NTP support
|
||||
chrony
|
||||
# Storage configuration/management
|
||||
sg3_utils
|
||||
## This is generally useful... https://github.com/CentOS/centos-bootc/issues/394
|
||||
cloud-utils-growpart
|
||||
# User configuration
|
||||
passwd
|
||||
shadow-utils
|
||||
acl
|
||||
# Manipulating the kernel keyring; used by bootc
|
||||
keyutils
|
||||
# There are things that write outside of the journal still (such as the
|
||||
# classic wtmp, etc.). auditd also writes outside the journal but it has its
|
||||
# own log rotation.
|
||||
# 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
|
||||
|
||||
# This defines a set of tools that are useful for configuring, debugging,
|
||||
# or manipulating the network of a system.
|
||||
# Interactive Networking configuration during coreos-install
|
||||
NetworkManager-tui
|
||||
# Support for cloud quirks and dynamic config in real rootfs:
|
||||
# https://github.com/coreos/fedora-coreos-tracker/issues/320
|
||||
NetworkManager-cloud-setup
|
||||
# Route manipulation and QoS
|
||||
iproute iproute-tc
|
||||
# Firewall manipulation
|
||||
iptables nftables
|
||||
# Interactive network tools for admins
|
||||
socat net-tools bind-utils
|
||||
|
||||
# These are recomended by other packages installed above.
|
||||
# recommended by containers-common-extra
|
||||
qemu-user-static
|
||||
# recommended by rpm-libs
|
||||
rpm-plugin-audit
|
||||
#recomended by gnupg2
|
||||
pinentry
|
||||
gnupg2-smime
|
||||
# recommended by dracut
|
||||
pigz
|
||||
memstrack
|
||||
kpartx
|
||||
# recommended by libxcrypt
|
||||
pkcs11-provider
|
||||
# recommended by containers-common
|
||||
fuse-overlayfs
|
||||
# recommended by toolbox
|
||||
cracklib-dicts
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
set -xeuo pipefail
|
||||
dnf clean all
|
||||
# Lots of cleaning
|
||||
rm -vrf /var/log /var/cache /var/lib/dnf
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
dn=$(dirname $0)
|
||||
cd ${dn}
|
||||
dnf_args=()
|
||||
echo "Loading packages-excluded"
|
||||
for x in $(grep -E -v '^#' packages-excluded.txt); do
|
||||
dnf_args+=(--exclude ${x})
|
||||
done
|
||||
echo "Loading packages"
|
||||
package_files=(packages-recommended-minimal.txt packages.txt)
|
||||
pkgfile_for_arch=packages-$(arch).txt
|
||||
if test -f ${pkgfile_for_arch}; then
|
||||
echo "Loading ${pkgfile_for_arch}"
|
||||
package_files+=(${pkgfile_for_arch})
|
||||
fi
|
||||
base_pkgs=$(grep -hE -v '^#' ${package_files[@]})
|
||||
dnf -y ${dnf_args[@]} install $base_pkgs
|
||||
|
||||
# Ensure we regenerate the initramfs with new content
|
||||
# https://docs.fedoraproject.org/en-US/bootc/initramfs/
|
||||
kver=$(cd /usr/lib/modules && echo *); dracut -vf /usr/lib/modules/$kver/initramfs.img $kver
|
||||
|
||||
# Undo RPM scripts enabling units; we want the presets to be canonical for the base image.
|
||||
# https://github.com/projectatomic/rpm-ostree/issues/1803
|
||||
rm -rf /etc/systemd/system/*
|
||||
systemctl preset-all
|
||||
rm -rf /etc/systemd/user/*
|
||||
systemctl --user --global preset-all
|
||||
Reference in new issue
Block a user