docs: change refs to old bootc docs URL to new variable

Move all references to the previous docs site to the new variable.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
This commit is contained in:
Valentin Rothberg 2025-03-13 10:31:26 +01:00
commit 1549613a7f
14 changed files with 24 additions and 24 deletions

View file

@ -8,7 +8,7 @@ for the host system.
By default, the OS performs continual auto-updates via a stock copy of the upstream
`bootc-fetch-apply-updates.timer` and corresponding `bootc-fetch-apply-updates.service`.
For more, see <https://containers.github.io/bootc/man-md/bootc-fetch-apply-updates.service.html>
For more, see <{bootc-upstream}/man-md/bootc-fetch-apply-updates.service.html>
== podman

View file

@ -52,7 +52,7 @@ reboot
===== Accessing registries
See the https://containers.github.io/bootc/registries-and-offline.html[bootc documentation] on
See the {bootc-upstream}/registries-and-offline.html[bootc documentation] on
registries, as well as the xref:container-pull-secrets.adoc[Container pull secrets] section.
The default Anaconda installation ISOs may also need a duplicate copy of some "bootstrap"
@ -122,7 +122,7 @@ the "source of truth" as much as possible. A "basic" installer
is built into the `bootc` project and is available as `bootc install to-disk`
or `bootc install to-filesystem`.
TIP: More information is available https://containers.github.io/bootc/bootc-install.html[at the upstream bootc site].
TIP: More information is available {bootc-upstream}/bootc-install.html[at the upstream bootc site].
In the very simplest example, assuming you have a running Linux environment
with `podman`, you can perform a bare metal installation to a block device.

View file

@ -187,7 +187,7 @@ file which will be visible in a Podman container but it won't be propagated to
the booted system.
For details and recommendations, please refer to the
https://containers.github.io/bootc/building/bootc-runtime.html[bootc-runtime documentation].
{bootc-upstream}/building/bootc-runtime.html[bootc-runtime documentation].
== Lifecycle binding code and configuration
@ -305,7 +305,7 @@ Often packaging scripts may invoke `useradd`. This can cause "state drift"
in the case where `/etc/passwd` is also locally modified on the system,
and transient `/etc` is not in use.
More on this in https://containers.github.io/bootc/building/users-and-groups.html#adding-users-and-credentials-statically-in-the-container-build[bootc upstream].
More on this in {bootc-upstream}/building/users-and-groups.html#adding-users-and-credentials-statically-in-the-container-build[bootc upstream].
If the user does not *own* any content shipped in `/usr` and it runs
as a systemd unit, then it's often a good candidate to convert to
@ -347,7 +347,7 @@ possible.
== General configuration guidance
See the https://containers.github.io/bootc/building/guidance.html[bootc upstream guidance].
See the {bootc-upstream}/building/guidance.html[bootc upstream guidance].
Many configuration changes to a Linux system boil down effectively to
writing configuration files into `/etc` or `/usr` - those operations

View file

@ -5,7 +5,7 @@ A common scenario is needing to configure the host system with a
the host updates itself!
There is a section in the upstream bootc documentation for
https://containers.github.io/bootc/building/secrets.html#secrets-eg-container-pull-secrets[secrets in general]
{bootc-upstream}/building/secrets.html#secrets-eg-container-pull-secrets[secrets in general]
that applies here.
The following content applies to the *built image*. When using an external

View file

@ -1,5 +1,5 @@
:page-partial:
NOTE: The default filesystem type for CentOS is `xfs`. There is no default filesystem for Fedora, and you must choose one when generating a disk image
or configure one in your derived container image via https://containers.github.io/bootc/bootc-install.html#operating-system-install-configuration-required[bootc install config].
or configure one in your derived container image via {bootc-upstream}/bootc-install.html#operating-system-install-configuration-required[bootc install config].

View file

@ -1,7 +1,7 @@
= Understanding the {projname} filesystem layout
This section briefly re-summarizes some of the content that is in the
upstream https://containers.github.io/bootc/filesystem.html[bootc filesystem documentation].
upstream {bootc-upstream}/filesystem.html[bootc filesystem documentation].
Please consult that for more.
== composefs
@ -49,7 +49,7 @@ container to configure networking, this will apply on upgrades.
However, according to the 3-way merge logic, any machine-local modified files will "win"
by default. This can be a common issue with modifications to `/etc/passwd`
in derived containers. For more on users and groups, see https://containers.github.io/bootc/building/users-and-groups.html[bootc users and groups].
in derived containers. For more on users and groups, see {bootc-upstream}/building/users-and-groups.html[bootc users and groups].
== Filesystem bind mount: /var

View file

@ -19,7 +19,7 @@ While there are dozens of security benefits of image-based systems, we want to h
Similar to the security benefits, bootable containers integrate into a vast ecosystem of tools and technologies which have emerged around containers. With bootable containers, we can build, deploy and manage our Linux systems at new scale and speed. A consistent feedback from early adopters of bootable containers is the observation of a simplified toolchain for managing all these tasks in less time.
== Bootc
https://containers.github.io/bootc/[Bootc] is at the core and center of bootable containers. It is a CLI tool that ships with a number of systemd services and timers to manage a bootable container. Among other things, bootc is responsible for downloading and queuing updates, and can be used by other higher-level tools to manage the system and inspect the system status. For that reason, bootc is an integral part of each bootable container image. For more details, please refer to the https://containers.github.io/bootc/[bootc documentation].
{bootc-upstream}/[Bootc] is at the core and center of bootable containers. It is a CLI tool that ships with a number of systemd services and timers to manage a bootable container. Among other things, bootc is responsible for downloading and queuing updates, and can be used by other higher-level tools to manage the system and inspect the system status. For that reason, bootc is an integral part of each bootable container image. For more details, please refer to the {bootc-upstream}/[bootc documentation].
== Filesystem Layout
Bootc systems follow the concept of an immutable operating system. Apart from the following two exceptions, `/etc` and `/var`, all directories are mounted read-only once deployed on a physical or virtual machine. However, during a container build the entire file-system is writable.
@ -52,7 +52,7 @@ In case the bootable container will be run in `podman-bootc`, see the xref:#_pod
For more details on building derived bootc images, see the xref:building-containers.adoc[page in the docs]. Note that bootc is still under development. On rare occasions you might encounter problems you can find in the https://gitlab.com/fedora/bootc/tracker[upstream issue tracker] (requires a GitLab account).
== Conversion to Disk Images
Updates for bootable containers happen in the form of pulling a new image and (re-)booting into it. But how do we install a fresh bootc system? While bootc supports https://containers.github.io/bootc/bootc-install.html#using-bootc-install-to-existing-root[installing a bootc container on top of an existing system], it is more common to convert a bootable container into a so-called disk image, such as ISO, raw or qcow2 to provision a new system.
Updates for bootable containers happen in the form of pulling a new image and (re-)booting into it. But how do we install a fresh bootc system? While bootc supports {bootc-upstream}/bootc-install.html#using-bootc-install-to-existing-root[installing a bootc container on top of an existing system], it is more common to convert a bootable container into a so-called disk image, such as ISO, raw or qcow2 to provision a new system.
You can convert a bootable container into a disk image with the https://github.com/osbuild/bootc-image-builder[bootc-image-builder] which itself needs to be executed inside a container. `bootc-image-builder` is a feature-rich tool that further enables you to inject users, SSH keys, and define a partition layout. For more details, see the https://github.com/osbuild/bootc-image-builder?tab=readme-ov-file#-arguments[upstream documentation]. Podman Desktop also ships with a https://github.com/containers/podman-desktop-extension-bootc[bootc extension] which allows you to build and convert bootc images in just a few clicks. For more information on the extension, please see the https://developers.redhat.com/articles/2024/05/07/podman-desktop-red-hat-developer-subscription#bootc_extension_for_podman_desktop[release blog post]. Once converted, you can boot a disk image by using libvirt and qemu and other virtualization tools as described in xref:qemu-and-libvirt.adoc[in the docs].
@ -124,7 +124,7 @@ podman-bootc is still under development but perfectly capable of supporting your
There are no default interactive users other than root in the base image. In the default full base images, OpenSSH is running, but there are no hardcoded credentials (passwords or SSH keys). That means that you cannot log into a booted VM without further work (e.g., injecting SSH keys for the root users). For that reason, podman-bootc automatically injects SSH keys such that you can easily get access to the VM. See the xref:authentication.adoc[section on authentication] in the docs for more information on this topic.
== Installing on Bare Metal
At this point, you know how to build a bootable container image and how to convert it into a disk image that you may want to install on your machine. Before installing Fedora/CentOS bootc, its recommended that you have created a customized derived container image, but this is not a hard requirement, as it is possible to enable basic system access via e.g. injecting SSH keys with kickstart or with https://containers.github.io/bootc/bootc-install.html[bootc-install] and the `--root-ssh-authorized-keys` flag. You can find a list of examples and detailed instructions xref:bare-metal.adoc[here]. You can further find documentation on how to provision public cloud instances on xref:provisioning-aws.adoc[AWS] or xref:provisioning-gcp.adoc[GCP] and how to install on xref:provisioning-vsphere.adoc[vSphere].
At this point, you know how to build a bootable container image and how to convert it into a disk image that you may want to install on your machine. Before installing Fedora/CentOS bootc, its recommended that you have created a customized derived container image, but this is not a hard requirement, as it is possible to enable basic system access via e.g. injecting SSH keys with kickstart or with {bootc-upstream}/bootc-install.html[bootc-install] and the `--root-ssh-authorized-keys` flag. You can find a list of examples and detailed instructions xref:bare-metal.adoc[here]. You can further find documentation on how to provision public cloud instances on xref:provisioning-aws.adoc[AWS] or xref:provisioning-gcp.adoc[GCP] and how to install on xref:provisioning-vsphere.adoc[vSphere].
== Updating Bootable Containers
The figure below depicts the life cycle of a bootable container and the different steps required from building to deploying to updating bootc systems. Once a bootable container image has been built, you may convert it to a disk image. The disk image can then be used to install the content in the target environment (e.g., a public cloud instance). You might also want to push the container image to your target container registry.

View file

@ -21,7 +21,7 @@ state.
When using `bootc install`, it is possible to add install-time kernel arguments
both in the container image, and via `bootc install --karg`.
https://containers.github.io/bootc/building/kernel-arguments.html["Day 2 updatable" kernel arguments] are supported as well.
{bootc-upstream}/building/kernel-arguments.html["Day 2 updatable" kernel arguments] are supported as well.
Part of the longer term design is that both Anaconda and bootc-image-builder
will start internally using `bootc install to-filesystem` code, and
@ -55,4 +55,4 @@ will be dropped from the default base image.
== Future: kernel arguments managed via container updates ==
Kernel arguments can also be shipped when updating the bootc container, for instance, by adding a new `.toml` config to `/usr/lib/bootc/kargs.d/`. For details, please refer to the https://containers.github.io/bootc/building/kernel-arguments.html[upstream documentation].
Kernel arguments can also be shipped when updating the bootc container, for instance, by adding a new `.toml` config to `/usr/lib/bootc/kargs.d/`. For details, please refer to the {bootc-upstream}/building/kernel-arguments.html[upstream documentation].

View file

@ -25,7 +25,7 @@ for the base images. There are two primary paths to running in AWS:
A very useful and low-cost mechanism for provisioning a container image *without*
generating a disk image is to use the `bootc install to-existing-root`
flow, where the container image "installs itself" alongside an existing root
filesystem, setting it up for the next boot. ( https://containers.github.io/bootc/bootc-install.html#using-bootc-install-to-existing-root[Upstream documentation] )
filesystem, setting it up for the next boot. ( {bootc-upstream}/bootc-install.html#using-bootc-install-to-existing-root[Upstream documentation] )
=== Understanding bootc-image-builder

View file

@ -22,8 +22,8 @@ For more, see xref:qemu-and-libvirt.adoc[qemu and libvirt].
== Using `bootc install to-existing-root`
The https://containers.github.io/bootc/bootc-install.html#using-bootc-install-to-existing-root[`bootc install to-existing-root`]
The {bootc-upstream}/bootc-install.html#using-bootc-install-to-existing-root[`bootc install to-existing-root`]
path supports installing "inside" an existing running Linux system, effectively
replacing its contents with the container image. This allows provisioning
systems using *existing* disk images already uploaded and managed
as part of the virtualization platform.
as part of the virtualization platform.

View file

@ -45,5 +45,5 @@ In the more medium term, there are plans to extend `dnf` to also support
client-side functionality similar to this:
https://gitlab.com/fedora/bootc/tracker/-/issues/4[client side layering tracker].
This would build on more generic support for https://containers.github.io/bootc/booting-local-builds.html[booting local builds]
This would build on more generic support for {bootc-upstream}/booting-local-builds.html[booting local builds]
for persistent layering.

View file

@ -4,7 +4,7 @@
{projname} ships with https://podman.io[podman] installed to run application containers.
Per the https://containers.github.io/bootc/building/guidance.html#configuration[configuration guidance]
Per the {bootc-upstream}/building/guidance.html#configuration[configuration guidance]
prefer using `/usr/share/containers/systemd` for including "static" container images that are launched
dynamically.

View file

@ -42,11 +42,11 @@ include::cloud-init-growpart.adoc[]
=== Storage with `bootc install`
See https://containers.github.io/bootc/bootc-install.html[bootc install] for more information.
See {bootc-upstream}/bootc-install.html[bootc install] for more information.
The `bootc install to-disk` can be used to directly write a "simple" flat storage configuration.
More advanced installations (especially to bare metal) can also
be done via https://containers.github.io/bootc/man/bootc-install-to-filesystem.html[bootc install to-filesystem];
be done via {bootc-upstream}/man/bootc-install-to-filesystem.html[bootc install to-filesystem];
you can set up the target block storage and filesystem however
you desire via external tools, then have your custom container
image "self-install" to it.
@ -55,7 +55,7 @@ image "self-install" to it.
{projname} uses the bootc upstream project which currently uses ostree as a backend.
For more on the filesystem layout, see https://containers.github.io/bootc/filesystem.html[bootc filesystem].
For more on the filesystem layout, see {bootc-upstream}/filesystem.html[bootc filesystem].
=== Differences from other OSTree-based systems

View file

@ -1,6 +1,6 @@
Over the last decade, https://specs.opencontainers.org/image-spec/[OCI containers] have become a de facto way to deploy a complete functioning Linux user space as an application. A large set of practices and tooling have evolved around them. Bootable containers are a modern opinionated way of deploying, configuring and managing immutable image based Linux systems using those practices and tooling. You can find a mission statement on https://github.com/containers/bootable[github.com/containers/bootable].
The https://containers.github.io/bootc/[bootc documentation] summarizes bootable containers as "transactional, in-place operating system updates using OCI/Docker container images". In other words, updates to the operating system (OS) are shipped by using container images. That implies that the Linux kernel, the bootloader, drivers, etc. are all part of the container image which renders the container image "bootable".
The {bootc-upstream}/[bootc documentation] summarizes bootable containers as "transactional, in-place operating system updates using OCI/Docker container images". In other words, updates to the operating system (OS) are shipped by using container images. That implies that the Linux kernel, the bootloader, drivers, etc. are all part of the container image which renders the container image "bootable".
Just like ordinary application containers, you can build bootable containers by using existing container technologies such as https://github.com/containers/common/blob/main/docs/Containerfile.5.md[Containerfiles] (i.e., https://docs.docker.com/reference/dockerfile[Dockerfiles]) and with existing tooling such as https://podman.io/[Podman], https://www.docker.com/[Docker] or https://github.com/moby/buildkit[buildkit]. You can further store the images on any container registry such as https://quay.io/[Quay.io], https://hub.docker.com/[Docker Hub], https://github.com/features/packages[the GitHub Container Registry] or any internal container registry.