Open cgwalters opened 4 months ago
Just going to summarize what I remember from a sync @cgwalters and I had related to this and https://github.com/containers/bootc/issues/372.
/usr
top-level content. /usr
is no longer special and there's no read-only bind mount just for it./opt
and /usr/local
be directories instead of symlinks. They need to remain symlinks for compatibility, but for the new base images, we should have them default to directories./usr
content that also needs mutability, some choices in the derived build are:
/var/...
strictly where mutability is needed. This option in theory is the best one since it aligns with the r/o default, but requires knowledge of where to place the symlinks (could have e.g. docs for common packages).prepare-root.conf
(or short-term, a label on the container, as described in this ticket).ostree-state-overlay@.service
(e.g. on ostree-state-overlay@opt.service
or ostree-state-overlay@usr-local.service
).related PR in https://github.com/coreos/rpm-ostree/pull/4850
Per discussion related to https://github.com/containers/bootc/issues/372 we want to allow configuring non-
/usr
content in a derived image and hence we need to stop parsing it just from the base commit.So one strawman here is to parse a label in the metadata.
Another entirely different bigger path is to rework things to always operate on the squashed image like https://github.com/containers/bootc/pull/215 does (or just target that)
Also because users may be relying
/usr/local
->/var/usrlocal
right now to store data we cannot automatically switch what that does if composefs happens to be enabled...at least for FCOS and existing ostree users.