19 Commits
Author SHA1 Message Date
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
13 changed files with 59 additions and 29 deletions

No files matched your search

+13 -5
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/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
+10
View File
@@ -32,6 +32,16 @@ podman build --security-opt=label=disable --cap-add=all \
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.
+7
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
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
-4
View File
@@ -1,7 +1,3 @@
releasever: rawhide
repos:
- rawhide
metadata:
name: fedora-boot-tier1
summary: Fedora Bootable Tier 1
+6
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
-4
View File
@@ -1,7 +1,3 @@
releasever: rawhide
repos:
- rawhide
metadata:
name: fedora-boot-tier0
summary: Fedora Bootable Tier 0
-4
View File
@@ -1,7 +1,3 @@
releasever: rawhide
repos:
- rawhide
metadata:
name: fedora-boot-tier-x
summary: Fedora Bootable Tier X
+3 -2
View File
@@ -6,8 +6,9 @@ packages:
# `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
- gdisk xfsprogs e2fsprogs dosfstools
# 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
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
# https://gitlab.com/fedora/bootc/base-images/-/issues/28
set -xeuo pipefail
ln -s ../run var/run
+5 -6
View File
@@ -1,7 +1,4 @@
# Modern defaults we want
boot-location: modules
tmp-is-dir: true
edition: "2024"
# https://github.com/CentOS/centos-bootc/issues/167
machineid-compat: true
# Be minimal
@@ -55,8 +52,10 @@ include:
packages:
# this is implied by dependencies but let's make it explicit
- coreutils
# needed for building derived container images
- dnf5
# 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
+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
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
+3 -3
View File
@@ -10,12 +10,12 @@ packages:
- 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
# 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