Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs/filesystem: Rework state overlay and /opt messaging a bit #1199

Merged
merged 1 commit into from
Mar 13, 2025

Conversation

jlebon
Copy link
Contributor

@jlebon jlebon commented Mar 13, 2025

Tweak the changes in #1191 to more clearly lay out the tradeoffs of state overlays. Contrast it with transient root (since that was one of the primary motivations for it), and generalize the "alternatives" to be about both approaches.

Verified

This commit was signed with the committer’s verified signature.
jlebon Jonathan Lebon
Tweak the changes in bootc-dev#1191 to more clearly lay out the tradeoffs of
state overlays. Contrast it with transient root (since that was one of
the primary motivations for it), and generalize the "alternatives" to be
about both approaches.
@github-actions github-actions bot added documentation Improvements or additions to documentation control/skip-ci Do not run expensive CI on this job labels Mar 13, 2025

The disadvantages are:
- There is no equivalent to this feature in the Docker/Podman ecosystem.
- It allows for some temporary state drift until the next update.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with this as written but I think the thing that specifically bothers me is it feels quite subtle that that persistence is the default for unknown files, but we overwrite known files while both are mutable. That semantic is absolutely closer to "just works" for many cases of course...

Maybe in reality it's not a real problem.

Maybe what would help is if we offered a clear tooling to show you the diff and help you flush any unwanted files? Not sure.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess maybe I'm objecting to the "state drift until the next update" because in the case you accidentally write something there you will get that drift.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it feels quite subtle that that persistence is the default for unknown files, but we overwrite known files while both are mutable

Though note that's basically the same semantics as RPM for non-config files. Hmm, would it help the mental model to add that to the docs?

Maybe what would help is if we offered a clear tooling to show you the diff and help you flush any unwanted files? Not sure.

Yeah, that'd definitely be useful. I guess for now find /var/ostree/state-overlays/$name/upper is close to that.

I guess maybe I'm objecting to the "state drift until the next update" because in the case you accidentally write something there you will get that drift.

Hmm, don't quite follow this. If you overwrite something that's owned by the RPM, it will get reconciled in the next update (so temporary drift). Writing anywhere else under the overlay is assumed to be state, just like /var is state. So calling that "state drift" feels odd to me.

@cgwalters cgwalters merged commit b991a93 into bootc-dev:main Mar 13, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
control/skip-ci Do not run expensive CI on this job documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants