-
Notifications
You must be signed in to change notification settings - Fork 197
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
compose: allow composing --unified-core
into an archive repo
#1490
Comments
I think the simplest is to require |
In the big picture, while we won't break anything related to And that has an opinionated model for this out of the box; it makes two repos and handles pruning them both, etc. |
my
|
Yeah, this is fixed by #1657. The only thing I'd add is that convenience is just one factor. By letting rpm-ostree take care of the bare-user dance, we're guaranteed that we'll always get hardlinks and devino caching during the compose, which previously was up to the user to set up right. |
Previously, we were limiting the target repo in unified mode to be a bare-user repo located on the same filesystem (see message of previous commit). This patch lifts this restriction by making a distinction between the *build repo* and the *final* target repo. To do this, we create a bare-user repo located near the pkgcache to take advantage of hardlinks and devino caching at commit time. And only after committing do we essentially `pull-local` into the final target repo. This of course allows us to avoid potentially pulling across the two filesystems file objects that are already present in the target repo. This will be used by coreos-assembler: coreos/coreos-assembler#190 Closes: coreos#1490
Previously, we were limiting the target repo in unified mode to be a bare-user repo located on the same filesystem (see message of previous commit). This patch lifts this restriction by making a distinction between the *build repo* and the *final* target repo. To do this, we create a bare-user repo located near the pkgcache to take advantage of hardlinks and devino caching at commit time. And only after committing do we essentially `pull-local` into the final target repo. This of course allows us to avoid potentially pulling across the two filesystems file objects that are already present in the target repo. This will be used by coreos-assembler: coreos/coreos-assembler#190 Closes: #1490 Closes: #1657 Approved by: cgwalters
AIUI today for unified core composing you need to compose into a bare-user repo and then pull-local into an archive repo before clients can pull from the remote. So:
mkdir bare
;ostree --repo=./bare/ init --mode bare-user
mkdir archive
;ostree --repo=./archive/ init --mode archive
rpm-ostree compose tree --ex-unified-core --repo=./bare host.json
ostree pull-local --repo=./archive ./bare/ refname
rpm-ostree upgrade
It would be nice if we could actually compose a unified core in an archive repo transparently. i.e. store the bare-user repo inside the archive repo in a cache directory or something so that we only have to do this:
mkdir archive
;ostree --repo=./archive/ init --mode archive
rpm-ostree compose tree --ex-unified-core --repo=./bare host.json
rpm-ostree upgrade
The only potential problem I see here is the embedded bare-user repo being neglected and possibly never getting garbage collected at all.
The text was updated successfully, but these errors were encountered: