Skip to content

Commit 33fcf92

Browse files
authored
Merge pull request #840 from cgwalters/doc-containers-arch
docs: Various elaborations
2 parents e12cd9d + 62772a6 commit 33fcf92

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

docs/src/filesystem-storage.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22

33
The bootc project uses [ostree](https://github.com/ostreedev/ostree/) and specifically
44
the [ostree-rs-ext](https://github.com/ostreedev/ostree-rs-ext/) Rust library
5-
which handles storage of container images on top of an ostree-based system.
5+
which handles storage of container images on top of an ostree-based system for
6+
the booted host, and additionally there is a
7+
[containers/storage](https://github.com/containers/storage) instance for [logically bound images](logically-bound-images.md).
68

79
## Architecture
810

911
```mermaid
1012
flowchart TD
1113
bootc --- ostree-rs-ext --- ostree-rs --- ostree
1214
ostree-rs-ext --- containers-image-proxy-rs --- skopeo --- containers/image
15+
bootc --- podman --- image-storage["containers/{image,storage}"]
1316
```
1417

1518
There were two high level goals that drove the design of the current system
@@ -88,3 +91,7 @@ from an OCI image or some other mechanism; it just targets a
8891
prepared flattened filesystem tree.
8992

9093
This is what is referenced by the `ostree=` kernel commandline.
94+
95+
## Logically bound images
96+
97+
In addition to the base image, bootc supports [logically bound images](logically-bound-images.md).

docs/src/filesystem.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# Filesystem
22

3-
As noted in other chapters, the bootc project inherits
4-
a lot of code from the [ostree project](https://github.com/ostreedev/ostree/).
3+
As noted in other chapters, the bootc project currently
4+
depends on [ostree project](https://github.com/ostreedev/ostree/)
5+
for storing the base container image. Additionally there is a [containers/storage](https://github.com/containers/storage) instance for [logically bound images](logically-bound-images.md).
56

6-
However, bootc is intending to be a "fresh, new container-native interface".
7+
However, bootc is intending to be a "fresh, new container-native interface",
8+
and ostree is an implementation detail.
79

810
First, it is strongly recommended that bootc consumers use the ostree
911
[composefs backend](https://ostreedev.github.io/ostree/composefs/); to do this,
@@ -14,7 +16,8 @@ ensure that you have a `/usr/lib/ostree/prepare-root.conf` that contains at leas
1416
enabled = true
1517
```
1618

17-
This will ensure that the entire `/` is a read-only filesystem.
19+
This will ensure that the entire `/` is a read-only filesystem which
20+
is very important for achieving correct semantics.
1821

1922
## Understanding container build/runtime vs deployment
2023

docs/src/relationships.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,18 @@ as a backing model. Hence, when using a container source,
4646
`rpm-ostree upgrade` and `bootc upgrade` are effectively equivalent;
4747
you can use either command.
4848

49-
However with rpm-ostree (or, perhaps re-framed as
50-
"dnf image"), it will continue to work to e.g. `dnf install`
51-
(i.e. `rpm-ostree install`) on the *client side* system.
52-
In addition there are other client-side mutation commands such as
53-
`rpm-ostree initramfs --enable`.
49+
### Differences from rpm-ostree
50+
51+
- The ostree project never tried to have an opinionated "install" mechanism,
52+
but bootc does with `bootc install to-filesystem`
53+
- Bootc has additional features such as `/usr/lib/bootc/kargs.d` and
54+
[logically bound images](logically-bound-images.md).
55+
56+
### Client side changes
57+
58+
Currently all functionality for client-side changes
59+
such as `rpm-ostree install` or `rpm-ostree initramfs --enable`
60+
continue to work, because of the shared base.
5461

5562
However, as soon as you mutate the system in this way, `bootc upgrade`
5663
will error out as it will not understand how to upgrade

0 commit comments

Comments
 (0)