You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This experimental feature enables an association of container "app" images to a bootc system image. A similar approach to this is [physically bound](https://github.com/containers/bootc/issues/644) images. There are some trade-offs between the two approaches. Some benefits of logically bound images are:
10
+
This experimental feature enables an association of container "app" images to a base bootc system image. Use cases for this include:
These types of things are commonly not updated outside of the host, and there's a secondary important property: We *always* want them present and available on the host, possibly from very early on in the boot. In contrast with default usage of tools like `podman` or `docker`, images may be pulled dynamically *after* the boot starts; requiring functioning networking, etc. For example if the remote registry is unavailable temporarily, the host system may run for a longer period of time without log forwarding or monitoring, which can be very undesirable.
18
+
19
+
Another simple way to say this is that logically bound images allow you to reference container images with the same confidence you can with `ExecStart=` in a systemd unit.
20
+
21
+
The term "logically bound" was created to contrast with [physically bound](https://github.com/containers/bootc/issues/644) images. There are some trade-offs between the two approaches. Some benefits of logically bound images are:
11
22
12
23
- The bootc system image can be updated without re-downloading the app image bits.
13
24
- The app images can be updated without modifying the bootc system image, this would be especially useful for development work
Images are fetched using the global bootc pull secret by default (`/etc/ostree/auth.json`). It is not yet supported to configure `PullSecret` in these image definitions.
44
55
56
+
## Garbage collection
57
+
58
+
The bootc image store is owned by bootc; images will be garbage collected when they are no longer referenced
59
+
by a file in `/usr/lib/bootc/bound-images.d`.
60
+
61
+
## Installation
62
+
63
+
Logically bound images must be present in the default container store (`/var/lib/containers`) when invoking
64
+
[bootc install](bootc-install.md); the images will be copied into the target system and present
65
+
directly at boot, alongside the bootc base image.
66
+
45
67
## Limitations
46
68
47
-
- Currently, only the Image field of a `.image` or `.container` file is used to pull the image; per above not even `PullSecret=` is supported.
48
-
- Images are not yet garbage collected
69
+
The *only* field parsed and honored by bootc currently is the `Image` field of a `.image` or `.container` file.
70
+
71
+
Other pull-relevant flags such as `PullSecret=` for example are not supported (see above).
72
+
Another example unsupported flag is `Arch` (the default host architecture is always used).
73
+
74
+
There is no mechanism to inject arbitrary arguments to the `podman pull` (or equivalent)
75
+
invocation used by bootc. However, many properties used for container registry interaction
76
+
can be configured via [containers-registries.conf](https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md)
77
+
and apply to all commands operating on that image.
78
+
79
+
### Distro/OS installer support
80
+
81
+
At the current time, logically bound images are [not supported by Anaconda](https://github.com/rhinstaller/anaconda/discussions/5197).
0 commit comments