Skip to content

Commit 4195894

Browse files
authored
Merge pull request #85 from cgwalters/explain-podman-alignment
README.md: Elaborate on relationship with podman and kube
2 parents 86c5419 + 751af8d commit 4195894

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,38 @@ preserving state.
103103

104104
## Relationship with other projects
105105

106+
### Relationship with podman
107+
108+
It gets a bit confusing to talk about shipping bootable operating systems in container images.
109+
Again, to be clear: we are reusing container images as:
110+
111+
- A build mechanism (including running *as* a standard OCI container image)
112+
- A transport mechanism
113+
114+
But, actually when a bootc container is booted, podman (or docker, etc.) is not involved.
115+
The storage used for the operating system content is distinct from `/var/lib/containers`.
116+
`podman image prune --all` will not delete your operating system.
117+
118+
That said, a toplevel goal of bootc is alignment with the https://github.com/containers ecosystem,
119+
which includes podman. But more specifically at a technical level, today bootc uses
120+
[skopeo](https://github.com/containers/skopeo/) and hence indirectly [containers/image](https://github.com/containers/image)
121+
as a way to fetch container images.
122+
123+
This means that bootc automatically also honors many of the knobs available in `/etc/containers` - specifically
124+
things like [containers-registries.conf](https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md).
125+
126+
In other words, if you configure `podman` to pull images from your local mirror registry, then `bootc` will automatically honor that as well.
127+
128+
The simple way to say it is: A goal of `bootc` is to be the bootable-container analogue for `podman`, which runs application containers. Everywhere one might run `podman`, one could also consider using `bootc`.
129+
130+
### Relationship with Kubernetes
131+
132+
Just as `podman` does not depend on a Kubernetes API server, `bootc` will also not depend on one.
133+
134+
However, there are also plans for `bootc` to also understand Kubernetes API types. See [configmap/secret support](https://github.com/containers/bootc/issues/22) for example.
135+
136+
Perhaps in the future we may actually support some kind of `Pod` analogue for representing the host state. Or we may define a [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) which can be used inside and outside of Kubernetes.
137+
106138
### Relationship with rpm-ostree
107139

108140
Today rpm-ostree directly links to `ostree-rs-ext`, and hence

0 commit comments

Comments
 (0)